blob: 7540c674cb6e3a035620aebe824bb809ac6c35f7 [file] [log] [blame]
// Copyright 2017 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 "ui/accessibility/ax_role_properties.h"
namespace ui {
bool IsRoleClickable(AXRole role) {
switch (role) {
case AX_ROLE_BUTTON:
case AX_ROLE_CHECK_BOX:
case AX_ROLE_COLOR_WELL:
case AX_ROLE_DISCLOSURE_TRIANGLE:
case AX_ROLE_LINK:
case AX_ROLE_LIST_BOX_OPTION:
case AX_ROLE_MENU_BUTTON:
case AX_ROLE_MENU_ITEM:
case AX_ROLE_MENU_ITEM_CHECK_BOX:
case AX_ROLE_MENU_ITEM_RADIO:
case AX_ROLE_MENU_LIST_OPTION:
case AX_ROLE_MENU_LIST_POPUP:
case AX_ROLE_POP_UP_BUTTON:
case AX_ROLE_RADIO_BUTTON:
case AX_ROLE_SWITCH:
case AX_ROLE_TAB:
case AX_ROLE_TOGGLE_BUTTON:
return true;
default:
return false;
}
}
bool IsDocument(ui::AXRole role) {
switch (role) {
case ui::AX_ROLE_ROOT_WEB_AREA:
case ui::AX_ROLE_WEB_AREA:
return true;
default:
return false;
}
}
bool IsCellOrTableHeaderRole(ui::AXRole role) {
switch (role) {
case ui::AX_ROLE_CELL:
case ui::AX_ROLE_COLUMN_HEADER:
case ui::AX_ROLE_ROW_HEADER:
return true;
default:
return false;
}
}
bool IsTableLikeRole(ui::AXRole role) {
switch (role) {
case ui::AX_ROLE_TABLE:
case ui::AX_ROLE_GRID:
case ui::AX_ROLE_TREE_GRID:
return true;
default:
return false;
}
}
bool IsContainerWithSelectableChildrenRole(ui::AXRole role) {
switch (role) {
case ui::AX_ROLE_COMBO_BOX_GROUPING:
case ui::AX_ROLE_COMBO_BOX_MENU_BUTTON:
case ui::AX_ROLE_GRID:
case ui::AX_ROLE_LIST_BOX:
case ui::AX_ROLE_MENU:
case ui::AX_ROLE_MENU_BAR:
case ui::AX_ROLE_RADIO_GROUP:
case ui::AX_ROLE_TAB_LIST:
case ui::AX_ROLE_TOOLBAR:
case ui::AX_ROLE_TREE:
case ui::AX_ROLE_TREE_GRID:
return true;
default:
return false;
}
}
bool IsRowContainer(ui::AXRole role) {
switch (role) {
case ui::AX_ROLE_TREE:
case ui::AX_ROLE_TREE_GRID:
case ui::AX_ROLE_GRID:
case ui::AX_ROLE_TABLE:
return true;
default:
return false;
}
}
bool IsControl(ui::AXRole role) {
switch (role) {
case ui::AX_ROLE_BUTTON:
case ui::AX_ROLE_CHECK_BOX:
case ui::AX_ROLE_COLOR_WELL:
case ui::AX_ROLE_COMBO_BOX_MENU_BUTTON:
case ui::AX_ROLE_DISCLOSURE_TRIANGLE:
case ui::AX_ROLE_LIST_BOX:
case ui::AX_ROLE_MENU:
case ui::AX_ROLE_MENU_BAR:
case ui::AX_ROLE_MENU_BUTTON:
case ui::AX_ROLE_MENU_ITEM:
case ui::AX_ROLE_MENU_ITEM_CHECK_BOX:
case ui::AX_ROLE_MENU_ITEM_RADIO:
case ui::AX_ROLE_MENU_LIST_OPTION:
case ui::AX_ROLE_MENU_LIST_POPUP:
case ui::AX_ROLE_POP_UP_BUTTON:
case ui::AX_ROLE_RADIO_BUTTON:
case ui::AX_ROLE_SCROLL_BAR:
case ui::AX_ROLE_SEARCH_BOX:
case ui::AX_ROLE_SLIDER:
case ui::AX_ROLE_SPIN_BUTTON:
case ui::AX_ROLE_SWITCH:
case ui::AX_ROLE_TAB:
case ui::AX_ROLE_TEXT_FIELD:
case ui::AX_ROLE_TEXT_FIELD_WITH_COMBO_BOX:
case ui::AX_ROLE_TOGGLE_BUTTON:
case ui::AX_ROLE_TREE:
return true;
default:
return false;
}
}
bool IsMenuRelated(ui::AXRole role) {
switch (role) {
case ui::AX_ROLE_MENU:
case ui::AX_ROLE_MENU_BAR:
case ui::AX_ROLE_MENU_BUTTON:
case ui::AX_ROLE_MENU_ITEM:
case ui::AX_ROLE_MENU_ITEM_CHECK_BOX:
case ui::AX_ROLE_MENU_ITEM_RADIO:
case ui::AX_ROLE_MENU_LIST_OPTION:
case ui::AX_ROLE_MENU_LIST_POPUP:
return true;
default:
return false;
}
}
} // namespace ui