Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: content/browser/accessibility/browser_accessibility_win.cc

Issue 1030333002: Chromium side Implementation of new roles added in ARIA 1.1 draft. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updating expectations Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698