blob: d1aea8ecb73161ba33b5429e1fa987285332b89e [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;
blink::WebAXExpanded expanded = o.IsExpanded();
if (expanded) {
if (expanded == blink::kWebAXExpandedCollapsed)
state |= (1 << ui::AX_STATE_COLLAPSED);
else if (expanded == blink::kWebAXExpandedExpanded)
state |= (1 << ui::AX_STATE_EXPANDED);
}
if (o.CanSetFocusAttribute())
state |= (1 << ui::AX_STATE_FOCUSABLE);
if (o.Role() == blink::kWebAXRolePopUpButton || 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.IsPasswordField())
state |= (1 << ui::AX_STATE_PROTECTED);
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.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::kWebAXOrientationVertical)
state |= (1 << ui::AX_STATE_VERTICAL);
else if (o.Orientation() == blink::kWebAXOrientationHorizontal)
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::kWebAXRoleAbbr:
return ui::AX_ROLE_ABBR;
case blink::kWebAXRoleAlert:
return ui::AX_ROLE_ALERT;
case blink::kWebAXRoleAlertDialog:
return ui::AX_ROLE_ALERT_DIALOG;
case blink::kWebAXRoleAnchor:
return ui::AX_ROLE_ANCHOR;
case blink::kWebAXRoleAnnotation:
return ui::AX_ROLE_ANNOTATION;
case blink::kWebAXRoleApplication:
return ui::AX_ROLE_APPLICATION;
case blink::kWebAXRoleArticle:
return ui::AX_ROLE_ARTICLE;
case blink::kWebAXRoleAudio:
return ui::AX_ROLE_AUDIO;
case blink::kWebAXRoleBanner:
return ui::AX_ROLE_BANNER;
case blink::kWebAXRoleBlockquote:
return ui::AX_ROLE_BLOCKQUOTE;
case blink::kWebAXRoleButton:
return ui::AX_ROLE_BUTTON;
case blink::kWebAXRoleCanvas:
return ui::AX_ROLE_CANVAS;
case blink::kWebAXRoleCaption:
return ui::AX_ROLE_CAPTION;
case blink::kWebAXRoleCell:
return ui::AX_ROLE_CELL;
case blink::kWebAXRoleCheckBox:
return ui::AX_ROLE_CHECK_BOX;
case blink::kWebAXRoleColorWell:
return ui::AX_ROLE_COLOR_WELL;
case blink::kWebAXRoleColumn:
return ui::AX_ROLE_COLUMN;
case blink::kWebAXRoleColumnHeader:
return ui::AX_ROLE_COLUMN_HEADER;
case blink::kWebAXRoleComboBoxGrouping:
return ui::AX_ROLE_COMBO_BOX_GROUPING;
case blink::kWebAXRoleComboBoxMenuButton:
return ui::AX_ROLE_COMBO_BOX_MENU_BUTTON;
case blink::kWebAXRoleComplementary:
return ui::AX_ROLE_COMPLEMENTARY;
case blink::kWebAXRoleContentInfo:
return ui::AX_ROLE_CONTENT_INFO;
case blink::kWebAXRoleDate:
return ui::AX_ROLE_DATE;
case blink::kWebAXRoleDateTime:
return ui::AX_ROLE_DATE_TIME;
case blink::kWebAXRoleDefinition:
return ui::AX_ROLE_DEFINITION;
case blink::kWebAXRoleDescriptionListDetail:
return ui::AX_ROLE_DESCRIPTION_LIST_DETAIL;
case blink::kWebAXRoleDescriptionList:
return ui::AX_ROLE_DESCRIPTION_LIST;
case blink::kWebAXRoleDescriptionListTerm:
return ui::AX_ROLE_DESCRIPTION_LIST_TERM;
case blink::kWebAXRoleDetails:
return ui::AX_ROLE_DETAILS;
case blink::kWebAXRoleDialog:
return ui::AX_ROLE_DIALOG;
case blink::kWebAXRoleDirectory:
return ui::AX_ROLE_DIRECTORY;
case blink::kWebAXRoleDisclosureTriangle:
return ui::AX_ROLE_DISCLOSURE_TRIANGLE;
case blink::kWebAXRoleDocument:
return ui::AX_ROLE_DOCUMENT;
case blink::kWebAXRoleEmbeddedObject:
return ui::AX_ROLE_EMBEDDED_OBJECT;
case blink::kWebAXRoleFeed:
return ui::AX_ROLE_FEED;
case blink::kWebAXRoleFigcaption:
return ui::AX_ROLE_FIGCAPTION;
case blink::kWebAXRoleFigure:
return ui::AX_ROLE_FIGURE;
case blink::kWebAXRoleFooter:
return ui::AX_ROLE_FOOTER;
case blink::kWebAXRoleForm:
return ui::AX_ROLE_FORM;
case blink::kWebAXRoleGenericContainer:
return ui::AX_ROLE_GENERIC_CONTAINER;
case blink::kWebAXRoleGrid:
return ui::AX_ROLE_GRID;
case blink::kWebAXRoleGroup:
return ui::AX_ROLE_GROUP;
case blink::kWebAXRoleHeading:
return ui::AX_ROLE_HEADING;
case blink::kWebAXRoleIframe:
return ui::AX_ROLE_IFRAME;
case blink::kWebAXRoleIframePresentational:
return ui::AX_ROLE_IFRAME_PRESENTATIONAL;
case blink::kWebAXRoleIgnored:
return ui::AX_ROLE_IGNORED;
case blink::kWebAXRoleImage:
return ui::AX_ROLE_IMAGE;
case blink::kWebAXRoleImageMap:
return ui::AX_ROLE_IMAGE_MAP;
case blink::kWebAXRoleInlineTextBox:
return ui::AX_ROLE_INLINE_TEXT_BOX;
case blink::kWebAXRoleInputTime:
return ui::AX_ROLE_INPUT_TIME;
case blink::kWebAXRoleLabel:
return ui::AX_ROLE_LABEL_TEXT;
case blink::kWebAXRoleLegend:
return ui::AX_ROLE_LEGEND;
case blink::kWebAXRoleLink:
return ui::AX_ROLE_LINK;
case blink::kWebAXRoleList:
return ui::AX_ROLE_LIST;
case blink::kWebAXRoleListBox:
return ui::AX_ROLE_LIST_BOX;
case blink::kWebAXRoleListBoxOption:
return ui::AX_ROLE_LIST_BOX_OPTION;
case blink::kWebAXRoleListItem:
return ui::AX_ROLE_LIST_ITEM;
case blink::kWebAXRoleListMarker:
return ui::AX_ROLE_LIST_MARKER;
case blink::kWebAXRoleLog:
return ui::AX_ROLE_LOG;
case blink::kWebAXRoleMain:
return ui::AX_ROLE_MAIN;
case blink::kWebAXRoleMarquee:
return ui::AX_ROLE_MARQUEE;
case blink::kWebAXRoleMark:
return ui::AX_ROLE_MARK;
case blink::kWebAXRoleMath:
return ui::AX_ROLE_MATH;
case blink::kWebAXRoleMenu:
return ui::AX_ROLE_MENU;
case blink::kWebAXRoleMenuBar:
return ui::AX_ROLE_MENU_BAR;
case blink::kWebAXRoleMenuButton:
return ui::AX_ROLE_MENU_BUTTON;
case blink::kWebAXRoleMenuItem:
return ui::AX_ROLE_MENU_ITEM;
case blink::kWebAXRoleMenuItemCheckBox:
return ui::AX_ROLE_MENU_ITEM_CHECK_BOX;
case blink::kWebAXRoleMenuItemRadio:
return ui::AX_ROLE_MENU_ITEM_RADIO;
case blink::kWebAXRoleMenuListOption:
return ui::AX_ROLE_MENU_LIST_OPTION;
case blink::kWebAXRoleMenuListPopup:
return ui::AX_ROLE_MENU_LIST_POPUP;
case blink::kWebAXRoleMeter:
return ui::AX_ROLE_METER;
case blink::kWebAXRoleNavigation:
return ui::AX_ROLE_NAVIGATION;
case blink::kWebAXRoleNone:
return ui::AX_ROLE_NONE;
case blink::kWebAXRoleNote:
return ui::AX_ROLE_NOTE;
case blink::kWebAXRoleParagraph:
return ui::AX_ROLE_PARAGRAPH;
case blink::kWebAXRolePopUpButton:
return ui::AX_ROLE_POP_UP_BUTTON;
case blink::kWebAXRolePre:
return ui::AX_ROLE_PRE;
case blink::kWebAXRolePresentational:
return ui::AX_ROLE_PRESENTATIONAL;
case blink::kWebAXRoleProgressIndicator:
return ui::AX_ROLE_PROGRESS_INDICATOR;
case blink::kWebAXRoleRadioButton:
return ui::AX_ROLE_RADIO_BUTTON;
case blink::kWebAXRoleRadioGroup:
return ui::AX_ROLE_RADIO_GROUP;
case blink::kWebAXRoleRegion:
return ui::AX_ROLE_REGION;
case blink::kWebAXRoleRow:
return ui::AX_ROLE_ROW;
case blink::kWebAXRoleRuby:
return ui::AX_ROLE_RUBY;
case blink::kWebAXRoleRowHeader:
return ui::AX_ROLE_ROW_HEADER;
case blink::kWebAXRoleSVGRoot:
return ui::AX_ROLE_SVG_ROOT;
case blink::kWebAXRoleScrollBar:
return ui::AX_ROLE_SCROLL_BAR;
case blink::kWebAXRoleSearch:
return ui::AX_ROLE_SEARCH;
case blink::kWebAXRoleSearchBox:
return ui::AX_ROLE_SEARCH_BOX;
case blink::kWebAXRoleSlider:
return ui::AX_ROLE_SLIDER;
case blink::kWebAXRoleSliderThumb:
return ui::AX_ROLE_SLIDER_THUMB;
case blink::kWebAXRoleSpinButton:
return ui::AX_ROLE_SPIN_BUTTON;
case blink::kWebAXRoleSpinButtonPart:
return ui::AX_ROLE_SPIN_BUTTON_PART;
case blink::kWebAXRoleSplitter:
return ui::AX_ROLE_SPLITTER;
case blink::kWebAXRoleStaticText:
return ui::AX_ROLE_STATIC_TEXT;
case blink::kWebAXRoleStatus:
return ui::AX_ROLE_STATUS;
case blink::kWebAXRoleSwitch:
return ui::AX_ROLE_SWITCH;
case blink::kWebAXRoleTab:
return ui::AX_ROLE_TAB;
case blink::kWebAXRoleTabList:
return ui::AX_ROLE_TAB_LIST;
case blink::kWebAXRoleTabPanel:
return ui::AX_ROLE_TAB_PANEL;
case blink::kWebAXRoleTable:
return ui::AX_ROLE_TABLE;
case blink::kWebAXRoleTableHeaderContainer:
return ui::AX_ROLE_TABLE_HEADER_CONTAINER;
case blink::kWebAXRoleTerm:
return ui::AX_ROLE_TERM;
case blink::kWebAXRoleTextField:
return ui::AX_ROLE_TEXT_FIELD;
case blink::kWebAXRoleTextFieldWithComboBox:
return ui::AX_ROLE_TEXT_FIELD_WITH_COMBO_BOX;
case blink::kWebAXRoleTime:
return ui::AX_ROLE_TIME;
case blink::kWebAXRoleTimer:
return ui::AX_ROLE_TIMER;
case blink::kWebAXRoleToggleButton:
return ui::AX_ROLE_TOGGLE_BUTTON;
case blink::kWebAXRoleToolbar:
return ui::AX_ROLE_TOOLBAR;
case blink::kWebAXRoleTree:
return ui::AX_ROLE_TREE;
case blink::kWebAXRoleTreeGrid:
return ui::AX_ROLE_TREE_GRID;
case blink::kWebAXRoleTreeItem:
return ui::AX_ROLE_TREE_ITEM;
case blink::kWebAXRoleUnknown:
return ui::AX_ROLE_UNKNOWN;
case blink::kWebAXRoleUserInterfaceTooltip:
return ui::AX_ROLE_TOOLTIP;
case blink::kWebAXRoleVideo:
return ui::AX_ROLE_VIDEO;
case blink::kWebAXRoleWebArea:
return ui::AX_ROLE_ROOT_WEB_AREA;
case blink::kWebAXRoleLineBreak:
return ui::AX_ROLE_LINE_BREAK;
default:
return ui::AX_ROLE_UNKNOWN;
}
}
ui::AXEvent AXEventFromBlink(blink::WebAXEvent event) {
switch (event) {
case blink::kWebAXEventActiveDescendantChanged:
return ui::AX_EVENT_ACTIVEDESCENDANTCHANGED;
case blink::kWebAXEventAriaAttributeChanged:
return ui::AX_EVENT_ARIA_ATTRIBUTE_CHANGED;
case blink::kWebAXEventAutocorrectionOccured:
return ui::AX_EVENT_AUTOCORRECTION_OCCURED;
case blink::kWebAXEventBlur:
return ui::AX_EVENT_BLUR;
case blink::kWebAXEventCheckedStateChanged:
return ui::AX_EVENT_CHECKED_STATE_CHANGED;
case blink::kWebAXEventChildrenChanged:
return ui::AX_EVENT_CHILDREN_CHANGED;
case blink::kWebAXEventClicked:
return ui::AX_EVENT_CLICKED;
case blink::kWebAXEventDocumentSelectionChanged:
return ui::AX_EVENT_DOCUMENT_SELECTION_CHANGED;
case blink::kWebAXEventExpandedChanged:
return ui::AX_EVENT_EXPANDED_CHANGED;
case blink::kWebAXEventFocus:
return ui::AX_EVENT_FOCUS;
case blink::kWebAXEventHover:
return ui::AX_EVENT_HOVER;
case blink::kWebAXEventInvalidStatusChanged:
return ui::AX_EVENT_INVALID_STATUS_CHANGED;
case blink::kWebAXEventLayoutComplete:
return ui::AX_EVENT_LAYOUT_COMPLETE;
case blink::kWebAXEventLiveRegionChanged:
return ui::AX_EVENT_LIVE_REGION_CHANGED;
case blink::kWebAXEventLoadComplete:
return ui::AX_EVENT_LOAD_COMPLETE;
case blink::kWebAXEventLocationChanged:
return ui::AX_EVENT_LOCATION_CHANGED;
case blink::kWebAXEventMenuListItemSelected:
return ui::AX_EVENT_MENU_LIST_ITEM_SELECTED;
case blink::kWebAXEventMenuListItemUnselected:
return ui::AX_EVENT_MENU_LIST_ITEM_SELECTED;
case blink::kWebAXEventMenuListValueChanged:
return ui::AX_EVENT_MENU_LIST_VALUE_CHANGED;
case blink::kWebAXEventRowCollapsed:
return ui::AX_EVENT_ROW_COLLAPSED;
case blink::kWebAXEventRowCountChanged:
return ui::AX_EVENT_ROW_COUNT_CHANGED;
case blink::kWebAXEventRowExpanded:
return ui::AX_EVENT_ROW_EXPANDED;
case blink::kWebAXEventScrollPositionChanged:
return ui::AX_EVENT_SCROLL_POSITION_CHANGED;
case blink::kWebAXEventScrolledToAnchor:
return ui::AX_EVENT_SCROLLED_TO_ANCHOR;
case blink::kWebAXEventSelectedChildrenChanged:
return ui::AX_EVENT_SELECTED_CHILDREN_CHANGED;
case blink::kWebAXEventSelectedTextChanged:
return ui::AX_EVENT_TEXT_SELECTION_CHANGED;
case blink::kWebAXEventTextChanged:
return ui::AX_EVENT_TEXT_CHANGED;
case blink::kWebAXEventValueChanged:
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::AXDefaultActionVerb AXDefaultActionVerbFromBlink(
blink::WebAXDefaultActionVerb action_verb) {
switch (action_verb) {
case blink::WebAXDefaultActionVerb::kNone:
return ui::AX_DEFAULT_ACTION_VERB_NONE;
case blink::WebAXDefaultActionVerb::kActivate:
return ui::AX_DEFAULT_ACTION_VERB_ACTIVATE;
case blink::WebAXDefaultActionVerb::kCheck:
return ui::AX_DEFAULT_ACTION_VERB_CHECK;
case blink::WebAXDefaultActionVerb::kClick:
return ui::AX_DEFAULT_ACTION_VERB_CLICK;
case blink::WebAXDefaultActionVerb::kClickAncestor:
return ui::AX_DEFAULT_ACTION_VERB_CLICK_ANCESTOR;
case blink::WebAXDefaultActionVerb::kJump:
return ui::AX_DEFAULT_ACTION_VERB_JUMP;
case blink::WebAXDefaultActionVerb::kOpen:
return ui::AX_DEFAULT_ACTION_VERB_OPEN;
case blink::WebAXDefaultActionVerb::kPress:
return ui::AX_DEFAULT_ACTION_VERB_PRESS;
case blink::WebAXDefaultActionVerb::kSelect:
return ui::AX_DEFAULT_ACTION_VERB_SELECT;
case blink::WebAXDefaultActionVerb::kUncheck:
return ui::AX_DEFAULT_ACTION_VERB_UNCHECK;
}
NOTREACHED();
return ui::AX_DEFAULT_ACTION_VERB_NONE;
}
ui::AXMarkerType AXMarkerTypeFromBlink(blink::WebAXMarkerType marker_type) {
switch (marker_type) {
case blink::kWebAXMarkerTypeSpelling:
return ui::AX_MARKER_TYPE_SPELLING;
case blink::kWebAXMarkerTypeGrammar:
return ui::AX_MARKER_TYPE_GRAMMAR;
case blink::kWebAXMarkerTypeTextMatch:
return ui::AX_MARKER_TYPE_TEXT_MATCH;
case blink::kWebAXMarkerTypeActiveSuggestion:
return ui::AX_MARKER_TYPE_ACTIVE_SUGGESTION;
case blink::kWebAXMarkerTypeSuggestion:
return ui::AX_MARKER_TYPE_SUGGESTION;
}
NOTREACHED();
return ui::AX_MARKER_TYPE_NONE;
}
ui::AXTextDirection AXTextDirectionFromBlink(
blink::WebAXTextDirection text_direction) {
switch (text_direction) {
case blink::kWebAXTextDirectionLR:
return ui::AX_TEXT_DIRECTION_LTR;
case blink::kWebAXTextDirectionRL:
return ui::AX_TEXT_DIRECTION_RTL;
case blink::kWebAXTextDirectionTB:
return ui::AX_TEXT_DIRECTION_TTB;
case blink::kWebAXTextDirectionBT:
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::kWebAXTextStyleBold)
browser_text_style |= ui::AX_TEXT_STYLE_BOLD;
if (text_style & blink::kWebAXTextStyleItalic)
browser_text_style |= ui::AX_TEXT_STYLE_ITALIC;
if (text_style & blink::kWebAXTextStyleUnderline)
browser_text_style |= ui::AX_TEXT_STYLE_UNDERLINE;
if (text_style & blink::kWebAXTextStyleLineThrough)
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::kWebAXAriaCurrentStateUndefined:
return ui::AX_ARIA_CURRENT_STATE_NONE;
case blink::kWebAXAriaCurrentStateFalse:
return ui::AX_ARIA_CURRENT_STATE_FALSE;
case blink::kWebAXAriaCurrentStateTrue:
return ui::AX_ARIA_CURRENT_STATE_TRUE;
case blink::kWebAXAriaCurrentStatePage:
return ui::AX_ARIA_CURRENT_STATE_PAGE;
case blink::kWebAXAriaCurrentStateStep:
return ui::AX_ARIA_CURRENT_STATE_STEP;
case blink::kWebAXAriaCurrentStateLocation:
return ui::AX_ARIA_CURRENT_STATE_LOCATION;
case blink::kWebAXAriaCurrentStateDate:
return ui::AX_ARIA_CURRENT_STATE_DATE;
case blink::kWebAXAriaCurrentStateTime:
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::kWebAXInvalidStateUndefined:
return ui::AX_INVALID_STATE_NONE;
case blink::kWebAXInvalidStateFalse:
return ui::AX_INVALID_STATE_FALSE;
case blink::kWebAXInvalidStateTrue:
return ui::AX_INVALID_STATE_TRUE;
case blink::kWebAXInvalidStateSpelling:
return ui::AX_INVALID_STATE_SPELLING;
case blink::kWebAXInvalidStateGrammar:
return ui::AX_INVALID_STATE_GRAMMAR;
case blink::kWebAXInvalidStateOther:
return ui::AX_INVALID_STATE_OTHER;
}
NOTREACHED();
return ui::AX_INVALID_STATE_NONE;
}
ui::AXCheckedState AXCheckedStateFromBlink(
blink::WebAXCheckedState checked_state) {
switch (checked_state) {
case blink::kWebAXCheckedUndefined:
return ui::AX_CHECKED_STATE_NONE;
case blink::kWebAXCheckedTrue:
return ui::AX_CHECKED_STATE_TRUE;
case blink::kWebAXCheckedMixed:
return ui::AX_CHECKED_STATE_MIXED;
case blink::kWebAXCheckedFalse:
return ui::AX_CHECKED_STATE_FALSE;
}
NOTREACHED();
return ui::AX_CHECKED_STATE_NONE;
}
ui::AXSortDirection AXSortDirectionFromBlink(
blink::WebAXSortDirection sort_direction) {
switch (sort_direction) {
case blink::kWebAXSortDirectionUndefined:
return ui::AX_SORT_DIRECTION_NONE;
case blink::kWebAXSortDirectionNone:
return ui::AX_SORT_DIRECTION_UNSORTED;
case blink::kWebAXSortDirectionAscending:
return ui::AX_SORT_DIRECTION_ASCENDING;
case blink::kWebAXSortDirectionDescending:
return ui::AX_SORT_DIRECTION_DESCENDING;
case blink::kWebAXSortDirectionOther:
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::kWebAXNameFromUninitialized:
return ui::AX_NAME_FROM_UNINITIALIZED;
case blink::kWebAXNameFromAttribute:
return ui::AX_NAME_FROM_ATTRIBUTE;
case blink::kWebAXNameFromAttributeExplicitlyEmpty:
return ui::AX_NAME_FROM_ATTRIBUTE_EXPLICITLY_EMPTY;
case blink::kWebAXNameFromCaption:
return ui::AX_NAME_FROM_RELATED_ELEMENT;
case blink::kWebAXNameFromContents:
return ui::AX_NAME_FROM_CONTENTS;
case blink::kWebAXNameFromPlaceholder:
return ui::AX_NAME_FROM_PLACEHOLDER;
case blink::kWebAXNameFromRelatedElement:
return ui::AX_NAME_FROM_RELATED_ELEMENT;
case blink::kWebAXNameFromValue:
return ui::AX_NAME_FROM_VALUE;
case blink::kWebAXNameFromTitle:
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::kWebAXDescriptionFromUninitialized:
return ui::AX_DESCRIPTION_FROM_UNINITIALIZED;
case blink::kWebAXDescriptionFromAttribute:
return ui::AX_DESCRIPTION_FROM_ATTRIBUTE;
case blink::kWebAXDescriptionFromContents:
return ui::AX_DESCRIPTION_FROM_CONTENTS;
case blink::kWebAXDescriptionFromRelatedElement:
return ui::AX_DESCRIPTION_FROM_RELATED_ELEMENT;
}
NOTREACHED();
return ui::AX_DESCRIPTION_FROM_NONE;
}
ui::AXTextAffinity AXTextAffinityFromBlink(blink::WebAXTextAffinity affinity) {
switch (affinity) {
case blink::kWebAXTextAffinityUpstream:
return ui::AX_TEXT_AFFINITY_UPSTREAM;
case blink::kWebAXTextAffinityDownstream:
return ui::AX_TEXT_AFFINITY_DOWNSTREAM;
}
NOTREACHED();
return ui::AX_TEXT_AFFINITY_DOWNSTREAM;
}
} // namespace content.