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

Side by Side Diff: webkit/tools/test_shell/accessibility_ui_element.cc

Issue 343060: Remove WebCore dependencies from accessibility_ui_element. (Closed)
Patch Set: Actually added WebAccessibilityRole. Created 11 years, 1 month 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
« no previous file with comments | « webkit/api/src/WebAccessibilityObject.cpp ('k') | webkit/webkit.gyp » ('j') | 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "config.h"
6
7 #include "AccessibilityObject.h"
8
9 #undef LOG
10
11 #include "webkit/api/public/WebAccessibilityObject.h" 5 #include "webkit/api/public/WebAccessibilityObject.h"
6 #include "webkit/api/public/WebCString.h"
7 #include "webkit/api/public/WebString.h"
12 #include "webkit/glue/glue_util.h" 8 #include "webkit/glue/glue_util.h"
13 #include "webkit/tools/test_shell/accessibility_ui_element.h" 9 #include "webkit/tools/test_shell/accessibility_ui_element.h"
14 10
15 using namespace WebCore; 11 using WebKit::WebString;
16 12 using WebKit::WebCString;
darin (slow to review) 2009/10/30 19:37:58 sort
17 using WebKit::WebAccessibilityObject; 13 using WebKit::WebAccessibilityObject;
18 14 using WebKit::WebAccessibilityRole;
19 using webkit_glue::StringToStdString;
20 using webkit_glue::AccessibilityObjectToWebAccessibilityObject;
21 using webkit_glue::WebAccessibilityObjectToAccessibilityObject;
22 15
23 namespace { 16 namespace {
24 17
25 static PassRefPtr<AccessibilityObject> AXObject(
26 const WebAccessibilityObject& object) {
27 RefPtr<AccessibilityObject> o =
28 WebAccessibilityObjectToAccessibilityObject(object);
29 // Always ask to update the render tree before querying accessibility object.
30 o->updateBackingStore();
31 return o;
32 }
33
34 // Map role value to string, matching Safari/Mac platform implementation to 18 // Map role value to string, matching Safari/Mac platform implementation to
35 // avoid rebaselining layout tests. 19 // avoid rebaselining layout tests.
36 static std::string RoleToString(AccessibilityRole role) { 20 static std::string RoleToString(WebAccessibilityRole role) {
37 std::string result = "AXRole: AX"; 21 std::string result = "AXRole: AX";
38 switch (role) { 22 switch (role) {
39 case ButtonRole: 23 case WebKit::WebAccessibilityRoleButton:
40 return result.append("Button"); 24 return result.append("Button");
41 case RadioButtonRole: 25 case WebKit::WebAccessibilityRoleRadioButton:
42 return result.append("RadioButton"); 26 return result.append("RadioButton");
43 case CheckBoxRole: 27 case WebKit::WebAccessibilityRoleCheckBox:
44 return result.append("CheckBox"); 28 return result.append("CheckBox");
45 case SliderRole: 29 case WebKit::WebAccessibilityRoleSlider:
46 return result.append("Slider"); 30 return result.append("Slider");
47 case TabGroupRole: 31 case WebKit::WebAccessibilityRoleTabGroup:
48 return result.append("TabGroup"); 32 return result.append("TabGroup");
49 case TextFieldRole: 33 case WebKit::WebAccessibilityRoleTextField:
50 return result.append("TextField"); 34 return result.append("TextField");
51 case StaticTextRole: 35 case WebKit::WebAccessibilityRoleStaticText:
52 return result.append("StaticText"); 36 return result.append("StaticText");
53 case TextAreaRole: 37 case WebKit::WebAccessibilityRoleTextArea:
54 return result.append("TextArea"); 38 return result.append("TextArea");
55 case ScrollAreaRole: 39 case WebKit::WebAccessibilityRoleScrollArea:
56 return result.append("ScrollArea"); 40 return result.append("ScrollArea");
57 case PopUpButtonRole: 41 case WebKit::WebAccessibilityRolePopUpButton:
58 return result.append("PopUpButton"); 42 return result.append("PopUpButton");
59 case MenuButtonRole: 43 case WebKit::WebAccessibilityRoleMenuButton:
60 return result.append("MenuButton"); 44 return result.append("MenuButton");
61 case TableRole: 45 case WebKit::WebAccessibilityRoleTable:
62 return result.append("Table"); 46 return result.append("Table");
63 case ApplicationRole: 47 case WebKit::WebAccessibilityRoleApplication:
64 return result.append("Application"); 48 return result.append("Application");
65 case GroupRole: 49 case WebKit::WebAccessibilityRoleGroup:
66 return result.append("Group"); 50 return result.append("Group");
67 case RadioGroupRole: 51 case WebKit::WebAccessibilityRoleRadioGroup:
68 return result.append("RadioGroup"); 52 return result.append("RadioGroup");
69 case ListRole: 53 case WebKit::WebAccessibilityRoleList:
70 return result.append("List"); 54 return result.append("List");
71 case ScrollBarRole: 55 case WebKit::WebAccessibilityRoleScrollBar:
72 return result.append("ScrollBar"); 56 return result.append("ScrollBar");
73 case ValueIndicatorRole: 57 case WebKit::WebAccessibilityRoleValueIndicator:
74 return result.append("ValueIndicator"); 58 return result.append("ValueIndicator");
75 case ImageRole: 59 case WebKit::WebAccessibilityRoleImage:
76 return result.append("Image"); 60 return result.append("Image");
77 case MenuBarRole: 61 case WebKit::WebAccessibilityRoleMenuBar:
78 return result.append("MenuBar"); 62 return result.append("MenuBar");
79 case MenuRole: 63 case WebKit::WebAccessibilityRoleMenu:
80 return result.append("Menu"); 64 return result.append("Menu");
81 case MenuItemRole: 65 case WebKit::WebAccessibilityRoleMenuItem:
82 return result.append("MenuItem"); 66 return result.append("MenuItem");
83 case ColumnRole: 67 case WebKit::WebAccessibilityRoleColumn:
84 return result.append("Column"); 68 return result.append("Column");
85 case RowRole: 69 case WebKit::WebAccessibilityRoleRow:
86 return result.append("Row"); 70 return result.append("Row");
87 case ToolbarRole: 71 case WebKit::WebAccessibilityRoleToolbar:
88 return result.append("Toolbar"); 72 return result.append("Toolbar");
89 case BusyIndicatorRole: 73 case WebKit::WebAccessibilityRoleBusyIndicator:
90 return result.append("BusyIndicator"); 74 return result.append("BusyIndicator");
91 case ProgressIndicatorRole: 75 case WebKit::WebAccessibilityRoleProgressIndicator:
92 return result.append("ProgressIndicator"); 76 return result.append("ProgressIndicator");
93 case WindowRole: 77 case WebKit::WebAccessibilityRoleWindow:
94 return result.append("Window"); 78 return result.append("Window");
95 case DrawerRole: 79 case WebKit::WebAccessibilityRoleDrawer:
96 return result.append("Drawer"); 80 return result.append("Drawer");
97 case SystemWideRole: 81 case WebKit::WebAccessibilityRoleSystemWide:
98 return result.append("SystemWide"); 82 return result.append("SystemWide");
99 case OutlineRole: 83 case WebKit::WebAccessibilityRoleOutline:
100 return result.append("Outline"); 84 return result.append("Outline");
101 case IncrementorRole: 85 case WebKit::WebAccessibilityRoleIncrementor:
102 return result.append("Incrementor"); 86 return result.append("Incrementor");
103 case BrowserRole: 87 case WebKit::WebAccessibilityRoleBrowser:
104 return result.append("Browser"); 88 return result.append("Browser");
105 case ComboBoxRole: 89 case WebKit::WebAccessibilityRoleComboBox:
106 return result.append("ComboBox"); 90 return result.append("ComboBox");
107 case SplitGroupRole: 91 case WebKit::WebAccessibilityRoleSplitGroup:
108 return result.append("SplitGroup"); 92 return result.append("SplitGroup");
109 case SplitterRole: 93 case WebKit::WebAccessibilityRoleSplitter:
110 return result.append("Splitter"); 94 return result.append("Splitter");
111 case ColorWellRole: 95 case WebKit::WebAccessibilityRoleColorWell:
112 return result.append("ColorWell"); 96 return result.append("ColorWell");
113 case GrowAreaRole: 97 case WebKit::WebAccessibilityRoleGrowArea:
114 return result.append("GrowArea"); 98 return result.append("GrowArea");
115 case SheetRole: 99 case WebKit::WebAccessibilityRoleSheet:
116 return result.append("Sheet"); 100 return result.append("Sheet");
117 case HelpTagRole: 101 case WebKit::WebAccessibilityRoleHelpTag:
118 return result.append("HelpTag"); 102 return result.append("HelpTag");
119 case MatteRole: 103 case WebKit::WebAccessibilityRoleMatte:
120 return result.append("Matte"); 104 return result.append("Matte");
121 case RulerRole: 105 case WebKit::WebAccessibilityRoleRuler:
122 return result.append("Ruler"); 106 return result.append("Ruler");
123 case RulerMarkerRole: 107 case WebKit::WebAccessibilityRoleRulerMarker:
124 return result.append("RulerMarker"); 108 return result.append("RulerMarker");
125 case LinkRole: 109 case WebKit::WebAccessibilityRoleLink:
126 return result.append("Link"); 110 return result.append("Link");
127 case DisclosureTriangleRole: 111 case WebKit::WebAccessibilityRoleDisclosureTriangle:
128 return result.append("DisclosureTriangle"); 112 return result.append("DisclosureTriangle");
129 case GridRole: 113 case WebKit::WebAccessibilityRoleGrid:
130 return result.append("Grid"); 114 return result.append("Grid");
131 case CellRole: 115 case WebKit::WebAccessibilityRoleCell:
132 return result.append("Cell"); 116 return result.append("Cell");
133 case ColumnHeaderRole: 117 case WebKit::WebAccessibilityRoleColumnHeader:
134 return result.append("ColumnHeader"); 118 return result.append("ColumnHeader");
135 case RowHeaderRole: 119 case WebKit::WebAccessibilityRoleRowHeader:
136 return result.append("RowHeader"); 120 return result.append("RowHeader");
137 case WebCoreLinkRole: 121 case WebKit::WebAccessibilityRoleWebCoreLink:
138 // Maps to Link role. 122 // Maps to Link role.
139 return result.append("Link"); 123 return result.append("Link");
140 case ImageMapLinkRole: 124 case WebKit::WebAccessibilityRoleImageMapLink:
141 return result.append("ImageMapLink"); 125 return result.append("ImageMapLink");
142 case ImageMapRole: 126 case WebKit::WebAccessibilityRoleImageMap:
143 return result.append("ImageMap"); 127 return result.append("ImageMap");
144 case ListMarkerRole: 128 case WebKit::WebAccessibilityRoleListMarker:
145 return result.append("ListMarker"); 129 return result.append("ListMarker");
146 case WebAreaRole: 130 case WebKit::WebAccessibilityRoleWebArea:
147 return result.append("WebArea"); 131 return result.append("WebArea");
148 case HeadingRole: 132 case WebKit::WebAccessibilityRoleHeading:
149 return result.append("Heading"); 133 return result.append("Heading");
150 case ListBoxRole: 134 case WebKit::WebAccessibilityRoleListBox:
151 return result.append("ListBox"); 135 return result.append("ListBox");
152 case ListBoxOptionRole: 136 case WebKit::WebAccessibilityRoleListBoxOption:
153 return result.append("ListBoxOption"); 137 return result.append("ListBoxOption");
154 case TableHeaderContainerRole: 138 case WebKit::WebAccessibilityRoleTableHeaderContainer:
155 return result.append("TableHeaderContainer"); 139 return result.append("TableHeaderContainer");
156 case DefinitionListTermRole: 140 case WebKit::WebAccessibilityRoleDefinitionListTerm:
157 return result.append("DefinitionListTerm"); 141 return result.append("DefinitionListTerm");
158 case DefinitionListDefinitionRole: 142 case WebKit::WebAccessibilityRoleDefinitionListDefinition:
159 return result.append("DefinitionListDefinition"); 143 return result.append("DefinitionListDefinition");
160 case AnnotationRole: 144 case WebKit::WebAccessibilityRoleAnnotation:
161 return result.append("Annotation"); 145 return result.append("Annotation");
162 case SliderThumbRole: 146 case WebKit::WebAccessibilityRoleSliderThumb:
163 return result.append("SliderThumb"); 147 return result.append("SliderThumb");
164 case LandmarkApplicationRole: 148 case WebKit::WebAccessibilityRoleLandmarkApplication:
165 return result.append("LandmarkApplication"); 149 return result.append("LandmarkApplication");
166 case LandmarkBannerRole: 150 case WebKit::WebAccessibilityRoleLandmarkBanner:
167 return result.append("LandmarkBanner"); 151 return result.append("LandmarkBanner");
168 case LandmarkComplementaryRole: 152 case WebKit::WebAccessibilityRoleLandmarkComplementary:
169 return result.append("LandmarkComplementary"); 153 return result.append("LandmarkComplementary");
170 case LandmarkContentInfoRole: 154 case WebKit::WebAccessibilityRoleLandmarkContentInfo:
171 return result.append("LandmarkContentInfo"); 155 return result.append("LandmarkContentInfo");
172 case LandmarkMainRole: 156 case WebKit::WebAccessibilityRoleLandmarkMain:
173 return result.append("LandmarkMain"); 157 return result.append("LandmarkMain");
174 case LandmarkNavigationRole: 158 case WebKit::WebAccessibilityRoleLandmarkNavigation:
175 return result.append("LandmarkNavigation"); 159 return result.append("LandmarkNavigation");
176 case LandmarkSearchRole: 160 case WebKit::WebAccessibilityRoleLandmarkSearch:
177 return result.append("LandmarkSearch"); 161 return result.append("LandmarkSearch");
178 case ApplicationLogRole: 162 case WebKit::WebAccessibilityRoleApplicationLog:
179 return result.append("ApplicationLog"); 163 return result.append("ApplicationLog");
180 case ApplicationMarqueeRole: 164 case WebKit::WebAccessibilityRoleApplicationMarquee:
181 return result.append("ApplicationMarquee"); 165 return result.append("ApplicationMarquee");
182 case ApplicationStatusRole: 166 case WebKit::WebAccessibilityRoleApplicationStatus:
183 return result.append("ApplicationStatus"); 167 return result.append("ApplicationStatus");
184 case ApplicationTimerRole: 168 case WebKit::WebAccessibilityRoleApplicationTimer:
185 return result.append("ApplicationTimer"); 169 return result.append("ApplicationTimer");
186 case DocumentRole: 170 case WebKit::WebAccessibilityRoleDocument:
187 return result.append("Document"); 171 return result.append("Document");
188 case DocumentArticleRole: 172 case WebKit::WebAccessibilityRoleDocumentArticle:
189 return result.append("DocumentArticle"); 173 return result.append("DocumentArticle");
190 case DocumentNoteRole: 174 case WebKit::WebAccessibilityRoleDocumentNote:
191 return result.append("DocumentNote"); 175 return result.append("DocumentNote");
192 case DocumentRegionRole: 176 case WebKit::WebAccessibilityRoleDocumentRegion:
193 return result.append("DocumentRegion"); 177 return result.append("DocumentRegion");
194 case UserInterfaceTooltipRole: 178 case WebKit::WebAccessibilityRoleUserInterfaceTooltip:
195 return result.append("UserInterfaceTooltip"); 179 return result.append("UserInterfaceTooltip");
196 default: 180 default:
197 // Also matches UnknownRole. 181 // Also matches WebAccessibilityRoleUnknown.
198 return result.append("Unknown"); 182 return result.append("Unknown");
199 } 183 }
200 } 184 }
201 185
202 } // namespace 186 } // namespace
203 187
204 AccessibilityUIElement::AccessibilityUIElement( 188 AccessibilityUIElement::AccessibilityUIElement(
205 const WebKit::WebAccessibilityObject& object, 189 const WebKit::WebAccessibilityObject& object,
206 Factory* factory) 190 Factory* factory)
207 : accessibility_object_(object), 191 : accessibility_object_(object),
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 BindProperty("selectedTextRange", &selected_text_range); 258 BindProperty("selectedTextRange", &selected_text_range);
275 BindProperty("isEnabled", &AccessibilityUIElement::IsEnabledGetterCallback); 259 BindProperty("isEnabled", &AccessibilityUIElement::IsEnabledGetterCallback);
276 BindProperty("isRequired", &is_required_); 260 BindProperty("isRequired", &is_required_);
277 BindProperty("valueDescription", &value_description_); 261 BindProperty("valueDescription", &value_description_);
278 262
279 BindFallbackMethod(&AccessibilityUIElement::FallbackCallback); 263 BindFallbackMethod(&AccessibilityUIElement::FallbackCallback);
280 } 264 }
281 265
282 AccessibilityUIElement* AccessibilityUIElement::GetChildAtIndex( 266 AccessibilityUIElement* AccessibilityUIElement::GetChildAtIndex(
283 unsigned index) { 267 unsigned index) {
284 RefPtr<AccessibilityObject> object = AXObject(accessibility_object()); 268 return factory_->Create(accessibility_object().childAt(index));
285 if (object->children().size() <= index)
286 return NULL;
287
288 WebAccessibilityObject child =
289 AccessibilityObjectToWebAccessibilityObject(object->children()[index]);
290 return factory_->Create(child);
291 } 269 }
292 270
293 std::string AccessibilityUIElement::GetTitle() { 271 std::string AccessibilityUIElement::GetTitle() {
294 std::string title = StringToStdString(AXObject( 272 std::string title = accessibility_object().title().utf8();
295 accessibility_object())->title());
296 return title.insert(0, "AXTitle: "); 273 return title.insert(0, "AXTitle: ");
297 } 274 }
298 275
299 std::string AccessibilityUIElement::GetDescription() { 276 std::string AccessibilityUIElement::GetDescription() {
300 std::string description = StringToStdString(AXObject( 277 std::string description =
301 accessibility_object())->accessibilityDescription()); 278 accessibility_object().accessibilityDescription().utf8();
302 return description.insert(0, "AXDescription: "); 279 return description.insert(0, "AXDescription: ");
303 } 280 }
304 281
305 void AccessibilityUIElement::AllAttributesCallback( 282 void AccessibilityUIElement::AllAttributesCallback(
306 const CppArgumentList& args, CppVariant* result) { 283 const CppArgumentList& args, CppVariant* result) {
307 // TODO(dglazkov): Concatenate all attributes of the AccessibilityObject. 284 // TODO(dglazkov): Concatenate all attributes of the AccessibilityObject.
308 std::string attributes(GetTitle()); 285 std::string attributes(GetTitle());
309 result->Set(attributes); 286 result->Set(attributes);
310 } 287 }
311 288
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 436
460 void AccessibilityUIElement::FallbackCallback(const CppArgumentList &args, 437 void AccessibilityUIElement::FallbackCallback(const CppArgumentList &args,
461 CppVariant *result) { 438 CppVariant *result) {
462 // TODO(dglazkov): Implement this. 439 // TODO(dglazkov): Implement this.
463 result->SetNull(); 440 result->SetNull();
464 } 441 }
465 442
466 void AccessibilityUIElement::ChildrenCountGetterCallback(CppVariant* result) { 443 void AccessibilityUIElement::ChildrenCountGetterCallback(CppVariant* result) {
467 int count = 1; // Root object always has only one child, the WebView. 444 int count = 1; // Root object always has only one child, the WebView.
468 if (!IsRoot()) 445 if (!IsRoot())
469 count = AXObject(accessibility_object())->children().size(); 446 count = accessibility_object().childCount();
470 result->Set(count); 447 result->Set(count);
471 } 448 }
472 449
473 void AccessibilityUIElement::DescriptionGetterCallback(CppVariant *result) { 450 void AccessibilityUIElement::DescriptionGetterCallback(CppVariant *result) {
474 result->Set(GetDescription()); 451 result->Set(GetDescription());
475 } 452 }
476 453
477 void AccessibilityUIElement::IsEnabledGetterCallback(CppVariant* result) { 454 void AccessibilityUIElement::IsEnabledGetterCallback(CppVariant* result) {
478 result->Set(AXObject(accessibility_object())->isEnabled()); 455 result->Set(accessibility_object().isEnabled());
479 } 456 }
480 457
481 void AccessibilityUIElement::RoleGetterCallback(CppVariant* result) { 458 void AccessibilityUIElement::RoleGetterCallback(CppVariant* result) {
482 result->Set(RoleToString(AXObject(accessibility_object())->roleValue())); 459 result->Set(RoleToString(accessibility_object().roleValue()));
483 } 460 }
484 461
485 void AccessibilityUIElement::TitleGetterCallback(CppVariant* result) { 462 void AccessibilityUIElement::TitleGetterCallback(CppVariant* result) {
486 result->Set(GetTitle()); 463 result->Set(GetTitle());
487 } 464 }
488 465
489 466
490 RootAccessibilityUIElement::RootAccessibilityUIElement( 467 RootAccessibilityUIElement::RootAccessibilityUIElement(
491 const WebKit::WebAccessibilityObject &object, 468 const WebKit::WebAccessibilityObject &object,
492 Factory *factory) : AccessibilityUIElement(object, factory) { } 469 Factory *factory) : AccessibilityUIElement(object, factory) { }
(...skipping 12 matching lines...) Expand all
505 } 482 }
506 483
507 void AccessibilityUIElementList::Clear() { 484 void AccessibilityUIElementList::Clear() {
508 for (ElementList::iterator i = elements_.begin(); i != elements_.end(); ++i) 485 for (ElementList::iterator i = elements_.begin(); i != elements_.end(); ++i)
509 delete (*i); 486 delete (*i);
510 elements_.clear(); 487 elements_.clear();
511 } 488 }
512 489
513 AccessibilityUIElement* AccessibilityUIElementList::Create( 490 AccessibilityUIElement* AccessibilityUIElementList::Create(
514 const WebAccessibilityObject& object) { 491 const WebAccessibilityObject& object) {
492 if (object.isNull())
493 return NULL;
494
515 AccessibilityUIElement* element = new AccessibilityUIElement(object, this); 495 AccessibilityUIElement* element = new AccessibilityUIElement(object, this);
516 elements_.push_back(element); 496 elements_.push_back(element);
517 return element; 497 return element;
518 } 498 }
519 499
520 AccessibilityUIElement* AccessibilityUIElementList::CreateRoot( 500 AccessibilityUIElement* AccessibilityUIElementList::CreateRoot(
521 const WebAccessibilityObject& object) { 501 const WebAccessibilityObject& object) {
522 AccessibilityUIElement* element = 502 AccessibilityUIElement* element =
523 new RootAccessibilityUIElement(object, this); 503 new RootAccessibilityUIElement(object, this);
524 elements_.push_back(element); 504 elements_.push_back(element);
525 return element; 505 return element;
526 } 506 }
OLDNEW
« no previous file with comments | « webkit/api/src/WebAccessibilityObject.cpp ('k') | webkit/webkit.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698