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

Side by Side Diff: webkit/glue/webaccessibility.cc

Issue 2121004: Windows accessibility improvements: 1. All WebKit roles are now passed to the... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « webkit/glue/webaccessibility.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "webkit/glue/webaccessibility.h" 5 #include "webkit/glue/webaccessibility.h"
6 6
7 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityCache.h" 7 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityCache.h"
8 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityObject.h" 8 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityObject.h"
9 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityRole.h" 9 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityRole.h"
10 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" 10 #include "third_party/WebKit/WebKit/chromium/public/WebString.h"
11 11
12 using WebKit::WebAccessibilityCache; 12 using WebKit::WebAccessibilityCache;
13 using WebKit::WebAccessibilityRole; 13 using WebKit::WebAccessibilityRole;
14 using WebKit::WebAccessibilityObject; 14 using WebKit::WebAccessibilityObject;
15 15
16 namespace webkit_glue { 16 namespace webkit_glue {
17 17
18 // Provides a conversion between the WebKit::WebAccessibilityRole and a role 18 // Provides a conversion between the WebKit::WebAccessibilityRole and a role
19 // supported on the Browser side. Listed alphabetically by the 19 // supported on the Browser side. Listed alphabetically by the
20 // WebAccessibilityRole (except for default role). 20 // WebAccessibilityRole (except for default role).
21 WebAccessibility::Role ConvertRole(WebKit::WebAccessibilityRole role) { 21 WebAccessibility::Role ConvertRole(WebKit::WebAccessibilityRole role) {
22 switch (role) { 22 switch (role) {
23 case WebKit::WebAccessibilityRoleLandmarkApplication: 23 case WebKit::WebAccessibilityRoleAnnotation:
24 return WebAccessibility::ROLE_ANNOTATION;
25 case WebKit::WebAccessibilityRoleApplication:
24 return WebAccessibility::ROLE_APPLICATION; 26 return WebAccessibility::ROLE_APPLICATION;
27 case WebKit::WebAccessibilityRoleApplicationAlert:
28 return WebAccessibility::ROLE_ALERT;
29 case WebKit::WebAccessibilityRoleApplicationAlertDialog:
30 return WebAccessibility::ROLE_ALERT_DIALOG;
31 case WebKit::WebAccessibilityRoleApplicationDialog:
32 return WebAccessibility::ROLE_DIALOG;
33 case WebKit::WebAccessibilityRoleApplicationLog:
34 return WebAccessibility::ROLE_LOG;
35 case WebKit::WebAccessibilityRoleApplicationMarquee:
36 return WebAccessibility::ROLE_MARQUEE;
37 case WebKit::WebAccessibilityRoleApplicationStatus:
38 return WebAccessibility::ROLE_STATUS;
39 case WebKit::WebAccessibilityRoleApplicationTimer:
40 return WebAccessibility::ROLE_TIMER;
41 case WebKit::WebAccessibilityRoleBrowser:
42 return WebAccessibility::ROLE_BROWSER;
43 case WebKit::WebAccessibilityRoleBusyIndicator:
44 return WebAccessibility::ROLE_BUSY_INDICATOR;
45 case WebKit::WebAccessibilityRoleButton:
46 return WebAccessibility::ROLE_BUTTON;
25 case WebKit::WebAccessibilityRoleCell: 47 case WebKit::WebAccessibilityRoleCell:
26 return WebAccessibility::ROLE_CELL; 48 return WebAccessibility::ROLE_CELL;
27 case WebKit::WebAccessibilityRoleCheckBox: 49 case WebKit::WebAccessibilityRoleCheckBox:
28 return WebAccessibility::ROLE_CHECKBUTTON; 50 return WebAccessibility::ROLE_CHECKBOX;
51 case WebKit::WebAccessibilityRoleColorWell:
52 return WebAccessibility::ROLE_COLOR_WELL;
29 case WebKit::WebAccessibilityRoleColumn: 53 case WebKit::WebAccessibilityRoleColumn:
30 return WebAccessibility::ROLE_COLUMN; 54 return WebAccessibility::ROLE_COLUMN;
31 case WebKit::WebAccessibilityRoleColumnHeader: 55 case WebKit::WebAccessibilityRoleColumnHeader:
32 return WebAccessibility::ROLE_COLUMNHEADER; 56 return WebAccessibility::ROLE_COLUMN_HEADER;
57 case WebKit::WebAccessibilityRoleComboBox:
58 return WebAccessibility::ROLE_COMBO_BOX;
59 case WebKit::WebAccessibilityRoleDefinitionListDefinition:
60 return WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION;
61 case WebKit::WebAccessibilityRoleDefinitionListTerm:
62 return WebAccessibility::ROLE_DEFINITION_LIST_TERM;
63 case WebKit::WebAccessibilityRoleDirectory:
64 return WebAccessibility::ROLE_DIRECTORY;
65 case WebKit::WebAccessibilityRoleDisclosureTriangle:
66 return WebAccessibility::ROLE_DISCLOSURE_TRIANGLE;
67 case WebKit::WebAccessibilityRoleDocument:
68 return WebAccessibility::ROLE_DOCUMENT;
33 case WebKit::WebAccessibilityRoleDocumentArticle: 69 case WebKit::WebAccessibilityRoleDocumentArticle:
34 case WebKit::WebAccessibilityRoleWebArea: 70 return WebAccessibility::ROLE_ARTICLE;
35 return WebAccessibility::ROLE_DOCUMENT; 71 case WebKit::WebAccessibilityRoleDocumentMath:
72 return WebAccessibility::ROLE_MATH;
73 case WebKit::WebAccessibilityRoleDocumentNote:
74 return WebAccessibility::ROLE_NOTE;
75 case WebKit::WebAccessibilityRoleDocumentRegion:
76 return WebAccessibility::ROLE_REGION;
77 case WebKit::WebAccessibilityRoleDrawer:
78 return WebAccessibility::ROLE_DRAWER;
79 case WebKit::WebAccessibilityRoleEditableText:
80 return WebAccessibility::ROLE_EDITABLE_TEXT;
81 case WebKit::WebAccessibilityRoleGrid:
82 return WebAccessibility::ROLE_GRID;
83 case WebKit::WebAccessibilityRoleGroup:
84 return WebAccessibility::ROLE_GROUP;
85 case WebKit::WebAccessibilityRoleGrowArea:
86 return WebAccessibility::ROLE_GROW_AREA;
87 case WebKit::WebAccessibilityRoleHeading:
88 return WebAccessibility::ROLE_HEADING;
89 case WebKit::WebAccessibilityRoleHelpTag:
90 return WebAccessibility::ROLE_HELP_TAG;
91 case WebKit::WebAccessibilityRoleIgnored:
92 return WebAccessibility::ROLE_IGNORED;
93 case WebKit::WebAccessibilityRoleImage:
94 return WebAccessibility::ROLE_IMAGE;
36 case WebKit::WebAccessibilityRoleImageMap: 95 case WebKit::WebAccessibilityRoleImageMap:
37 case WebKit::WebAccessibilityRoleImage: 96 return WebAccessibility::ROLE_IMAGE_MAP;
38 return WebAccessibility::ROLE_GRAPHIC; 97 case WebKit::WebAccessibilityRoleImageMapLink:
39 case WebKit::WebAccessibilityRoleDocumentRegion: 98 return WebAccessibility::ROLE_IMAGE_MAP_LINK;
40 case WebKit::WebAccessibilityRoleRadioGroup: 99 case WebKit::WebAccessibilityRoleIncrementor:
41 case WebKit::WebAccessibilityRoleGroup: 100 return WebAccessibility::ROLE_INCREMENTOR;
42 return WebAccessibility::ROLE_GROUPING; 101 case WebKit::WebAccessibilityRoleLandmarkApplication:
102 return WebAccessibility::ROLE_LANDMARK_APPLICATION;
103 case WebKit::WebAccessibilityRoleLandmarkBanner:
104 return WebAccessibility::ROLE_LANDMARK_BANNER;
105 case WebKit::WebAccessibilityRoleLandmarkComplementary:
106 return WebAccessibility::ROLE_LANDMARK_COMPLEMENTARY;
107 case WebKit::WebAccessibilityRoleLandmarkContentInfo:
108 return WebAccessibility::ROLE_LANDMARK_CONTENTINFO;
109 case WebKit::WebAccessibilityRoleLandmarkMain:
110 return WebAccessibility::ROLE_LANDMARK_MAIN;
111 case WebKit::WebAccessibilityRoleLandmarkNavigation:
112 return WebAccessibility::ROLE_LANDMARK_NAVIGATION;
113 case WebKit::WebAccessibilityRoleLandmarkSearch:
114 return WebAccessibility::ROLE_LANDMARK_SEARCH;
43 case WebKit::WebAccessibilityRoleLink: 115 case WebKit::WebAccessibilityRoleLink:
44 case WebKit::WebAccessibilityRoleWebCoreLink:
45 return WebAccessibility::ROLE_LINK; 116 return WebAccessibility::ROLE_LINK;
46 case WebKit::WebAccessibilityRoleList: 117 case WebKit::WebAccessibilityRoleList:
47 return WebAccessibility::ROLE_LIST; 118 return WebAccessibility::ROLE_LIST;
48 case WebKit::WebAccessibilityRoleListBox: 119 case WebKit::WebAccessibilityRoleListBox:
49 return WebAccessibility::ROLE_LISTBOX; 120 return WebAccessibility::ROLE_LISTBOX;
50 case WebKit::WebAccessibilityRoleListBoxOption: 121 case WebKit::WebAccessibilityRoleListBoxOption:
51 return WebAccessibility::ROLE_LISTITEM; 122 return WebAccessibility::ROLE_LISTBOX_OPTION;
123 case WebKit::WebAccessibilityRoleListItem:
124 return WebAccessibility::ROLE_LIST_ITEM;
125 case WebKit::WebAccessibilityRoleListMarker:
126 return WebAccessibility::ROLE_LIST_MARKER;
127 case WebKit::WebAccessibilityRoleMatte:
128 return WebAccessibility::ROLE_MATTE;
129 case WebKit::WebAccessibilityRoleMenu:
130 return WebAccessibility::ROLE_MENU;
52 case WebKit::WebAccessibilityRoleMenuBar: 131 case WebKit::WebAccessibilityRoleMenuBar:
53 return WebAccessibility::ROLE_MENUBAR; 132 return WebAccessibility::ROLE_MENU_BAR;
54 case WebKit::WebAccessibilityRoleMenuButton: 133 case WebKit::WebAccessibilityRoleMenuButton:
134 return WebAccessibility::ROLE_MENU_BUTTON;
55 case WebKit::WebAccessibilityRoleMenuItem: 135 case WebKit::WebAccessibilityRoleMenuItem:
56 return WebAccessibility::ROLE_MENUITEM; 136 return WebAccessibility::ROLE_MENU_ITEM;
57 case WebKit::WebAccessibilityRoleMenu: 137 case WebKit::WebAccessibilityRoleMenuListOption:
58 return WebAccessibility::ROLE_MENUPOPUP; 138 return WebAccessibility::ROLE_MENU_LIST_OPTION;
139 case WebKit::WebAccessibilityRoleMenuListPopup:
140 return WebAccessibility::ROLE_MENU_LIST_POPUP;
59 case WebKit::WebAccessibilityRoleOutline: 141 case WebKit::WebAccessibilityRoleOutline:
60 return WebAccessibility::ROLE_OUTLINE; 142 return WebAccessibility::ROLE_OUTLINE;
61 case WebKit::WebAccessibilityRoleTabGroup: 143 case WebKit::WebAccessibilityRolePopUpButton:
62 return WebAccessibility::ROLE_PAGETABLIST; 144 return WebAccessibility::ROLE_POPUP_BUTTON;
63 case WebKit::WebAccessibilityRoleProgressIndicator: 145 case WebKit::WebAccessibilityRoleProgressIndicator:
64 return WebAccessibility::ROLE_PROGRESSBAR; 146 return WebAccessibility::ROLE_PROGRESS_INDICATOR;
65 case WebKit::WebAccessibilityRoleButton:
66 return WebAccessibility::ROLE_PUSHBUTTON;
67 case WebKit::WebAccessibilityRoleRadioButton: 147 case WebKit::WebAccessibilityRoleRadioButton:
68 return WebAccessibility::ROLE_RADIOBUTTON; 148 return WebAccessibility::ROLE_RADIO_BUTTON;
149 case WebKit::WebAccessibilityRoleRadioGroup:
150 return WebAccessibility::ROLE_RADIO_GROUP;
69 case WebKit::WebAccessibilityRoleRow: 151 case WebKit::WebAccessibilityRoleRow:
70 return WebAccessibility::ROLE_ROW; 152 return WebAccessibility::ROLE_ROW;
71 case WebKit::WebAccessibilityRoleRowHeader: 153 case WebKit::WebAccessibilityRoleRowHeader:
72 return WebAccessibility::ROLE_ROWHEADER; 154 return WebAccessibility::ROLE_ROW_HEADER;
73 case WebKit::WebAccessibilityRoleSplitter: 155 case WebKit::WebAccessibilityRoleRuler:
74 return WebAccessibility::ROLE_SEPARATOR; 156 return WebAccessibility::ROLE_RULER;
157 case WebKit::WebAccessibilityRoleRulerMarker:
158 return WebAccessibility::ROLE_RULER_MARKER;
159 case WebKit::WebAccessibilityRoleScrollArea:
160 return WebAccessibility::ROLE_SCROLLAREA;
161 case WebKit::WebAccessibilityRoleScrollBar:
162 return WebAccessibility::ROLE_SCROLLBAR;
163 case WebKit::WebAccessibilityRoleSheet:
164 return WebAccessibility::ROLE_SHEET;
75 case WebKit::WebAccessibilityRoleSlider: 165 case WebKit::WebAccessibilityRoleSlider:
76 return WebAccessibility::ROLE_SLIDER; 166 return WebAccessibility::ROLE_SLIDER;
167 case WebKit::WebAccessibilityRoleSliderThumb:
168 return WebAccessibility::ROLE_SLIDER_THUMB;
169 case WebKit::WebAccessibilityRoleSplitGroup:
170 return WebAccessibility::ROLE_SPLIT_GROUP;
171 case WebKit::WebAccessibilityRoleSplitter:
172 return WebAccessibility::ROLE_SPLITTER;
77 case WebKit::WebAccessibilityRoleStaticText: 173 case WebKit::WebAccessibilityRoleStaticText:
78 return WebAccessibility::ROLE_STATICTEXT; 174 return WebAccessibility::ROLE_STATIC_TEXT;
79 case WebKit::WebAccessibilityRoleApplicationStatus: 175 case WebKit::WebAccessibilityRoleSystemWide:
80 return WebAccessibility::ROLE_STATUSBAR; 176 return WebAccessibility::ROLE_SYSTEM_WIDE;
177 case WebKit::WebAccessibilityRoleTab:
178 return WebAccessibility::ROLE_TAB;
179 case WebKit::WebAccessibilityRoleTabGroup:
180 return WebAccessibility::ROLE_TAB_GROUP;
181 case WebKit::WebAccessibilityRoleTabList:
182 return WebAccessibility::ROLE_TAB_LIST;
183 case WebKit::WebAccessibilityRoleTabPanel:
184 return WebAccessibility::ROLE_TAB_PANEL;
81 case WebKit::WebAccessibilityRoleTable: 185 case WebKit::WebAccessibilityRoleTable:
82 return WebAccessibility::ROLE_TABLE; 186 return WebAccessibility::ROLE_TABLE;
83 case WebKit::WebAccessibilityRoleListMarker: 187 case WebKit::WebAccessibilityRoleTableHeaderContainer:
188 return WebAccessibility::ROLE_TABLE_HEADER_CONTAINER;
189 case WebKit::WebAccessibilityRoleTextArea:
190 return WebAccessibility::ROLE_TEXTAREA;
84 case WebKit::WebAccessibilityRoleTextField: 191 case WebKit::WebAccessibilityRoleTextField:
85 case WebKit::WebAccessibilityRoleTextArea: 192 return WebAccessibility::ROLE_TEXT_FIELD;
86 return WebAccessibility::ROLE_TEXT;
87 case WebKit::WebAccessibilityRoleToolbar: 193 case WebKit::WebAccessibilityRoleToolbar:
88 return WebAccessibility::ROLE_TOOLBAR; 194 return WebAccessibility::ROLE_TOOLBAR;
195 case WebKit::WebAccessibilityRoleTreeGrid:
196 return WebAccessibility::ROLE_TREE_GRID;
197 case WebKit::WebAccessibilityRoleTreeItemRole:
198 return WebAccessibility::ROLE_TREE_ITEM;
199 case WebKit::WebAccessibilityRoleTreeRole:
200 return WebAccessibility::ROLE_TREE;
89 case WebKit::WebAccessibilityRoleUserInterfaceTooltip: 201 case WebKit::WebAccessibilityRoleUserInterfaceTooltip:
90 return WebAccessibility::ROLE_TOOLTIP; 202 return WebAccessibility::ROLE_TOOLTIP;
91 case WebKit::WebAccessibilityRoleDocument: 203 case WebKit::WebAccessibilityRoleValueIndicator:
92 case WebKit::WebAccessibilityRoleUnknown: 204 return WebAccessibility::ROLE_VALUE_INDICATOR;
205 case WebKit::WebAccessibilityRoleWebArea:
206 return WebAccessibility::ROLE_WEB_AREA;
207 case WebKit::WebAccessibilityRoleWebCoreLink:
208 return WebAccessibility::ROLE_WEBCORE_LINK;
209 case WebKit::WebAccessibilityRoleWindow:
210 return WebAccessibility::ROLE_WINDOW;
211
93 default: 212 default:
94 // This is the default role. 213 return WebAccessibility::ROLE_UNKNOWN;
95 return WebAccessibility::ROLE_CLIENT;
96 } 214 }
97 } 215 }
98 216
99 uint32 ConvertState(const WebAccessibilityObject& o) { 217 uint32 ConvertState(const WebAccessibilityObject& o) {
100 uint32 state = 0; 218 uint32 state = 0;
101 if (o.isChecked()) 219 if (o.isChecked())
102 state |= (1 << WebAccessibility::STATE_CHECKED); 220 state |= (1 << WebAccessibility::STATE_CHECKED);
103 221
104 if (o.canSetFocusAttribute()) 222 if (o.canSetFocusAttribute())
105 state |= (1 << WebAccessibility::STATE_FOCUSABLE); 223 state |= (1 << WebAccessibility::STATE_FOCUSABLE);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 266
149 WebAccessibility::WebAccessibility(const WebKit::WebAccessibilityObject& src, 267 WebAccessibility::WebAccessibility(const WebKit::WebAccessibilityObject& src,
150 WebKit::WebAccessibilityCache* cache) { 268 WebKit::WebAccessibilityCache* cache) {
151 Init(src, cache); 269 Init(src, cache);
152 } 270 }
153 271
154 void WebAccessibility::Init(const WebKit::WebAccessibilityObject& src, 272 void WebAccessibility::Init(const WebKit::WebAccessibilityObject& src,
155 WebKit::WebAccessibilityCache* cache) { 273 WebKit::WebAccessibilityCache* cache) {
156 name = src.title(); 274 name = src.title();
157 value = src.stringValue(); 275 value = src.stringValue();
158 action = src.actionVerb();
159 description = src.accessibilityDescription();
160 help = src.helpText();
161 shortcut = src.keyboardShortcut();
162 role = ConvertRole(src.roleValue()); 276 role = ConvertRole(src.roleValue());
163 state = ConvertState(src); 277 state = ConvertState(src);
164 location = src.boundingBoxRect(); 278 location = src.boundingBoxRect();
165 279
280 if (src.actionVerb().length())
281 attributes[ATTR_ACTION] = src.actionVerb();
282 if (src.accessibilityDescription().length())
283 attributes[ATTR_DESCRIPTION] = src.accessibilityDescription();
284 if (src.helpText().length())
285 attributes[ATTR_HELP] = src.helpText();
286 if (src.keyboardShortcut().length())
287 attributes[ATTR_SHORTCUT] = src.keyboardShortcut();
288
166 // Add the source object to the cache and store its id. 289 // Add the source object to the cache and store its id.
167 id = cache->addOrGetId(src); 290 id = cache->addOrGetId(src);
168 291
169 // Recursively create children. 292 // Recursively create children.
170 int child_count = src.childCount(); 293 int child_count = src.childCount();
171 children.resize(child_count); 294 children.resize(child_count);
172 for (int i = 0; i < child_count; i++) { 295 for (int i = 0; i < child_count; i++) {
173 children[i].Init(src.childAt(i), cache); 296 children[i].Init(src.childAt(i), cache);
174 } 297 }
175 } 298 }
176 299
177 } // namespace webkit_glue 300 } // namespace webkit_glue
OLDNEW
« no previous file with comments | « webkit/glue/webaccessibility.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698