| // 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 |