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 <execinfo.h> | 5 #include <execinfo.h> |
6 | 6 |
7 #import "content/browser/accessibility/browser_accessibility_cocoa.h" | 7 #import "content/browser/accessibility/browser_accessibility_cocoa.h" |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 | 10 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 { WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION, | 111 { WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION, |
112 NSAccessibilityGroupRole }, | 112 NSAccessibilityGroupRole }, |
113 { WebAccessibility::ROLE_DEFINITION_LIST_TERM, NSAccessibilityGroupRole }, | 113 { WebAccessibility::ROLE_DEFINITION_LIST_TERM, NSAccessibilityGroupRole }, |
114 { WebAccessibility::ROLE_DIALOG, NSAccessibilityGroupRole }, | 114 { WebAccessibility::ROLE_DIALOG, NSAccessibilityGroupRole }, |
115 { WebAccessibility::ROLE_DIRECTORY, NSAccessibilityListRole }, | 115 { WebAccessibility::ROLE_DIRECTORY, NSAccessibilityListRole }, |
116 { WebAccessibility::ROLE_DISCLOSURE_TRIANGLE, | 116 { WebAccessibility::ROLE_DISCLOSURE_TRIANGLE, |
117 NSAccessibilityDisclosureTriangleRole }, | 117 NSAccessibilityDisclosureTriangleRole }, |
118 { WebAccessibility::ROLE_DOCUMENT, NSAccessibilityGroupRole }, | 118 { WebAccessibility::ROLE_DOCUMENT, NSAccessibilityGroupRole }, |
119 { WebAccessibility::ROLE_DRAWER, NSAccessibilityDrawerRole }, | 119 { WebAccessibility::ROLE_DRAWER, NSAccessibilityDrawerRole }, |
120 { WebAccessibility::ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole }, | 120 { WebAccessibility::ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole }, |
| 121 { WebAccessibility::ROLE_FOOTER, NSAccessibilityGroupRole }, |
121 { WebAccessibility::ROLE_GRID, NSAccessibilityGridRole }, | 122 { WebAccessibility::ROLE_GRID, NSAccessibilityGridRole }, |
122 { WebAccessibility::ROLE_GROUP, NSAccessibilityGroupRole }, | 123 { WebAccessibility::ROLE_GROUP, NSAccessibilityGroupRole }, |
123 { WebAccessibility::ROLE_GROW_AREA, NSAccessibilityGrowAreaRole }, | 124 { WebAccessibility::ROLE_GROW_AREA, NSAccessibilityGrowAreaRole }, |
124 { WebAccessibility::ROLE_HEADING, @"AXHeading" }, | 125 { WebAccessibility::ROLE_HEADING, @"AXHeading" }, |
125 { WebAccessibility::ROLE_HELP_TAG, NSAccessibilityHelpTagRole }, | 126 { WebAccessibility::ROLE_HELP_TAG, NSAccessibilityHelpTagRole }, |
126 { WebAccessibility::ROLE_IGNORED, NSAccessibilityUnknownRole }, | 127 { WebAccessibility::ROLE_IGNORED, NSAccessibilityUnknownRole }, |
127 { WebAccessibility::ROLE_IMAGE, NSAccessibilityImageRole }, | 128 { WebAccessibility::ROLE_IMAGE, NSAccessibilityImageRole }, |
128 { WebAccessibility::ROLE_IMAGE_MAP, NSAccessibilityGroupRole }, | 129 { WebAccessibility::ROLE_IMAGE_MAP, NSAccessibilityGroupRole }, |
129 { WebAccessibility::ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole }, | 130 { WebAccessibility::ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole }, |
130 { WebAccessibility::ROLE_INCREMENTOR, NSAccessibilityIncrementorRole }, | 131 { WebAccessibility::ROLE_INCREMENTOR, NSAccessibilityIncrementorRole }, |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 | 216 |
216 RoleMap BuildSubroleMap() { | 217 RoleMap BuildSubroleMap() { |
217 const MapEntry subroles[] = { | 218 const MapEntry subroles[] = { |
218 { WebAccessibility::ROLE_ALERT, @"AXApplicationAlert" }, | 219 { WebAccessibility::ROLE_ALERT, @"AXApplicationAlert" }, |
219 { WebAccessibility::ROLE_ALERT_DIALOG, @"AXApplicationAlertDialog" }, | 220 { WebAccessibility::ROLE_ALERT_DIALOG, @"AXApplicationAlertDialog" }, |
220 { WebAccessibility::ROLE_ARTICLE, @"AXDocumentArticle" }, | 221 { WebAccessibility::ROLE_ARTICLE, @"AXDocumentArticle" }, |
221 { WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION, @"AXDefinition" }, | 222 { WebAccessibility::ROLE_DEFINITION_LIST_DEFINITION, @"AXDefinition" }, |
222 { WebAccessibility::ROLE_DEFINITION_LIST_TERM, @"AXTerm" }, | 223 { WebAccessibility::ROLE_DEFINITION_LIST_TERM, @"AXTerm" }, |
223 { WebAccessibility::ROLE_DIALOG, @"AXApplicationDialog" }, | 224 { WebAccessibility::ROLE_DIALOG, @"AXApplicationDialog" }, |
224 { WebAccessibility::ROLE_DOCUMENT, @"AXDocument" }, | 225 { WebAccessibility::ROLE_DOCUMENT, @"AXDocument" }, |
| 226 { WebAccessibility::ROLE_FOOTER, @"AXLandmarkContentInfo" }, |
225 { WebAccessibility::ROLE_LANDMARK_APPLICATION, @"AXLandmarkApplication" }, | 227 { WebAccessibility::ROLE_LANDMARK_APPLICATION, @"AXLandmarkApplication" }, |
226 { WebAccessibility::ROLE_LANDMARK_BANNER, @"AXLandmarkBanner" }, | 228 { WebAccessibility::ROLE_LANDMARK_BANNER, @"AXLandmarkBanner" }, |
227 { WebAccessibility::ROLE_LANDMARK_COMPLEMENTARY, | 229 { WebAccessibility::ROLE_LANDMARK_COMPLEMENTARY, |
228 @"AXLandmarkComplementary" }, | 230 @"AXLandmarkComplementary" }, |
229 { WebAccessibility::ROLE_LANDMARK_CONTENTINFO, @"AXLandmarkContentInfo" }, | 231 { WebAccessibility::ROLE_LANDMARK_CONTENTINFO, @"AXLandmarkContentInfo" }, |
230 { WebAccessibility::ROLE_LANDMARK_MAIN, @"AXLandmarkMain" }, | 232 { WebAccessibility::ROLE_LANDMARK_MAIN, @"AXLandmarkMain" }, |
231 { WebAccessibility::ROLE_LANDMARK_NAVIGATION, @"AXLandmarkNavigation" }, | 233 { WebAccessibility::ROLE_LANDMARK_NAVIGATION, @"AXLandmarkNavigation" }, |
232 { WebAccessibility::ROLE_LANDMARK_SEARCH, @"AXLandmarkSearch" }, | 234 { WebAccessibility::ROLE_LANDMARK_SEARCH, @"AXLandmarkSearch" }, |
233 { WebAccessibility::ROLE_LOG, @"AXApplicationLog" }, | 235 { WebAccessibility::ROLE_LOG, @"AXApplicationLog" }, |
234 { WebAccessibility::ROLE_MARQUEE, @"AXApplicationMarquee" }, | 236 { WebAccessibility::ROLE_MARQUEE, @"AXApplicationMarquee" }, |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 for (size_t i = 0; i < htmlAttributes.size(); ++i) { | 548 for (size_t i = 0; i < htmlAttributes.size(); ++i) { |
547 const std::pair<string16, string16>& htmlAttribute = htmlAttributes[i]; | 549 const std::pair<string16, string16>& htmlAttribute = htmlAttributes[i]; |
548 if (htmlAttribute.first == ASCIIToUTF16("role")) { | 550 if (htmlAttribute.first == ASCIIToUTF16("role")) { |
549 // TODO(dtseng): This is not localized; see crbug/84814. | 551 // TODO(dtseng): This is not localized; see crbug/84814. |
550 return base::SysUTF16ToNSString(htmlAttribute.second); | 552 return base::SysUTF16ToNSString(htmlAttribute.second); |
551 } | 553 } |
552 } | 554 } |
553 } | 555 } |
554 } | 556 } |
555 | 557 |
| 558 if (static_cast<WebAccessibility::Role>( browserAccessibility_->role()) == |
| 559 WebAccessibility::ROLE_FOOTER) { |
| 560 return base::SysUTF16ToNSString(content_client->GetLocalizedString( |
| 561 IDS_AX_ROLE_FOOTER)); |
| 562 } |
| 563 |
556 return NSAccessibilityRoleDescription(role, nil); | 564 return NSAccessibilityRoleDescription(role, nil); |
557 } | 565 } |
558 | 566 |
559 - (NSArray*)rows { | 567 - (NSArray*)rows { |
560 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; | 568 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; |
561 for (BrowserAccessibilityCocoa* child in [self children]) { | 569 for (BrowserAccessibilityCocoa* child in [self children]) { |
562 if ([[child role] isEqualToString:NSAccessibilityRowRole]) | 570 if ([[child role] isEqualToString:NSAccessibilityRowRole]) |
563 [ret addObject:child]; | 571 [ret addObject:child]; |
564 } | 572 } |
565 | 573 |
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1035 return [super hash]; | 1043 return [super hash]; |
1036 return browserAccessibility_->renderer_id(); | 1044 return browserAccessibility_->renderer_id(); |
1037 } | 1045 } |
1038 | 1046 |
1039 - (BOOL)accessibilityShouldUseUniqueId { | 1047 - (BOOL)accessibilityShouldUseUniqueId { |
1040 return YES; | 1048 return YES; |
1041 } | 1049 } |
1042 | 1050 |
1043 @end | 1051 @end |
1044 | 1052 |
OLD | NEW |