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 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 return [NSNumber numberWithFloat:floatValue]; | 439 return [NSNumber numberWithFloat:floatValue]; |
440 } | 440 } |
441 | 441 |
442 - (NSNumber*)minValue { | 442 - (NSNumber*)minValue { |
443 float floatValue = browserAccessibility_->GetFloatAttribute( | 443 float floatValue = browserAccessibility_->GetFloatAttribute( |
444 ui::AX_ATTR_MIN_VALUE_FOR_RANGE); | 444 ui::AX_ATTR_MIN_VALUE_FOR_RANGE); |
445 return [NSNumber numberWithFloat:floatValue]; | 445 return [NSNumber numberWithFloat:floatValue]; |
446 } | 446 } |
447 | 447 |
448 - (NSString*)orientation { | 448 - (NSString*)orientation { |
449 // We present a spin button as a vertical slider, with a role description | |
450 // of "spin button". | |
451 if ([self internalRole] == ui::AX_ROLE_SPIN_BUTTON) | |
452 return NSAccessibilityVerticalOrientationValue; | |
453 | |
454 if ([self internalRole] == ui::AX_ROLE_LIST || | |
455 [self internalRole] == ui::AX_ROLE_LIST_BOX) { | |
456 return NSAccessibilityVerticalOrientationValue; | |
457 } | |
458 | |
459 if (GetState(browserAccessibility_, ui::AX_STATE_VERTICAL)) | 449 if (GetState(browserAccessibility_, ui::AX_STATE_VERTICAL)) |
460 return NSAccessibilityVerticalOrientationValue; | 450 return NSAccessibilityVerticalOrientationValue; |
461 else | 451 else if (GetState(browserAccessibility_, ui::AX_STATE_HORIZONTAL)) |
462 return NSAccessibilityHorizontalOrientationValue; | 452 return NSAccessibilityHorizontalOrientationValue; |
| 453 |
| 454 return @""; |
463 } | 455 } |
464 | 456 |
465 - (NSNumber*)numberOfCharacters { | 457 - (NSNumber*)numberOfCharacters { |
466 return [NSNumber numberWithInt:browserAccessibility_->value().length()]; | 458 return [NSNumber numberWithInt:browserAccessibility_->value().length()]; |
467 } | 459 } |
468 | 460 |
469 // The origin of this accessibility object in the page's document. | 461 // The origin of this accessibility object in the page's document. |
470 // This is relative to webkit's top-left origin, not Cocoa's | 462 // This is relative to webkit's top-left origin, not Cocoa's |
471 // bottom-left origin. | 463 // bottom-left origin. |
472 - (NSPoint)origin { | 464 - (NSPoint)origin { |
(...skipping 797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1270 nil]]; | 1262 nil]]; |
1271 } else if ([role isEqualToString:NSAccessibilityTabGroupRole]) { | 1263 } else if ([role isEqualToString:NSAccessibilityTabGroupRole]) { |
1272 [ret addObject:NSAccessibilityTabsAttribute]; | 1264 [ret addObject:NSAccessibilityTabsAttribute]; |
1273 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] || | 1265 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] || |
1274 [role isEqualToString:NSAccessibilitySliderRole] || | 1266 [role isEqualToString:NSAccessibilitySliderRole] || |
1275 [role isEqualToString:NSAccessibilityIncrementorRole] || | 1267 [role isEqualToString:NSAccessibilityIncrementorRole] || |
1276 [role isEqualToString:NSAccessibilityScrollBarRole]) { | 1268 [role isEqualToString:NSAccessibilityScrollBarRole]) { |
1277 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1269 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1278 NSAccessibilityMaxValueAttribute, | 1270 NSAccessibilityMaxValueAttribute, |
1279 NSAccessibilityMinValueAttribute, | 1271 NSAccessibilityMinValueAttribute, |
1280 NSAccessibilityOrientationAttribute, | |
1281 NSAccessibilityValueDescriptionAttribute, | 1272 NSAccessibilityValueDescriptionAttribute, |
1282 nil]]; | 1273 nil]]; |
1283 } else if ([subrole isEqualToString:NSAccessibilityOutlineRowSubrole]) { | 1274 } else if ([subrole isEqualToString:NSAccessibilityOutlineRowSubrole]) { |
1284 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1275 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1285 NSAccessibilityDisclosingAttribute, | 1276 NSAccessibilityDisclosingAttribute, |
1286 NSAccessibilityDisclosedByRowAttribute, | 1277 NSAccessibilityDisclosedByRowAttribute, |
1287 NSAccessibilityDisclosureLevelAttribute, | 1278 NSAccessibilityDisclosureLevelAttribute, |
1288 NSAccessibilityDisclosedRowsAttribute, | 1279 NSAccessibilityDisclosedRowsAttribute, |
1289 nil]]; | 1280 nil]]; |
1290 } else if ([role isEqualToString:NSAccessibilityRowRole]) { | 1281 } else if ([role isEqualToString:NSAccessibilityRowRole]) { |
(...skipping 10 matching lines...) Expand all Loading... |
1301 NSAccessibilityDisclosedRowsAttribute, | 1292 NSAccessibilityDisclosedRowsAttribute, |
1302 nil]]; | 1293 nil]]; |
1303 } else { | 1294 } else { |
1304 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1295 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1305 NSAccessibilityIndexAttribute, | 1296 NSAccessibilityIndexAttribute, |
1306 nil]]; | 1297 nil]]; |
1307 } | 1298 } |
1308 } | 1299 } |
1309 } else if ([role isEqualToString:NSAccessibilityListRole]) { | 1300 } else if ([role isEqualToString:NSAccessibilityListRole]) { |
1310 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1301 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1311 NSAccessibilityOrientationAttribute, | |
1312 NSAccessibilitySelectedChildrenAttribute, | 1302 NSAccessibilitySelectedChildrenAttribute, |
1313 NSAccessibilityVisibleChildrenAttribute, | 1303 NSAccessibilityVisibleChildrenAttribute, |
1314 nil]]; | 1304 nil]]; |
1315 } | 1305 } |
1316 | 1306 |
1317 // Add the url attribute only if it has a valid url. | 1307 // Add the url attribute only if it has a valid url. |
1318 if ([self url] != nil) { | 1308 if ([self url] != nil) { |
1319 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1309 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1320 NSAccessibilityURLAttribute, | 1310 NSAccessibilityURLAttribute, |
1321 nil]]; | 1311 nil]]; |
(...skipping 26 matching lines...) Expand all Loading... |
1348 } | 1338 } |
1349 | 1339 |
1350 //Add expanded attribute only if it has expanded or collapsed state. | 1340 //Add expanded attribute only if it has expanded or collapsed state. |
1351 if (GetState(browserAccessibility_, ui::AX_STATE_EXPANDED) || | 1341 if (GetState(browserAccessibility_, ui::AX_STATE_EXPANDED) || |
1352 GetState(browserAccessibility_, ui::AX_STATE_COLLAPSED)) { | 1342 GetState(browserAccessibility_, ui::AX_STATE_COLLAPSED)) { |
1353 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1343 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1354 NSAccessibilityExpandedAttribute, | 1344 NSAccessibilityExpandedAttribute, |
1355 nil]]; | 1345 nil]]; |
1356 } | 1346 } |
1357 | 1347 |
| 1348 if (GetState(browserAccessibility_, ui::AX_STATE_VERTICAL) |
| 1349 || GetState(browserAccessibility_, ui::AX_STATE_HORIZONTAL)) { |
| 1350 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
| 1351 NSAccessibilityOrientationAttribute, nil]]; |
| 1352 } |
| 1353 |
1358 // Title UI Element. | 1354 // Title UI Element. |
1359 if (browserAccessibility_->HasIntAttribute(ui::AX_ATTR_TITLE_UI_ELEMENT) || | 1355 if (browserAccessibility_->HasIntAttribute(ui::AX_ATTR_TITLE_UI_ELEMENT) || |
1360 (browserAccessibility_->HasIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS) && | 1356 (browserAccessibility_->HasIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS) && |
1361 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS) | 1357 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS) |
1362 .size() == 1)) { | 1358 .size() == 1)) { |
1363 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 1359 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
1364 NSAccessibilityTitleUIElementAttribute, | 1360 NSAccessibilityTitleUIElementAttribute, |
1365 nil]]; | 1361 nil]]; |
1366 } | 1362 } |
1367 // TODO(aboxhall): expose NSAccessibilityServesAsTitleForUIElementsAttribute | 1363 // TODO(aboxhall): expose NSAccessibilityServesAsTitleForUIElementsAttribute |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1510 return [super hash]; | 1506 return [super hash]; |
1511 return browserAccessibility_->GetId(); | 1507 return browserAccessibility_->GetId(); |
1512 } | 1508 } |
1513 | 1509 |
1514 - (BOOL)accessibilityShouldUseUniqueId { | 1510 - (BOOL)accessibilityShouldUseUniqueId { |
1515 return YES; | 1511 return YES; |
1516 } | 1512 } |
1517 | 1513 |
1518 @end | 1514 @end |
1519 | 1515 |
OLD | NEW |