blob: 151460e2ba226a5d7b208cf4f68c0f5a50fb290c [file] [log] [blame]
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/renderer/accessibility/blink_ax_enum_conversion.h"
#include "base/logging.h"
namespace content {
uint32_t AXStateFromBlink(const blink::WebAXObject& o) {
uint32_t state = 0;
if (o.isChecked())
state |= (1 << ui::AX_STATE_CHECKED);
blink::WebAXExpanded expanded = o.isExpanded();
if (expanded) {
if (expanded == blink::WebAXExpandedCollapsed)
state |= (1 << ui::AX_STATE_COLLAPSED);
else if (expanded == blink::WebAXExpandedExpanded)
state |= (1 << ui::AX_STATE_EXPANDED);
}
if (o.canSetFocusAttribute())
state |= (1 << ui::AX_STATE_FOCUSABLE);
if (o.role() == blink::WebAXRolePopUpButton ||
o.ariaHasPopup())
state |= (1 << ui::AX_STATE_HASPOPUP);
if (o.isHovered())
state |= (1 << ui::AX_STATE_HOVERED);
if (!o.isVisible())
state |= (1 << ui::AX_STATE_INVISIBLE);
if (o.isLinked())
state |= (1 << ui::AX_STATE_LINKED);
if (o.isMultiline())
state |= (1 << ui::AX_STATE_MULTILINE);
if (o.isMultiSelectable())
state |= (1 << ui::AX_STATE_MULTISELECTABLE);
if (o.isOffScreen())
state |= (1 << ui::AX_STATE_OFFSCREEN);
if (o.isPressed())
state |= (1 << ui::AX_STATE_PRESSED);
if (o.isPasswordField())
state |= (1 << ui::AX_STATE_PROTECTED);
if (o.isReadOnly())
state |= (1 << ui::AX_STATE_READ_ONLY);
if (o.isRequired())
state |= (1 << ui::AX_STATE_REQUIRED);
if (o.canSetSelectedAttribute())
state |= (1 << ui::AX_STATE_SELECTABLE);
if (o.isEditable())
state |= (1 << ui::AX_STATE_EDITABLE);
if (!o.isEnabled())
state |= (1 << ui::AX_STATE_DISABLED);
if (o.isSelected())
state |= (1 << ui::AX_STATE_SELECTED);
if (o.isRichlyEditable())
state |= (1 << ui::AX_STATE_RICHLY_EDITABLE);
if (o.isVisited())
state |= (1 << ui::AX_STATE_VISITED);
if (o.orientation() == blink::WebAXOrientationVertical)
state |= (1 << ui::AX_STATE_VERTICAL);
else if (o.orientation() == blink::WebAXOrientationHorizontal)
state |= (1 << ui::AX_STATE_HORIZONTAL);
if (o.isVisited())
state |= (1 << ui::AX_STATE_VISITED);
return state;
}
ui::AXRole AXRoleFromBlink(blink::WebAXRole role) {
switch (role) {
case blink::WebAXRoleAbbr:
return ui::AX_ROLE_ABBR;
case blink::WebAXRoleAlert:
return ui::AX_ROLE_ALERT;
case blink::WebAXRoleAlertDialog:
return ui::AX_ROLE_ALERT_DIALOG;
case blink::WebAXRoleAnchor:
return ui::AX_ROLE_ANCHOR;
case blink::WebAXRoleAnnotation:
return ui::AX_ROLE_ANNOTATION;
case blink::WebAXRoleApplication:
return ui::AX_ROLE_APPLICATION;
case blink::WebAXRoleArticle:
return ui::AX_ROLE_ARTICLE;
case blink::WebAXRoleAudio:
return ui::AX_ROLE_AUDIO;
case blink::WebAXRoleBanner:
return ui::AX_ROLE_BANNER;
case blink::WebAXRoleBlockquote:
return ui::AX_ROLE_BLOCKQUOTE;
case blink::WebAXRoleBusyIndicator:
return ui::AX_ROLE_BUSY_INDICATOR;
case blink::WebAXRoleButton:
return ui::AX_ROLE_BUTTON;
case blink::WebAXRoleCanvas:
return ui::AX_ROLE_CANVAS;
case blink::WebAXRoleCaption:
return ui::AX_ROLE_CAPTION;
case blink::WebAXRoleCell:
return ui::AX_ROLE_CELL;
case blink::WebAXRoleCheckBox:
return ui::AX_ROLE_CHECK_BOX;
case blink::WebAXRoleColorWell:
return ui::AX_ROLE_COLOR_WELL;
case blink::WebAXRoleColumn:
return ui::AX_ROLE_COLUMN;
case blink::WebAXRoleColumnHeader:
return ui::AX_ROLE_COLUMN_HEADER;
case blink::WebAXRoleComboBox:
return ui::AX_ROLE_COMBO_BOX;
case blink::WebAXRoleComplementary:
return ui::AX_ROLE_COMPLEMENTARY;
case blink::WebAXRoleContentInfo:
return ui::AX_ROLE_CONTENT_INFO;
case blink::WebAXRoleDate:
return ui::AX_ROLE_DATE;
case blink::WebAXRoleDateTime:
return ui::AX_ROLE_DATE_TIME;
case blink::WebAXRoleDefinition:
return ui::AX_ROLE_DEFINITION;
case blink::WebAXRoleDescriptionListDetail:
return ui::AX_ROLE_DESCRIPTION_LIST_DETAIL;
case blink::WebAXRoleDescriptionList:
return ui::AX_ROLE_DESCRIPTION_LIST;
case blink::WebAXRoleDescriptionListTerm:
return ui::AX_ROLE_DESCRIPTION_LIST_TERM;
case blink::WebAXRoleDetails:
return ui::AX_ROLE_DETAILS;
case blink::WebAXRoleDialog:
return ui::AX_ROLE_DIALOG;
case blink::WebAXRoleDirectory:
return ui::AX_ROLE_DIRECTORY;
case blink::WebAXRoleDisclosureTriangle:
return ui::AX_ROLE_DISCLOSURE_TRIANGLE;
case blink::WebAXRoleDiv:
return ui::AX_ROLE_DIV;
case blink::WebAXRoleDocument:
return ui::AX_ROLE_DOCUMENT;
case blink::WebAXRoleEmbeddedObject:
return ui::AX_ROLE_EMBEDDED_OBJECT;
case blink::WebAXRoleFeed:
return ui::AX_ROLE_FEED;
case blink::WebAXRoleFigcaption:
return ui::AX_ROLE_FIGCAPTION;
case blink::WebAXRoleFigure:
return ui::AX_ROLE_FIGURE;
case blink::WebAXRoleFooter:
return ui::AX_ROLE_FOOTER;
case blink::WebAXRoleForm:
return ui::AX_ROLE_FORM;
case blink::WebAXRoleGrid:
return ui::AX_ROLE_GRID;
case blink::WebAXRoleGroup:
return ui::AX_ROLE_GROUP;
case blink::WebAXRoleHeading:
return ui::AX_ROLE_HEADING;
case blink::WebAXRoleIframe:
return ui::AX_ROLE_IFRAME;
case blink::WebAXRoleIframePresentational:
return ui::AX_ROLE_IFRAME_PRESENTATIONAL;
case blink::WebAXRoleIgnored:
return ui::AX_ROLE_IGNORED;
case blink::WebAXRoleImage:
return ui::AX_ROLE_IMAGE;
case blink::WebAXRoleImageMap:
return ui::AX_ROLE_IMAGE_MAP;
case blink::WebAXRoleImageMapLink:
return ui::AX_ROLE_IMAGE_MAP_LINK;
case blink::WebAXRoleInlineTextBox:
return ui::AX_ROLE_INLINE_TEXT_BOX;
case blink::WebAXRoleInputTime:
return ui::AX_ROLE_INPUT_TIME;
case blink::WebAXRoleLabel:
return ui::AX_ROLE_LABEL_TEXT;
case blink::WebAXRoleLegend:
return ui::AX_ROLE_LEGEND;
case blink::WebAXRoleLink:
return ui::AX_ROLE_LINK;
case blink::WebAXRoleList:
return ui::AX_ROLE_LIST;
case blink::WebAXRoleListBox:
return ui::AX_ROLE_LIST_BOX;
case blink::WebAXRoleListBoxOption:
return ui::AX_ROLE_LIST_BOX_OPTION;
case blink::WebAXRoleListItem:
return ui::AX_ROLE_LIST_ITEM;
case blink::WebAXRoleListMarker:
return ui::AX_ROLE_LIST_MARKER;
case blink::WebAXRoleLog:
return ui::AX_ROLE_LOG;
case blink::WebAXRoleMain:
return ui::AX_ROLE_MAIN;
case blink::WebAXRoleMarquee:
return ui::AX_ROLE_MARQUEE;
case blink::WebAXRoleMark:
return ui::AX_ROLE_MARK;
case blink::WebAXRoleMath:
return ui::AX_ROLE_MATH;
case blink::WebAXRoleMenu:
return ui::AX_ROLE_MENU;
case blink::WebAXRoleMenuBar:
return ui::AX_ROLE_MENU_BAR;
case blink::WebAXRoleMenuButton:
return ui::AX_ROLE_MENU_BUTTON;
case blink::WebAXRoleMenuItem:
return ui::AX_ROLE_MENU_ITEM;
case blink::WebAXRoleMenuItemCheckBox:
return ui::AX_ROLE_MENU_ITEM_CHECK_BOX;
case blink::WebAXRoleMenuItemRadio:
return ui::AX_ROLE_MENU_ITEM_RADIO;
case blink::WebAXRoleMenuListOption:
return ui::AX_ROLE_MENU_LIST_OPTION;
case blink::WebAXRoleMenuListPopup:
return ui::AX_ROLE_MENU_LIST_POPUP;
case blink::WebAXRoleMeter:
return ui::AX_ROLE_METER;
case blink::WebAXRoleNavigation:
return ui::AX_ROLE_NAVIGATION;
case blink::WebAXRoleNone:
return ui::AX_ROLE_NONE;
case blink::WebAXRoleNote:
return ui::AX_ROLE_NOTE;
case blink::WebAXRoleOutline:
return ui::AX_ROLE_OUTLINE;
case blink::WebAXRoleParagraph:
return ui::AX_ROLE_PARAGRAPH;
case blink::WebAXRolePopUpButton:
return ui::AX_ROLE_POP_UP_BUTTON;
case blink::WebAXRolePre:
return ui::AX_ROLE_PRE;
case blink::WebAXRolePresentational:
return ui::AX_ROLE_PRESENTATIONAL;
case blink::WebAXRoleProgressIndicator:
return ui::AX_ROLE_PROGRESS_INDICATOR;
case blink::WebAXRoleRadioButton:
return ui::AX_ROLE_RADIO_BUTTON;
case blink::WebAXRoleRadioGroup:
return ui::AX_ROLE_RADIO_GROUP;
case blink::WebAXRoleRegion:
return ui::AX_ROLE_REGION;
case blink::WebAXRoleRootWebArea:
return ui::AX_ROLE_ROOT_WEB_AREA;
case blink::WebAXRoleRow:
return ui::AX_ROLE_ROW;
case blink::WebAXRoleRuby:
return ui::AX_ROLE_RUBY;
case blink::WebAXRoleRowHeader:
return ui::AX_ROLE_ROW_HEADER;
case blink::WebAXRoleRuler:
return ui::AX_ROLE_RULER;
case blink::WebAXRoleSVGRoot:
return ui::AX_ROLE_SVG_ROOT;
case blink::WebAXRoleScrollArea:
return ui::AX_ROLE_SCROLL_AREA;
case blink::WebAXRoleScrollBar:
return ui::AX_ROLE_SCROLL_BAR;
case blink::WebAXRoleSeamlessWebArea:
return ui::AX_ROLE_SEAMLESS_WEB_AREA;
case blink::WebAXRoleSearch:
return ui::AX_ROLE_SEARCH;
case blink::WebAXRoleSearchBox:
return ui::AX_ROLE_SEARCH_BOX;
case blink::WebAXRoleSlider:
return ui::AX_ROLE_SLIDER;
case blink::WebAXRoleSliderThumb:
return ui::AX_ROLE_SLIDER_THUMB;
case blink::WebAXRoleSpinButton:
return ui::AX_ROLE_SPIN_BUTTON;
case blink::WebAXRoleSpinButtonPart:
return ui::AX_ROLE_SPIN_BUTTON_PART;
case blink::WebAXRoleSplitter:
return ui::AX_ROLE_SPLITTER;
case blink::WebAXRoleStaticText:
return ui::AX_ROLE_STATIC_TEXT;
case blink::WebAXRoleStatus:
return ui::AX_ROLE_STATUS;
case blink::WebAXRoleSwitch:
return ui::AX_ROLE_SWITCH;
case blink::WebAXRoleTab:
return ui::AX_ROLE_TAB;
case blink::WebAXRoleTabGroup:
return ui::AX_ROLE_TAB_GROUP;
case blink::WebAXRoleTabList:
return ui::AX_ROLE_TAB_LIST;
case blink::WebAXRoleTabPanel:
return ui::AX_ROLE_TAB_PANEL;
case blink::WebAXRoleTable:
return ui::AX_ROLE_TABLE;
case blink::WebAXRoleTableHeaderContainer:
return ui::AX_ROLE_TABLE_HEADER_CONTAINER;
case blink::WebAXRoleTerm:
return ui::AX_ROLE_TERM;
case blink::WebAXRoleTextField:
return ui::AX_ROLE_TEXT_FIELD;
case blink::WebAXRoleTime:
return ui::AX_ROLE_TIME;
case blink::WebAXRoleTimer:
return ui::AX_ROLE_TIMER;
case blink::WebAXRoleToggleButton:
return ui::AX_ROLE_TOGGLE_BUTTON;
case blink::WebAXRoleToolbar:
return ui::AX_ROLE_TOOLBAR;
case blink::WebAXRoleTree:
return ui::AX_ROLE_TREE;
case blink::WebAXRoleTreeGrid:
return ui::AX_ROLE_TREE_GRID;
case blink::WebAXRoleTreeItem:
return ui::AX_ROLE_TREE_ITEM;
case blink::WebAXRoleUnknown:
return ui::AX_ROLE_UNKNOWN;
case blink::WebAXRoleUserInterfaceTooltip:
return ui::AX_ROLE_TOOLTIP;
case blink::WebAXRoleVideo:
return ui::AX_ROLE_VIDEO;
case blink::WebAXRoleWebArea:
return ui::AX_ROLE_ROOT_WEB_AREA;
case blink::WebAXRoleLineBreak:
return ui::AX_ROLE_LINE_BREAK;
case blink::WebAXRoleWindow:
return ui::AX_ROLE_WINDOW;
default:
// We can't add an assertion here, that prevents us
// from adding new role enums in Blink.
LOG(WARNING) << "Warning: Blink WebAXRole " << role
<< " not handled by Chromium yet.";
return ui::AX_ROLE_UNKNOWN;
}
}
ui::AXEvent AXEventFromBlink(blink::WebAXEvent event) {
switch (event) {
case blink::WebAXEventActiveDescendantChanged:
return ui::AX_EVENT_ACTIVEDESCENDANTCHANGED;
case blink::WebAXEventAlert:
return ui::AX_EVENT_ALERT;
case blink::WebAXEventAriaAttributeChanged:
return ui::AX_EVENT_ARIA_ATTRIBUTE_CHANGED;
case blink::WebAXEventAutocorrectionOccured:
return ui::AX_EVENT_AUTOCORRECTION_OCCURED;
case blink::WebAXEventBlur:
return ui::AX_EVENT_BLUR;
case blink::WebAXEventCheckedStateChanged:
return ui::AX_EVENT_CHECKED_STATE_CHANGED;
case blink::WebAXEventChildrenChanged:
return ui::AX_EVENT_CHILDREN_CHANGED;
case blink::WebAXEventClicked:
return ui::AX_EVENT_CLICKED;
case blink::WebAXEventDocumentSelectionChanged:
return ui::AX_EVENT_DOCUMENT_SELECTION_CHANGED;
case blink::WebAXEventExpandedChanged:
return ui::AX_EVENT_EXPANDED_CHANGED;
case blink::WebAXEventFocus:
return ui::AX_EVENT_FOCUS;
case blink::WebAXEventHover:
return ui::AX_EVENT_HOVER;
case blink::WebAXEventInvalidStatusChanged:
return ui::AX_EVENT_INVALID_STATUS_CHANGED;
case blink::WebAXEventLayoutComplete:
return ui::AX_EVENT_LAYOUT_COMPLETE;
case blink::WebAXEventLiveRegionChanged:
return ui::AX_EVENT_LIVE_REGION_CHANGED;
case blink::WebAXEventLoadComplete:
return ui::AX_EVENT_LOAD_COMPLETE;
case blink::WebAXEventLocationChanged:
return ui::AX_EVENT_LOCATION_CHANGED;
case blink::WebAXEventMenuListItemSelected:
return ui::AX_EVENT_MENU_LIST_ITEM_SELECTED;
case blink::WebAXEventMenuListItemUnselected:
return ui::AX_EVENT_MENU_LIST_ITEM_SELECTED;
case blink::WebAXEventMenuListValueChanged:
return ui::AX_EVENT_MENU_LIST_VALUE_CHANGED;
case blink::WebAXEventRowCollapsed:
return ui::AX_EVENT_ROW_COLLAPSED;
case blink::WebAXEventRowCountChanged:
return ui::AX_EVENT_ROW_COUNT_CHANGED;
case blink::WebAXEventRowExpanded:
return ui::AX_EVENT_ROW_EXPANDED;
case blink::WebAXEventScrollPositionChanged:
return ui::AX_EVENT_SCROLL_POSITION_CHANGED;
case blink::WebAXEventScrolledToAnchor:
return ui::AX_EVENT_SCROLLED_TO_ANCHOR;
case blink::WebAXEventSelectedChildrenChanged:
return ui::AX_EVENT_SELECTED_CHILDREN_CHANGED;
case blink::WebAXEventSelectedTextChanged:
return ui::AX_EVENT_TEXT_SELECTION_CHANGED;
case blink::WebAXEventTextChanged:
return ui::AX_EVENT_TEXT_CHANGED;
case blink::WebAXEventValueChanged:
return ui::AX_EVENT_VALUE_CHANGED;
default:
// We can't add an assertion here, that prevents us
// from adding new event enums in Blink.
return ui::AX_EVENT_NONE;
}
}
ui::AXSupportedAction AXSupportedActionFromBlink(
blink::WebAXSupportedAction supported_action) {
switch (supported_action) {
case blink::WebAXSupportedAction::None:
return ui::AX_SUPPORTED_ACTION_NONE;
case blink::WebAXSupportedAction::Activate:
return ui::AX_SUPPORTED_ACTION_ACTIVATE;
case blink::WebAXSupportedAction::Check:
return ui::AX_SUPPORTED_ACTION_CHECK;
case blink::WebAXSupportedAction::Click:
return ui::AX_SUPPORTED_ACTION_CLICK;
case blink::WebAXSupportedAction::Jump:
return ui::AX_SUPPORTED_ACTION_JUMP;
case blink::WebAXSupportedAction::Open:
return ui::AX_SUPPORTED_ACTION_OPEN;
case blink::WebAXSupportedAction::Press:
return ui::AX_SUPPORTED_ACTION_PRESS;
case blink::WebAXSupportedAction::Select:
return ui::AX_SUPPORTED_ACTION_SELECT;
case blink::WebAXSupportedAction::Uncheck:
return ui::AX_SUPPORTED_ACTION_UNCHECK;
}
NOTREACHED();
return ui::AX_SUPPORTED_ACTION_NONE;
}
ui::AXMarkerType AXMarkerTypeFromBlink(blink::WebAXMarkerType marker_type) {
switch (marker_type) {
case blink::WebAXMarkerTypeSpelling:
return ui::AX_MARKER_TYPE_SPELLING;
case blink::WebAXMarkerTypeGrammar:
return ui::AX_MARKER_TYPE_GRAMMAR;
case blink::WebAXMarkerTypeTextMatch:
return ui::AX_MARKER_TYPE_TEXT_MATCH;
}
NOTREACHED();
return ui::AX_MARKER_TYPE_NONE;
}
ui::AXTextDirection AXTextDirectionFromBlink(
blink::WebAXTextDirection text_direction) {
switch (text_direction) {
case blink::WebAXTextDirectionLR:
return ui::AX_TEXT_DIRECTION_LTR;
case blink::WebAXTextDirectionRL:
return ui::AX_TEXT_DIRECTION_RTL;
case blink::WebAXTextDirectionTB:
return ui::AX_TEXT_DIRECTION_TTB;
case blink::WebAXTextDirectionBT:
return ui::AX_TEXT_DIRECTION_BTT;
}
NOTREACHED();
return ui::AX_TEXT_DIRECTION_NONE;
}
ui::AXTextStyle AXTextStyleFromBlink(blink::WebAXTextStyle text_style) {
unsigned int browser_text_style = ui::AX_TEXT_STYLE_NONE;
if (text_style & blink::WebAXTextStyleBold)
browser_text_style |= ui::AX_TEXT_STYLE_BOLD;
if (text_style & blink::WebAXTextStyleItalic)
browser_text_style |= ui::AX_TEXT_STYLE_ITALIC;
if (text_style & blink::WebAXTextStyleUnderline)
browser_text_style |= ui::AX_TEXT_STYLE_UNDERLINE;
if (text_style & blink::WebAXTextStyleLineThrough)
browser_text_style |= ui::AX_TEXT_STYLE_LINE_THROUGH;
return static_cast<ui::AXTextStyle>(browser_text_style);
}
ui::AXAriaCurrentState AXAriaCurrentStateFromBlink(
blink::WebAXAriaCurrentState aria_current_state) {
switch (aria_current_state) {
case blink::WebAXAriaCurrentStateUndefined:
return ui::AX_ARIA_CURRENT_STATE_NONE;
case blink::WebAXAriaCurrentStateFalse:
return ui::AX_ARIA_CURRENT_STATE_FALSE;
case blink::WebAXAriaCurrentStateTrue:
return ui::AX_ARIA_CURRENT_STATE_TRUE;
case blink::WebAXAriaCurrentStatePage:
return ui::AX_ARIA_CURRENT_STATE_PAGE;
case blink::WebAXAriaCurrentStateStep:
return ui::AX_ARIA_CURRENT_STATE_STEP;
case blink::WebAXAriaCurrentStateLocation:
return ui::AX_ARIA_CURRENT_STATE_LOCATION;
case blink::WebAXAriaCurrentStateDate:
return ui::AX_ARIA_CURRENT_STATE_DATE;
case blink::WebAXAriaCurrentStateTime:
return ui::AX_ARIA_CURRENT_STATE_TIME;
}
NOTREACHED();
return ui::AX_ARIA_CURRENT_STATE_NONE;
}
ui::AXInvalidState AXInvalidStateFromBlink(
blink::WebAXInvalidState invalid_state) {
switch (invalid_state) {
case blink::WebAXInvalidStateUndefined:
return ui::AX_INVALID_STATE_NONE;
case blink::WebAXInvalidStateFalse:
return ui::AX_INVALID_STATE_FALSE;
case blink::WebAXInvalidStateTrue:
return ui::AX_INVALID_STATE_TRUE;
case blink::WebAXInvalidStateSpelling:
return ui::AX_INVALID_STATE_SPELLING;
case blink::WebAXInvalidStateGrammar:
return ui::AX_INVALID_STATE_GRAMMAR;
case blink::WebAXInvalidStateOther:
return ui::AX_INVALID_STATE_OTHER;
}
NOTREACHED();
return ui::AX_INVALID_STATE_NONE;
}
ui::AXSortDirection AXSortDirectionFromBlink(
blink::WebAXSortDirection sort_direction) {
switch (sort_direction) {
case blink::WebAXSortDirectionUndefined:
return ui::AX_SORT_DIRECTION_NONE;
case blink::WebAXSortDirectionNone:
return ui::AX_SORT_DIRECTION_UNSORTED;
case blink::WebAXSortDirectionAscending:
return ui::AX_SORT_DIRECTION_ASCENDING;
case blink::WebAXSortDirectionDescending:
return ui::AX_SORT_DIRECTION_DESCENDING;
case blink::WebAXSortDirectionOther:
return ui::AX_SORT_DIRECTION_OTHER;
}
NOTREACHED();
return ui::AX_SORT_DIRECTION_NONE;
}
ui::AXNameFrom AXNameFromFromBlink(blink::WebAXNameFrom name_from) {
switch (name_from) {
case blink::WebAXNameFromUninitialized:
return ui::AX_NAME_FROM_UNINITIALIZED;
case blink::WebAXNameFromAttribute:
return ui::AX_NAME_FROM_ATTRIBUTE;
case blink::WebAXNameFromCaption:
return ui::AX_NAME_FROM_RELATED_ELEMENT;
case blink::WebAXNameFromContents:
return ui::AX_NAME_FROM_CONTENTS;
case blink::WebAXNameFromPlaceholder:
return ui::AX_NAME_FROM_PLACEHOLDER;
case blink::WebAXNameFromRelatedElement:
return ui::AX_NAME_FROM_RELATED_ELEMENT;
case blink::WebAXNameFromValue:
return ui::AX_NAME_FROM_VALUE;
case blink::WebAXNameFromTitle:
return ui::AX_NAME_FROM_ATTRIBUTE;
}
NOTREACHED();
return ui::AX_NAME_FROM_NONE;
}
ui::AXDescriptionFrom AXDescriptionFromFromBlink(
blink::WebAXDescriptionFrom description_from) {
switch (description_from) {
case blink::WebAXDescriptionFromUninitialized:
return ui::AX_DESCRIPTION_FROM_UNINITIALIZED;
case blink::WebAXDescriptionFromAttribute:
return ui::AX_DESCRIPTION_FROM_ATTRIBUTE;
case blink::WebAXDescriptionFromContents:
return ui::AX_DESCRIPTION_FROM_CONTENTS;
case blink::WebAXDescriptionFromRelatedElement:
return ui::AX_DESCRIPTION_FROM_RELATED_ELEMENT;
}
NOTREACHED();
return ui::AX_DESCRIPTION_FROM_NONE;
}
ui::AXTextAffinity AXTextAffinityFromBlink(blink::WebAXTextAffinity affinity) {
switch (affinity) {
case blink::WebAXTextAffinityUpstream:
return ui::AX_TEXT_AFFINITY_UPSTREAM;
case blink::WebAXTextAffinityDownstream:
return ui::AX_TEXT_AFFINITY_DOWNSTREAM;
}
NOTREACHED();
return ui::AX_TEXT_AFFINITY_DOWNSTREAM;
}
} // namespace content.