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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 { NSAccessibilityVisibleRowsAttribute, @"visibleRows" }, | 104 { NSAccessibilityVisibleRowsAttribute, @"visibleRows" }, |
105 { NSAccessibilityWindowAttribute, @"window" }, | 105 { NSAccessibilityWindowAttribute, @"window" }, |
106 { @"AXAccessKey", @"accessKey" }, | 106 { @"AXAccessKey", @"accessKey" }, |
107 { @"AXARIAAtomic", @"ariaAtomic" }, | 107 { @"AXARIAAtomic", @"ariaAtomic" }, |
108 { @"AXARIABusy", @"ariaBusy" }, | 108 { @"AXARIABusy", @"ariaBusy" }, |
109 { @"AXARIALive", @"ariaLive" }, | 109 { @"AXARIALive", @"ariaLive" }, |
110 { @"AXARIARelevant", @"ariaRelevant" }, | 110 { @"AXARIARelevant", @"ariaRelevant" }, |
111 { @"AXInvalid", @"invalid" }, | 111 { @"AXInvalid", @"invalid" }, |
112 { @"AXLoaded", @"loaded" }, | 112 { @"AXLoaded", @"loaded" }, |
113 { @"AXLoadingProgress", @"loadingProgress" }, | 113 { @"AXLoadingProgress", @"loadingProgress" }, |
| 114 { @"AXPlaceholder", @"placeholder" }, |
114 { @"AXRequired", @"required" }, | 115 { @"AXRequired", @"required" }, |
115 { @"AXVisited", @"visited" }, | 116 { @"AXVisited", @"visited" }, |
116 }; | 117 }; |
117 | 118 |
118 NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; | 119 NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; |
119 const size_t numAttributes = sizeof(attributeToMethodNameContainer) / | 120 const size_t numAttributes = sizeof(attributeToMethodNameContainer) / |
120 sizeof(attributeToMethodNameContainer[0]); | 121 sizeof(attributeToMethodNameContainer[0]); |
121 for (size_t i = 0; i < numAttributes; ++i) { | 122 for (size_t i = 0; i < numAttributes; ++i) { |
122 [dict setObject:attributeToMethodNameContainer[i].methodName | 123 [dict setObject:attributeToMethodNameContainer[i].methodName |
123 forKey:attributeToMethodNameContainer[i].attribute]; | 124 forKey:attributeToMethodNameContainer[i].attribute]; |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 if (!browserAccessibility_->GetHtmlAttribute("aria-invalid", &invalidUTF)) | 395 if (!browserAccessibility_->GetHtmlAttribute("aria-invalid", &invalidUTF)) |
395 return NULL; | 396 return NULL; |
396 NSString* invalid = base::SysUTF16ToNSString(invalidUTF); | 397 NSString* invalid = base::SysUTF16ToNSString(invalidUTF); |
397 if ([invalid isEqualToString:@"false"] || | 398 if ([invalid isEqualToString:@"false"] || |
398 [invalid isEqualToString:@""]) { | 399 [invalid isEqualToString:@""]) { |
399 return @"false"; | 400 return @"false"; |
400 } | 401 } |
401 return invalid; | 402 return invalid; |
402 } | 403 } |
403 | 404 |
| 405 - (NSString*)placeholder { |
| 406 return NSStringForStringAttribute( |
| 407 browserAccessibility_, ui::AX_ATTR_PLACEHOLDER); |
| 408 } |
| 409 |
404 - (void)addLinkedUIElementsFromAttribute:(ui::AXIntListAttribute)attribute | 410 - (void)addLinkedUIElementsFromAttribute:(ui::AXIntListAttribute)attribute |
405 addTo:(NSMutableArray*)outArray { | 411 addTo:(NSMutableArray*)outArray { |
406 const std::vector<int32>& attributeValues = | 412 const std::vector<int32>& attributeValues = |
407 browserAccessibility_->GetIntListAttribute(attribute); | 413 browserAccessibility_->GetIntListAttribute(attribute); |
408 for (size_t i = 0; i < attributeValues.size(); ++i) { | 414 for (size_t i = 0; i < attributeValues.size(); ++i) { |
409 BrowserAccessibility* element = | 415 BrowserAccessibility* element = |
410 browserAccessibility_->manager()->GetFromID(attributeValues[i]); | 416 browserAccessibility_->manager()->GetFromID(attributeValues[i]); |
411 if (element) | 417 if (element) |
412 [outArray addObject:element->ToBrowserAccessibilityCocoa()]; | 418 [outArray addObject:element->ToBrowserAccessibilityCocoa()]; |
413 } | 419 } |
(...skipping 937 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1351 NSAccessibilityExpandedAttribute, | 1357 NSAccessibilityExpandedAttribute, |
1352 nil]]; | 1358 nil]]; |
1353 } | 1359 } |
1354 | 1360 |
1355 if (GetState(browserAccessibility_, ui::AX_STATE_VERTICAL) | 1361 if (GetState(browserAccessibility_, ui::AX_STATE_VERTICAL) |
1356 || GetState(browserAccessibility_, ui::AX_STATE_HORIZONTAL)) { | 1362 || GetState(browserAccessibility_, ui::AX_STATE_HORIZONTAL)) { |
1357 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1363 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1358 NSAccessibilityOrientationAttribute, nil]]; | 1364 NSAccessibilityOrientationAttribute, nil]]; |
1359 } | 1365 } |
1360 | 1366 |
| 1367 if (browserAccessibility_->HasStringAttribute(ui::AX_ATTR_PLACEHOLDER)) { |
| 1368 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
| 1369 @"AXPlaceholder", nil]]; |
| 1370 } |
| 1371 |
1361 if (GetState(browserAccessibility_, ui::AX_STATE_REQUIRED)) { | 1372 if (GetState(browserAccessibility_, ui::AX_STATE_REQUIRED)) { |
1362 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1373 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1363 @"AXRequired", nil]]; | 1374 @"AXRequired", nil]]; |
1364 } | 1375 } |
1365 | 1376 |
1366 // Title UI Element. | 1377 // Title UI Element. |
1367 if (browserAccessibility_->HasIntAttribute(ui::AX_ATTR_TITLE_UI_ELEMENT) || | 1378 if (browserAccessibility_->HasIntAttribute(ui::AX_ATTR_TITLE_UI_ELEMENT) || |
1368 (browserAccessibility_->HasIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS) && | 1379 (browserAccessibility_->HasIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS) && |
1369 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS) | 1380 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS) |
1370 .size() == 1)) { | 1381 .size() == 1)) { |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1518 return [super hash]; | 1529 return [super hash]; |
1519 return browserAccessibility_->GetId(); | 1530 return browserAccessibility_->GetId(); |
1520 } | 1531 } |
1521 | 1532 |
1522 - (BOOL)accessibilityShouldUseUniqueId { | 1533 - (BOOL)accessibilityShouldUseUniqueId { |
1523 return YES; | 1534 return YES; |
1524 } | 1535 } |
1525 | 1536 |
1526 @end | 1537 @end |
1527 | 1538 |
OLD | NEW |