summaryrefslogtreecommitdiff
path: root/chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc')
-rw-r--r--chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc206
1 files changed, 112 insertions, 94 deletions
diff --git a/chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc b/chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc
index 06bbf6949fd..b502a6786c6 100644
--- a/chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc
+++ b/chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -80,12 +80,12 @@ static const gchar* ax_platform_node_auralinux_get_name(AtkObject* atk_object) {
if (!obj)
return nullptr;
- if (obj->GetStringAttribute(ui::AX_ATTR_NAME).empty() &&
- !(obj->GetIntAttribute(ui::AX_ATTR_NAME_FROM) ==
- ui::AX_NAME_FROM_ATTRIBUTE_EXPLICITLY_EMPTY))
+ ax::mojom::NameFrom name_from = obj->GetData().GetNameFrom();
+ if (obj->GetStringAttribute(ax::mojom::StringAttribute::kName).empty() &&
+ name_from != ax::mojom::NameFrom::kAttributeExplicitlyEmpty)
return nullptr;
- return obj->GetStringAttribute(ui::AX_ATTR_NAME).c_str();
+ return obj->GetStringAttribute(ax::mojom::StringAttribute::kName).c_str();
}
static const gchar* ax_platform_node_auralinux_get_description(
@@ -95,8 +95,8 @@ static const gchar* ax_platform_node_auralinux_get_description(
if (!obj)
return nullptr;
- return obj->GetStringAttribute(
- ui::AX_ATTR_DESCRIPTION).c_str();
+ return obj->GetStringAttribute(ax::mojom::StringAttribute::kDescription)
+ .c_str();
}
static gint ax_platform_node_auralinux_get_index_in_parent(
@@ -374,7 +374,8 @@ static const gchar* ax_platform_node_auralinux_get_action_keybinding(
if (!obj)
return nullptr;
- return obj->GetStringAttribute(ui::AX_ATTR_ACCESS_KEY).c_str();
+ return obj->GetStringAttribute(ax::mojom::StringAttribute::kAccessKey)
+ .c_str();
}
void ax_action_interface_base_init(AtkActionIface* iface) {
@@ -459,7 +460,8 @@ static const gchar* ax_platform_node_auralinux_get_image_description(
if (!obj)
return nullptr;
- return obj->GetStringAttribute(ui::AX_ATTR_DESCRIPTION).c_str();
+ return obj->GetStringAttribute(ax::mojom::StringAttribute::kDescription)
+ .c_str();
}
static void ax_platform_node_auralinux_get_image_size(AtkImage* atk_img,
@@ -501,7 +503,8 @@ static void ax_platform_node_auralinux_get_current_value(AtkValue* atk_value,
if (!obj)
return;
- obj->GetFloatAttributeInGValue(ui::AX_ATTR_VALUE_FOR_RANGE, value);
+ obj->GetFloatAttributeInGValue(ax::mojom::FloatAttribute::kValueForRange,
+ value);
}
static void ax_platform_node_auralinux_get_minimum_value(AtkValue* atk_value,
@@ -514,7 +517,8 @@ static void ax_platform_node_auralinux_get_minimum_value(AtkValue* atk_value,
if (!obj)
return;
- obj->GetFloatAttributeInGValue(ui::AX_ATTR_MIN_VALUE_FOR_RANGE, value);
+ obj->GetFloatAttributeInGValue(ax::mojom::FloatAttribute::kMinValueForRange,
+ value);
}
static void ax_platform_node_auralinux_get_maximum_value(AtkValue* atk_value,
@@ -527,7 +531,8 @@ static void ax_platform_node_auralinux_get_maximum_value(AtkValue* atk_value,
if (!obj)
return;
- obj->GetFloatAttributeInGValue(ui::AX_ATTR_MAX_VALUE_FOR_RANGE, value);
+ obj->GetFloatAttributeInGValue(ax::mojom::FloatAttribute::kMaxValueForRange,
+ value);
}
static void ax_platform_node_auralinux_get_minimum_increment(
@@ -541,7 +546,8 @@ static void ax_platform_node_auralinux_get_minimum_increment(
if (!obj)
return;
- obj->GetFloatAttributeInGValue(ui::AX_ATTR_STEP_VALUE_FOR_RANGE, value);
+ obj->GetFloatAttributeInGValue(ax::mojom::FloatAttribute::kStepValueForRange,
+ value);
}
static void ax_value_interface_base_init(AtkValueIface* iface) {
@@ -810,13 +816,13 @@ void AXPlatformNodeAuraLinux::StaticInitialize() {
AtkRole AXPlatformNodeAuraLinux::GetAtkRole() {
switch (GetData().role) {
- case ui::AX_ROLE_ALERT:
+ case ax::mojom::Role::kAlert:
return ATK_ROLE_ALERT;
- case ui::AX_ROLE_ALERT_DIALOG:
+ case ax::mojom::Role::kAlertDialog:
return ATK_ROLE_ALERT;
- case ui::AX_ROLE_APPLICATION:
+ case ax::mojom::Role::kApplication:
return ATK_ROLE_APPLICATION;
- case ui::AX_ROLE_AUDIO:
+ case ax::mojom::Role::kAudio:
#if defined(ATK_CHECK_VERSION)
#if ATK_CHECK_VERSION(2, 12, 0)
return ATK_ROLE_AUDIO;
@@ -826,53 +832,62 @@ AtkRole AXPlatformNodeAuraLinux::GetAtkRole() {
#else
return ATK_ROLE_SECTION;
#endif
- case ui::AX_ROLE_BUTTON:
+ case ax::mojom::Role::kButton:
return ATK_ROLE_PUSH_BUTTON;
- case ui::AX_ROLE_CANVAS:
+ case ax::mojom::Role::kCanvas:
return ATK_ROLE_CANVAS;
- case ui::AX_ROLE_CAPTION:
+ case ax::mojom::Role::kCaption:
return ATK_ROLE_CAPTION;
- case ui::AX_ROLE_CHECK_BOX:
+ case ax::mojom::Role::kCheckBox:
return ATK_ROLE_CHECK_BOX;
- case ui::AX_ROLE_COLOR_WELL:
+ case ax::mojom::Role::kColorWell:
return ATK_ROLE_COLOR_CHOOSER;
- case ui::AX_ROLE_COLUMN_HEADER:
+ case ax::mojom::Role::kColumnHeader:
return ATK_ROLE_COLUMN_HEADER;
- case ui::AX_ROLE_COMBO_BOX_GROUPING:
+ case ax::mojom::Role::kComboBoxGrouping:
return ATK_ROLE_COMBO_BOX;
- case ui::AX_ROLE_COMBO_BOX_MENU_BUTTON:
+ case ax::mojom::Role::kComboBoxMenuButton:
return ATK_ROLE_COMBO_BOX;
- case ui::AX_ROLE_DATE:
+ case ax::mojom::Role::kDate:
return ATK_ROLE_DATE_EDITOR;
- case ui::AX_ROLE_DATE_TIME:
+ case ax::mojom::Role::kDateTime:
return ATK_ROLE_DATE_EDITOR;
- case ui::AX_ROLE_DIALOG:
+ case ax::mojom::Role::kDialog:
return ATK_ROLE_DIALOG;
- case ui::AX_ROLE_DOCUMENT:
+ case ax::mojom::Role::kDocument:
return ATK_ROLE_DOCUMENT_WEB;
- case ui::AX_ROLE_FORM:
+ case ax::mojom::Role::kForm:
return ATK_ROLE_FORM;
- case ui::AX_ROLE_GENERIC_CONTAINER:
+ case ax::mojom::Role::kGenericContainer:
return ATK_ROLE_PANEL;
- case ui::AX_ROLE_GROUP:
+ case ax::mojom::Role::kGroup:
return ATK_ROLE_PANEL;
- case ui::AX_ROLE_IGNORED:
+ case ax::mojom::Role::kIgnored:
return ATK_ROLE_REDUNDANT_OBJECT;
- case ui::AX_ROLE_IMAGE:
+ case ax::mojom::Role::kImage:
return ATK_ROLE_IMAGE;
- case ui::AX_ROLE_IMAGE_MAP:
+ case ax::mojom::Role::kImageMap:
return ATK_ROLE_IMAGE_MAP;
- case ui::AX_ROLE_LABEL_TEXT:
+ case ax::mojom::Role::kLabelText:
return ATK_ROLE_LABEL;
- case ui::AX_ROLE_LINK:
+ // Layout table objects are treated the same as Role::kGenericContainer.
+ case ax::mojom::Role::kLayoutTable:
+ return ATK_ROLE_PANEL;
+ case ax::mojom::Role::kLayoutTableCell:
+ return ATK_ROLE_PANEL;
+ case ax::mojom::Role::kLayoutTableColumn:
+ return ATK_ROLE_PANEL;
+ case ax::mojom::Role::kLayoutTableRow:
+ return ATK_ROLE_PANEL;
+ case ax::mojom::Role::kLink:
return ATK_ROLE_LINK;
- case ui::AX_ROLE_LIST:
+ case ax::mojom::Role::kList:
return ATK_ROLE_LIST;
- case ui::AX_ROLE_LIST_BOX:
+ case ax::mojom::Role::kListBox:
return ATK_ROLE_LIST_BOX;
- case ui::AX_ROLE_LIST_ITEM:
+ case ax::mojom::Role::kListItem:
return ATK_ROLE_LIST_ITEM;
- case ui::AX_ROLE_MATH:
+ case ax::mojom::Role::kMath:
#if defined(ATK_CHECK_VERSION)
#if ATK_CHECK_VERSION(2, 12, 0)
return ATK_ROLE_MATH;
@@ -882,61 +897,61 @@ AtkRole AXPlatformNodeAuraLinux::GetAtkRole() {
#else
return ATK_ROLE_TEXT;
#endif
- case ui::AX_ROLE_MENU:
+ case ax::mojom::Role::kMenu:
return ATK_ROLE_MENU;
- case ui::AX_ROLE_MENU_BAR:
+ case ax::mojom::Role::kMenuBar:
return ATK_ROLE_MENU_BAR;
- case ui::AX_ROLE_MENU_ITEM:
+ case ax::mojom::Role::kMenuItem:
return ATK_ROLE_MENU_ITEM;
- case ui::AX_ROLE_MENU_ITEM_CHECK_BOX:
+ case ax::mojom::Role::kMenuItemCheckBox:
return ATK_ROLE_CHECK_MENU_ITEM;
- case ui::AX_ROLE_MENU_ITEM_RADIO:
+ case ax::mojom::Role::kMenuItemRadio:
return ATK_ROLE_RADIO_MENU_ITEM;
- case ui::AX_ROLE_METER:
+ case ax::mojom::Role::kMeter:
return ATK_ROLE_PROGRESS_BAR;
- case ui::AX_ROLE_PARAGRAPH:
+ case ax::mojom::Role::kParagraph:
return ATK_ROLE_PARAGRAPH;
- case ui::AX_ROLE_RADIO_BUTTON:
+ case ax::mojom::Role::kRadioButton:
return ATK_ROLE_RADIO_BUTTON;
- case ui::AX_ROLE_ROW_HEADER:
+ case ax::mojom::Role::kRowHeader:
return ATK_ROLE_ROW_HEADER;
- case ui::AX_ROLE_ROOT_WEB_AREA:
+ case ax::mojom::Role::kRootWebArea:
return ATK_ROLE_DOCUMENT_WEB;
- case ui::AX_ROLE_SCROLL_BAR:
+ case ax::mojom::Role::kScrollBar:
return ATK_ROLE_SCROLL_BAR;
- case ui::AX_ROLE_SLIDER:
+ case ax::mojom::Role::kSlider:
return ATK_ROLE_SLIDER;
- case ui::AX_ROLE_SPIN_BUTTON:
+ case ax::mojom::Role::kSpinButton:
return ATK_ROLE_SPIN_BUTTON;
- case ui::AX_ROLE_SPLITTER:
+ case ax::mojom::Role::kSplitter:
return ATK_ROLE_SEPARATOR;
- case ui::AX_ROLE_STATIC_TEXT:
+ case ax::mojom::Role::kStaticText:
return ATK_ROLE_TEXT;
- case ui::AX_ROLE_STATUS:
+ case ax::mojom::Role::kStatus:
return ATK_ROLE_STATUSBAR;
- case ui::AX_ROLE_TAB:
+ case ax::mojom::Role::kTab:
return ATK_ROLE_PAGE_TAB;
- case ui::AX_ROLE_TABLE:
+ case ax::mojom::Role::kTable:
return ATK_ROLE_TABLE;
- case ui::AX_ROLE_TAB_LIST:
+ case ax::mojom::Role::kTabList:
return ATK_ROLE_PAGE_TAB_LIST;
- case ui::AX_ROLE_TEXT_FIELD:
+ case ax::mojom::Role::kTextField:
return ATK_ROLE_ENTRY;
- case ui::AX_ROLE_TEXT_FIELD_WITH_COMBO_BOX:
+ case ax::mojom::Role::kTextFieldWithComboBox:
return ATK_ROLE_COMBO_BOX;
- case ui::AX_ROLE_TOGGLE_BUTTON:
+ case ax::mojom::Role::kToggleButton:
return ATK_ROLE_TOGGLE_BUTTON;
- case ui::AX_ROLE_TOOLBAR:
+ case ax::mojom::Role::kToolbar:
return ATK_ROLE_TOOL_BAR;
- case ui::AX_ROLE_TOOLTIP:
+ case ax::mojom::Role::kTooltip:
return ATK_ROLE_TOOL_TIP;
- case ui::AX_ROLE_TREE:
+ case ax::mojom::Role::kTree:
return ATK_ROLE_TREE;
- case ui::AX_ROLE_TREE_ITEM:
+ case ax::mojom::Role::kTreeItem:
return ATK_ROLE_TREE_ITEM;
- case ui::AX_ROLE_TREE_GRID:
+ case ax::mojom::Role::kTreeGrid:
return ATK_ROLE_TREE_TABLE;
- case ui::AX_ROLE_VIDEO:
+ case ax::mojom::Role::kVideo:
#if defined(ATK_CHECK_VERSION)
#if ATK_CHECK_VERSION(2, 12, 0)
return ATK_ROLE_VIDEO;
@@ -946,9 +961,9 @@ AtkRole AXPlatformNodeAuraLinux::GetAtkRole() {
#else
return ATK_ROLE_SECTION;
#endif
- case ui::AX_ROLE_WEB_AREA:
+ case ax::mojom::Role::kWebArea:
return ATK_ROLE_DOCUMENT_WEB;
- case ui::AX_ROLE_WINDOW:
+ case ax::mojom::Role::kWindow:
return ATK_ROLE_WINDOW;
default:
return ATK_ROLE_UNKNOWN;
@@ -957,35 +972,34 @@ AtkRole AXPlatformNodeAuraLinux::GetAtkRole() {
void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
AXNodeData data = GetData();
- if (data.HasState(ui::AX_STATE_DEFAULT))
+ if (data.HasState(ax::mojom::State::kDefault))
atk_state_set_add_state(atk_state_set, ATK_STATE_DEFAULT);
- if (data.HasState(ui::AX_STATE_EDITABLE))
+ if (data.HasState(ax::mojom::State::kEditable))
atk_state_set_add_state(atk_state_set, ATK_STATE_EDITABLE);
- if (data.HasState(ui::AX_STATE_EXPANDED))
+ if (data.HasState(ax::mojom::State::kExpanded))
atk_state_set_add_state(atk_state_set, ATK_STATE_EXPANDED);
- if (data.HasState(ui::AX_STATE_FOCUSABLE))
+ if (data.HasState(ax::mojom::State::kFocusable))
atk_state_set_add_state(atk_state_set, ATK_STATE_FOCUSABLE);
#if defined(ATK_CHECK_VERSION)
#if ATK_CHECK_VERSION(2, 11, 2)
- if (data.HasState(ui::AX_STATE_HASPOPUP))
+ if (data.HasState(ax::mojom::State::kHaspopup))
atk_state_set_add_state(atk_state_set, ATK_STATE_HAS_POPUP);
#endif
#endif
- if (data.HasState(ui::AX_STATE_SELECTED))
+ if (data.HasState(ax::mojom::State::kSelected))
atk_state_set_add_state(atk_state_set, ATK_STATE_SELECTED);
- if (data.HasState(ui::AX_STATE_SELECTABLE))
+ if (data.HasState(ax::mojom::State::kSelectable))
atk_state_set_add_state(atk_state_set, ATK_STATE_SELECTABLE);
// Checked state
- const auto checked_state = static_cast<ui::AXCheckedState>(
- GetIntAttribute(ui::AX_ATTR_CHECKED_STATE));
+ const auto checked_state = GetData().GetCheckedState();
switch (checked_state) {
- case ui::AX_CHECKED_STATE_MIXED:
+ case ax::mojom::CheckedState::kMixed:
atk_state_set_add_state(atk_state_set, ATK_STATE_INDETERMINATE);
break;
- case ui::AX_CHECKED_STATE_TRUE:
+ case ax::mojom::CheckedState::kTrue:
atk_state_set_add_state(atk_state_set,
- data.role == ui::AX_ROLE_TOGGLE_BUTTON
+ data.role == ax::mojom::Role::kToggleButton
? ATK_STATE_PRESSED
: ATK_STATE_CHECKED);
break;
@@ -993,17 +1007,19 @@ void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
break;
}
- switch (GetIntAttribute(ui::AX_ATTR_RESTRICTION)) {
- case ui::AX_RESTRICTION_NONE:
+ switch (GetData().GetRestriction()) {
+ case ax::mojom::Restriction::kNone:
atk_state_set_add_state(atk_state_set, ATK_STATE_ENABLED);
break;
- case ui::AX_RESTRICTION_READ_ONLY:
+ case ax::mojom::Restriction::kReadOnly:
#if defined(ATK_CHECK_VERSION)
#if ATK_CHECK_VERSION(2, 16, 0)
atk_state_set_add_state(atk_state_set, ATK_STATE_READ_ONLY);
#endif
#endif
break;
+ default:
+ break;
}
if (delegate_->GetFocus() == GetNativeViewAccessible())
@@ -1093,9 +1109,10 @@ void AXPlatformNodeAuraLinux::OnFocused() {
true);
}
-void AXPlatformNodeAuraLinux::NotifyAccessibilityEvent(ui::AXEvent event_type) {
+void AXPlatformNodeAuraLinux::NotifyAccessibilityEvent(
+ ax::mojom::Event event_type) {
switch (event_type) {
- case AX_EVENT_FOCUS:
+ case ax::mojom::Event::kFocus:
OnFocused();
break;
default:
@@ -1112,7 +1129,7 @@ int AXPlatformNodeAuraLinux::GetIndexInParent() {
void AXPlatformNodeAuraLinux::SetExtentsRelativeToAtkCoordinateType(
gint* x, gint* y, gint* width, gint* height, AtkCoordType coord_type) {
- gfx::Rect extents = GetBoundsInScreen();
+ gfx::Rect extents = delegate_->GetUnclippedScreenBoundsRect();
if (x)
*x = extents.x();
@@ -1172,23 +1189,23 @@ AXPlatformNodeAuraLinux::HitTestSync(gint x, gint y, AtkCoordType coord_type) {
bool AXPlatformNodeAuraLinux::GrabFocus() {
AXActionData action_data;
- action_data.action = AX_ACTION_FOCUS;
+ action_data.action = ax::mojom::Action::kFocus;
return delegate_->AccessibilityPerformAction(action_data);
}
bool AXPlatformNodeAuraLinux::DoDefaultAction() {
AXActionData action_data;
- action_data.action = AX_ACTION_DO_DEFAULT;
+ action_data.action = ax::mojom::Action::kDoDefault;
return delegate_->AccessibilityPerformAction(action_data);
}
const gchar* AXPlatformNodeAuraLinux::GetDefaultActionName() {
int action;
- if (!GetIntAttribute(ui::AX_ATTR_DEFAULT_ACTION_VERB, &action))
+ if (!GetIntAttribute(ax::mojom::IntAttribute::kDefaultActionVerb, &action))
return nullptr;
base::string16 action_verb = ui::ActionVerbToUnlocalizedString(
- static_cast<ui::AXDefaultActionVerb>(action));
+ static_cast<ax::mojom::DefaultActionVerb>(action));
ATK_AURALINUX_RETURN_STRING(base::UTF16ToUTF8(action_verb));
}
@@ -1250,8 +1267,9 @@ AtkHyperlink* AXPlatformNodeAuraLinux::GetAtkHyperlink() {
// Misc helpers
//
-void AXPlatformNodeAuraLinux::GetFloatAttributeInGValue(AXFloatAttribute attr,
- GValue* value) {
+void AXPlatformNodeAuraLinux::GetFloatAttributeInGValue(
+ ax::mojom::FloatAttribute attr,
+ GValue* value) {
float float_val;
if (GetFloatAttribute(attr, &float_val)) {
memset(value, 0, sizeof(*value));