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 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
575 bool isAriaPressedDefined; | 575 bool isAriaPressedDefined; |
576 bool isMixed; | 576 bool isMixed; |
577 browserAccessibility_->GetAriaTristate("aria-pressed", | 577 browserAccessibility_->GetAriaTristate("aria-pressed", |
578 &isAriaPressedDefined, | 578 &isAriaPressedDefined, |
579 &isMixed); | 579 &isMixed); |
580 if (isAriaPressedDefined) | 580 if (isAriaPressedDefined) |
581 return NSAccessibilityCheckBoxRole; | 581 return NSAccessibilityCheckBoxRole; |
582 else | 582 else |
583 return NSAccessibilityButtonRole; | 583 return NSAccessibilityButtonRole; |
584 } | 584 } |
585 if (role == ui::AX_ROLE_TEXT_FIELD && | |
586 browserAccessibility_->HasState(ui::AX_STATE_MULTILINE)) { | |
dmazzoni
2015/04/07 16:12:34
nit: indent 4 spaces when continuing a previous li
| |
587 return NSAccessibilityTextAreaRole; | |
588 } | |
585 | 589 |
586 // If this is a web area for a presentational iframe, give it a role of | 590 // If this is a web area for a presentational iframe, give it a role of |
587 // something other than WebArea so that the fact that it's a separate doc | 591 // something other than WebArea so that the fact that it's a separate doc |
588 // is not exposed to AT. | 592 // is not exposed to AT. |
589 if (browserAccessibility_->IsWebAreaForPresentationalIframe()) | 593 if (browserAccessibility_->IsWebAreaForPresentationalIframe()) |
590 return NSAccessibilityGroupRole; | 594 return NSAccessibilityGroupRole; |
591 | 595 |
592 return [AXPlatformNodeCocoa nativeRoleFromAXRole:role]; | 596 return [AXPlatformNodeCocoa nativeRoleFromAXRole:role]; |
593 } | 597 } |
594 | 598 |
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1202 - (NSArray*)accessibilityParameterizedAttributeNames { | 1206 - (NSArray*)accessibilityParameterizedAttributeNames { |
1203 if (!browserAccessibility_) | 1207 if (!browserAccessibility_) |
1204 return nil; | 1208 return nil; |
1205 | 1209 |
1206 if ([[self role] isEqualToString:NSAccessibilityTableRole] || | 1210 if ([[self role] isEqualToString:NSAccessibilityTableRole] || |
1207 [[self role] isEqualToString:NSAccessibilityGridRole]) { | 1211 [[self role] isEqualToString:NSAccessibilityGridRole]) { |
1208 return [NSArray arrayWithObjects: | 1212 return [NSArray arrayWithObjects: |
1209 NSAccessibilityCellForColumnAndRowParameterizedAttribute, | 1213 NSAccessibilityCellForColumnAndRowParameterizedAttribute, |
1210 nil]; | 1214 nil]; |
1211 } | 1215 } |
1212 if ([[self role] isEqualToString:NSAccessibilityTextFieldRole] || | 1216 if ([[self role] isEqualToString:NSAccessibilityTextFieldRole]) { |
1213 [[self role] isEqualToString:NSAccessibilityTextAreaRole]) { | |
1214 return [NSArray arrayWithObjects: | 1217 return [NSArray arrayWithObjects: |
1215 NSAccessibilityLineForIndexParameterizedAttribute, | 1218 NSAccessibilityLineForIndexParameterizedAttribute, |
1216 NSAccessibilityRangeForLineParameterizedAttribute, | 1219 NSAccessibilityRangeForLineParameterizedAttribute, |
1217 NSAccessibilityStringForRangeParameterizedAttribute, | 1220 NSAccessibilityStringForRangeParameterizedAttribute, |
1218 NSAccessibilityRangeForPositionParameterizedAttribute, | 1221 NSAccessibilityRangeForPositionParameterizedAttribute, |
1219 NSAccessibilityRangeForIndexParameterizedAttribute, | 1222 NSAccessibilityRangeForIndexParameterizedAttribute, |
1220 NSAccessibilityBoundsForRangeParameterizedAttribute, | 1223 NSAccessibilityBoundsForRangeParameterizedAttribute, |
1221 NSAccessibilityRTFForRangeParameterizedAttribute, | 1224 NSAccessibilityRTFForRangeParameterizedAttribute, |
1222 NSAccessibilityAttributedStringForRangeParameterizedAttribute, | 1225 NSAccessibilityAttributedStringForRangeParameterizedAttribute, |
1223 NSAccessibilityStyleRangeForIndexParameterizedAttribute, | 1226 NSAccessibilityStyleRangeForIndexParameterizedAttribute, |
(...skipping 10 matching lines...) Expand all Loading... | |
1234 // Returns an array of action names that this object will respond to. | 1237 // Returns an array of action names that this object will respond to. |
1235 - (NSArray*)accessibilityActionNames { | 1238 - (NSArray*)accessibilityActionNames { |
1236 if (!browserAccessibility_) | 1239 if (!browserAccessibility_) |
1237 return nil; | 1240 return nil; |
1238 | 1241 |
1239 NSMutableArray* ret = | 1242 NSMutableArray* ret = |
1240 [NSMutableArray arrayWithObject:NSAccessibilityShowMenuAction]; | 1243 [NSMutableArray arrayWithObject:NSAccessibilityShowMenuAction]; |
1241 NSString* role = [self role]; | 1244 NSString* role = [self role]; |
1242 // TODO(dtseng): this should only get set when there's a default action. | 1245 // TODO(dtseng): this should only get set when there's a default action. |
1243 if (![role isEqualToString:NSAccessibilityStaticTextRole] && | 1246 if (![role isEqualToString:NSAccessibilityStaticTextRole] && |
1244 ![role isEqualToString:NSAccessibilityTextAreaRole] && | |
1245 ![role isEqualToString:NSAccessibilityTextFieldRole]) { | 1247 ![role isEqualToString:NSAccessibilityTextFieldRole]) { |
1246 [ret addObject:NSAccessibilityPressAction]; | 1248 [ret addObject:NSAccessibilityPressAction]; |
1247 } | 1249 } |
1248 | 1250 |
1249 return ret; | 1251 return ret; |
1250 } | 1252 } |
1251 | 1253 |
1252 // Returns a sub-array of values for the given attribute value, starting at | 1254 // Returns a sub-array of values for the given attribute value, starting at |
1253 // index, with up to maxCount items. If the given index is out of bounds, | 1255 // index, with up to maxCount items. If the given index is out of bounds, |
1254 // or there are no values for the given attribute, it will return nil. | 1256 // or there are no values for the given attribute, it will return nil. |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1339 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1341 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1340 NSAccessibilityColumnIndexRangeAttribute, | 1342 NSAccessibilityColumnIndexRangeAttribute, |
1341 NSAccessibilityRowIndexRangeAttribute, | 1343 NSAccessibilityRowIndexRangeAttribute, |
1342 @"AXSortDirection", | 1344 @"AXSortDirection", |
1343 nil]]; | 1345 nil]]; |
1344 } else if ([role isEqualToString:@"AXWebArea"]) { | 1346 } else if ([role isEqualToString:@"AXWebArea"]) { |
1345 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1347 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1346 @"AXLoaded", | 1348 @"AXLoaded", |
1347 @"AXLoadingProgress", | 1349 @"AXLoadingProgress", |
1348 nil]]; | 1350 nil]]; |
1349 } else if ([role isEqualToString:NSAccessibilityTextFieldRole] || | 1351 } else if ([role isEqualToString:NSAccessibilityTextFieldRole]) { |
1350 [role isEqualToString:NSAccessibilityTextAreaRole]) { | |
1351 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1352 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1352 NSAccessibilityInsertionPointLineNumberAttribute, | 1353 NSAccessibilityInsertionPointLineNumberAttribute, |
1353 NSAccessibilityNumberOfCharactersAttribute, | 1354 NSAccessibilityNumberOfCharactersAttribute, |
1354 NSAccessibilitySelectedTextAttribute, | 1355 NSAccessibilitySelectedTextAttribute, |
1355 NSAccessibilitySelectedTextRangeAttribute, | 1356 NSAccessibilitySelectedTextRangeAttribute, |
1356 NSAccessibilityVisibleCharacterRangeAttribute, | 1357 NSAccessibilityVisibleCharacterRangeAttribute, |
1357 nil]]; | 1358 nil]]; |
1358 } else if ([role isEqualToString:NSAccessibilityTabGroupRole]) { | 1359 } else if ([role isEqualToString:NSAccessibilityTabGroupRole]) { |
1359 [ret addObject:NSAccessibilityTabsAttribute]; | 1360 [ret addObject:NSAccessibilityTabsAttribute]; |
1360 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] || | 1361 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] || |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1506 return NO; | 1507 return NO; |
1507 | 1508 |
1508 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) | 1509 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) |
1509 return GetState(browserAccessibility_, | 1510 return GetState(browserAccessibility_, |
1510 ui::AX_STATE_FOCUSABLE); | 1511 ui::AX_STATE_FOCUSABLE); |
1511 if ([attribute isEqualToString:NSAccessibilityValueAttribute]) { | 1512 if ([attribute isEqualToString:NSAccessibilityValueAttribute]) { |
1512 return browserAccessibility_->GetBoolAttribute( | 1513 return browserAccessibility_->GetBoolAttribute( |
1513 ui::AX_ATTR_CAN_SET_VALUE); | 1514 ui::AX_ATTR_CAN_SET_VALUE); |
1514 } | 1515 } |
1515 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute] && | 1516 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute] && |
1516 ([[self role] isEqualToString:NSAccessibilityTextFieldRole] || | 1517 ([[self role] isEqualToString:NSAccessibilityTextFieldRole])) |
1517 [[self role] isEqualToString:NSAccessibilityTextAreaRole])) | |
1518 return YES; | 1518 return YES; |
1519 | 1519 |
1520 return NO; | 1520 return NO; |
1521 } | 1521 } |
1522 | 1522 |
1523 // Returns whether or not this object should be ignored in the accessibility | 1523 // Returns whether or not this object should be ignored in the accessibility |
1524 // tree. | 1524 // tree. |
1525 - (BOOL)accessibilityIsIgnored { | 1525 - (BOOL)accessibilityIsIgnored { |
1526 if (!browserAccessibility_) | 1526 if (!browserAccessibility_) |
1527 return true; | 1527 return true; |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1624 if (!browserAccessibility_) | 1624 if (!browserAccessibility_) |
1625 return [super hash]; | 1625 return [super hash]; |
1626 return browserAccessibility_->GetId(); | 1626 return browserAccessibility_->GetId(); |
1627 } | 1627 } |
1628 | 1628 |
1629 - (BOOL)accessibilityShouldUseUniqueId { | 1629 - (BOOL)accessibilityShouldUseUniqueId { |
1630 return YES; | 1630 return YES; |
1631 } | 1631 } |
1632 | 1632 |
1633 @end | 1633 @end |
OLD | NEW |