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

Side by Side Diff: content/browser/accessibility/browser_accessibility_cocoa.mm

Issue 744623002: Exposing ARIA state/property aria-orientation on Windows correctly. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixing presubmit warning Created 6 years 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
OLDNEW
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698