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

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

Issue 825613002: Expose html placeholder attribute as AXPlaceholder: <value> on MAC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months 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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698