Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/accessibility/browser_accessibility_win.h" | 5 #include "content/browser/accessibility/browser_accessibility_win.h" |
| 6 | 6 |
| 7 #include <UIAutomationClient.h> | 7 #include <UIAutomationClient.h> |
| 8 #include <UIAutomationCoreApi.h> | 8 #include <UIAutomationCoreApi.h> |
| 9 | 9 |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 3843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3854 case ui::AX_ROLE_IMAGE_MAP_LINK: | 3854 case ui::AX_ROLE_IMAGE_MAP_LINK: |
| 3855 ia_role = ROLE_SYSTEM_LINK; | 3855 ia_role = ROLE_SYSTEM_LINK; |
| 3856 ia_state |= STATE_SYSTEM_LINKED; | 3856 ia_state |= STATE_SYSTEM_LINKED; |
| 3857 ia_state |= STATE_SYSTEM_READONLY; | 3857 ia_state |= STATE_SYSTEM_READONLY; |
| 3858 break; | 3858 break; |
| 3859 case ui::AX_ROLE_LABEL_TEXT: | 3859 case ui::AX_ROLE_LABEL_TEXT: |
| 3860 case ui::AX_ROLE_LEGEND: | 3860 case ui::AX_ROLE_LEGEND: |
| 3861 ia_role = ROLE_SYSTEM_TEXT; | 3861 ia_role = ROLE_SYSTEM_TEXT; |
| 3862 ia2_role = IA2_ROLE_LABEL; | 3862 ia2_role = IA2_ROLE_LABEL; |
| 3863 break; | 3863 break; |
| 3864 case ui::AX_ROLE_SEARCH: | |
| 3865 ia_role = ROLE_SYSTEM_GROUPING; | |
| 3866 ia2_role = IA2_ROLE_SECTION; | |
| 3867 break; | |
| 3868 case ui::AX_ROLE_LINK: | 3864 case ui::AX_ROLE_LINK: |
| 3869 ia_role = ROLE_SYSTEM_LINK; | 3865 ia_role = ROLE_SYSTEM_LINK; |
| 3870 ia_state |= STATE_SYSTEM_LINKED; | 3866 ia_state |= STATE_SYSTEM_LINKED; |
| 3871 break; | 3867 break; |
| 3872 case ui::AX_ROLE_LIST: | 3868 case ui::AX_ROLE_LIST: |
| 3873 ia_role = ROLE_SYSTEM_LIST; | 3869 ia_role = ROLE_SYSTEM_LIST; |
| 3874 ia_state |= STATE_SYSTEM_READONLY; | 3870 ia_state |= STATE_SYSTEM_READONLY; |
| 3875 break; | 3871 break; |
| 3876 case ui::AX_ROLE_LIST_BOX: | 3872 case ui::AX_ROLE_LIST_BOX: |
| 3877 ia_role = ROLE_SYSTEM_LIST; | 3873 ia_role = ROLE_SYSTEM_LIST; |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3995 break; | 3991 break; |
| 3996 case ui::AX_ROLE_SCROLL_AREA: | 3992 case ui::AX_ROLE_SCROLL_AREA: |
| 3997 ia_role = ROLE_SYSTEM_CLIENT; | 3993 ia_role = ROLE_SYSTEM_CLIENT; |
| 3998 ia2_role = IA2_ROLE_SCROLL_PANE; | 3994 ia2_role = IA2_ROLE_SCROLL_PANE; |
| 3999 ia_state |= STATE_SYSTEM_READONLY; | 3995 ia_state |= STATE_SYSTEM_READONLY; |
| 4000 ia2_state &= ~(IA2_STATE_EDITABLE); | 3996 ia2_state &= ~(IA2_STATE_EDITABLE); |
| 4001 break; | 3997 break; |
| 4002 case ui::AX_ROLE_SCROLL_BAR: | 3998 case ui::AX_ROLE_SCROLL_BAR: |
| 4003 ia_role = ROLE_SYSTEM_SCROLLBAR; | 3999 ia_role = ROLE_SYSTEM_SCROLLBAR; |
| 4004 break; | 4000 break; |
| 4001 case ui::AX_ROLE_SEARCH: | |
| 4002 ia_role = ROLE_SYSTEM_GROUPING; | |
| 4003 ia2_role = IA2_ROLE_SECTION; | |
| 4004 break; | |
| 4005 case ui::AX_ROLE_SLIDER: | 4005 case ui::AX_ROLE_SLIDER: |
| 4006 ia_role = ROLE_SYSTEM_SLIDER; | 4006 ia_role = ROLE_SYSTEM_SLIDER; |
| 4007 break; | 4007 break; |
| 4008 case ui::AX_ROLE_SPIN_BUTTON: | 4008 case ui::AX_ROLE_SPIN_BUTTON: |
| 4009 ia_role = ROLE_SYSTEM_SPINBUTTON; | 4009 ia_role = ROLE_SYSTEM_SPINBUTTON; |
| 4010 break; | 4010 break; |
| 4011 case ui::AX_ROLE_SPIN_BUTTON_PART: | 4011 case ui::AX_ROLE_SPIN_BUTTON_PART: |
| 4012 ia_role = ROLE_SYSTEM_PUSHBUTTON; | 4012 ia_role = ROLE_SYSTEM_PUSHBUTTON; |
| 4013 break; | 4013 break; |
| 4014 case ui::AX_ROLE_ANNOTATION: | 4014 case ui::AX_ROLE_ANNOTATION: |
| 4015 case ui::AX_ROLE_LIST_MARKER: | 4015 case ui::AX_ROLE_LIST_MARKER: |
| 4016 case ui::AX_ROLE_STATIC_TEXT: | 4016 case ui::AX_ROLE_STATIC_TEXT: |
| 4017 ia_role = ROLE_SYSTEM_STATICTEXT; | 4017 ia_role = ROLE_SYSTEM_STATICTEXT; |
| 4018 break; | 4018 break; |
| 4019 case ui::AX_ROLE_STATUS: | 4019 case ui::AX_ROLE_STATUS: |
| 4020 ia_role = ROLE_SYSTEM_STATUSBAR; | 4020 ia_role = ROLE_SYSTEM_STATUSBAR; |
| 4021 break; | 4021 break; |
| 4022 case ui::AX_ROLE_SPLITTER: | 4022 case ui::AX_ROLE_SPLITTER: |
| 4023 ia_role = ROLE_SYSTEM_SEPARATOR; | 4023 ia_role = ROLE_SYSTEM_SEPARATOR; |
| 4024 break; | 4024 break; |
| 4025 case ui::AX_ROLE_SVG_ROOT: | 4025 case ui::AX_ROLE_SVG_ROOT: |
| 4026 ia_role = ROLE_SYSTEM_GRAPHIC; | 4026 ia_role = ROLE_SYSTEM_GRAPHIC; |
| 4027 break; | 4027 break; |
| 4028 case ui::AX_ROLE_SWITCH: | |
| 4029 role_name = L"switch"; | |
| 4030 ia2_role = IA2_ROLE_TOGGLE_BUTTON; | |
| 4031 break; | |
| 4028 case ui::AX_ROLE_TAB: | 4032 case ui::AX_ROLE_TAB: |
| 4029 ia_role = ROLE_SYSTEM_PAGETAB; | 4033 ia_role = ROLE_SYSTEM_PAGETAB; |
| 4030 break; | 4034 break; |
| 4031 case ui::AX_ROLE_TABLE: { | 4035 case ui::AX_ROLE_TABLE: { |
| 4032 base::string16 aria_role = GetString16Attribute( | 4036 base::string16 aria_role = GetString16Attribute( |
| 4033 ui::AX_ATTR_ROLE); | 4037 ui::AX_ATTR_ROLE); |
| 4034 if (aria_role == L"treegrid") { | 4038 if (aria_role == L"treegrid") { |
| 4035 ia_role = ROLE_SYSTEM_OUTLINE; | 4039 ia_role = ROLE_SYSTEM_OUTLINE; |
| 4036 } else { | 4040 } else { |
| 4037 ia_role = ROLE_SYSTEM_TABLE; | 4041 ia_role = ROLE_SYSTEM_TABLE; |
| 4038 } | 4042 } |
| 4039 break; | 4043 break; |
| 4040 } | 4044 } |
| 4041 case ui::AX_ROLE_TABLE_HEADER_CONTAINER: | 4045 case ui::AX_ROLE_TABLE_HEADER_CONTAINER: |
| 4042 ia_role = ROLE_SYSTEM_GROUPING; | 4046 ia_role = ROLE_SYSTEM_GROUPING; |
| 4043 ia2_role = IA2_ROLE_SECTION; | 4047 ia2_role = IA2_ROLE_SECTION; |
| 4044 ia_state |= STATE_SYSTEM_READONLY; | 4048 ia_state |= STATE_SYSTEM_READONLY; |
| 4045 break; | 4049 break; |
| 4046 case ui::AX_ROLE_TAB_LIST: | 4050 case ui::AX_ROLE_TAB_LIST: |
| 4047 ia_role = ROLE_SYSTEM_PAGETABLIST; | 4051 ia_role = ROLE_SYSTEM_PAGETABLIST; |
| 4048 break; | 4052 break; |
| 4049 case ui::AX_ROLE_TAB_PANEL: | 4053 case ui::AX_ROLE_TAB_PANEL: |
| 4050 ia_role = ROLE_SYSTEM_PROPERTYPAGE; | 4054 ia_role = ROLE_SYSTEM_PROPERTYPAGE; |
| 4051 break; | 4055 break; |
| 4052 case ui::AX_ROLE_TOGGLE_BUTTON: | 4056 case ui::AX_ROLE_TOGGLE_BUTTON: |
| 4053 ia_role = ROLE_SYSTEM_PUSHBUTTON; | 4057 ia_role = ROLE_SYSTEM_PUSHBUTTON; |
| 4054 ia2_role = IA2_ROLE_TOGGLE_BUTTON; | 4058 ia2_role = IA2_ROLE_TOGGLE_BUTTON; |
| 4055 break; | 4059 break; |
| 4056 case ui::AX_ROLE_TEXT_AREA: | 4060 case ui::AX_ROLE_TEXT_AREA: |
| 4061 case ui::AX_ROLE_SEARCH_BOX: | |
|
dmazzoni
2015/03/27 05:12:05
Maybe this should be a text field? I don't think i
shreeramk
2015/03/27 05:19:05
But it does support aria-multiline. And superclass
dmazzoni
2015/03/27 05:32:27
In AXNodeObject::determineAriaRoleAttribute, it ge
| |
| 4057 ia_role = ROLE_SYSTEM_TEXT; | 4062 ia_role = ROLE_SYSTEM_TEXT; |
| 4058 ia2_state |= IA2_STATE_MULTI_LINE; | 4063 ia2_state |= IA2_STATE_MULTI_LINE; |
| 4059 ia2_state |= IA2_STATE_EDITABLE; | 4064 ia2_state |= IA2_STATE_EDITABLE; |
| 4060 ia2_state |= IA2_STATE_SELECTABLE_TEXT; | 4065 ia2_state |= IA2_STATE_SELECTABLE_TEXT; |
| 4061 break; | 4066 break; |
| 4062 case ui::AX_ROLE_TEXT_FIELD: | 4067 case ui::AX_ROLE_TEXT_FIELD: |
| 4063 ia_role = ROLE_SYSTEM_TEXT; | 4068 ia_role = ROLE_SYSTEM_TEXT; |
| 4064 ia2_state |= IA2_STATE_SINGLE_LINE; | 4069 ia2_state |= IA2_STATE_SINGLE_LINE; |
| 4065 ia2_state |= IA2_STATE_EDITABLE; | 4070 ia2_state |= IA2_STATE_EDITABLE; |
| 4066 ia2_state |= IA2_STATE_SELECTABLE_TEXT; | 4071 ia2_state |= IA2_STATE_SELECTABLE_TEXT; |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4132 ia2_role = ia_role; | 4137 ia2_role = ia_role; |
| 4133 | 4138 |
| 4134 win_attributes_->ia_role = ia_role; | 4139 win_attributes_->ia_role = ia_role; |
| 4135 win_attributes_->ia_state = ia_state; | 4140 win_attributes_->ia_state = ia_state; |
| 4136 win_attributes_->role_name = role_name; | 4141 win_attributes_->role_name = role_name; |
| 4137 win_attributes_->ia2_role = ia2_role; | 4142 win_attributes_->ia2_role = ia2_role; |
| 4138 win_attributes_->ia2_state = ia2_state; | 4143 win_attributes_->ia2_state = ia2_state; |
| 4139 } | 4144 } |
| 4140 | 4145 |
| 4141 } // namespace content | 4146 } // namespace content |
| OLD | NEW |