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

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

Issue 1063383005: Chromium side Implementation to expose aria properties - setsize & posinset (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 { NSAccessibilityVisibleCharacterRangeAttribute, @"visibleCharacterRange" }, 101 { NSAccessibilityVisibleCharacterRangeAttribute, @"visibleCharacterRange" },
102 { NSAccessibilityVisibleCellsAttribute, @"visibleCells" }, 102 { NSAccessibilityVisibleCellsAttribute, @"visibleCells" },
103 { NSAccessibilityVisibleChildrenAttribute, @"visibleChildren" }, 103 { NSAccessibilityVisibleChildrenAttribute, @"visibleChildren" },
104 { NSAccessibilityVisibleColumnsAttribute, @"visibleColumns" }, 104 { NSAccessibilityVisibleColumnsAttribute, @"visibleColumns" },
105 { NSAccessibilityVisibleRowsAttribute, @"visibleRows" }, 105 { NSAccessibilityVisibleRowsAttribute, @"visibleRows" },
106 { NSAccessibilityWindowAttribute, @"window" }, 106 { NSAccessibilityWindowAttribute, @"window" },
107 { @"AXAccessKey", @"accessKey" }, 107 { @"AXAccessKey", @"accessKey" },
108 { @"AXARIAAtomic", @"ariaAtomic" }, 108 { @"AXARIAAtomic", @"ariaAtomic" },
109 { @"AXARIABusy", @"ariaBusy" }, 109 { @"AXARIABusy", @"ariaBusy" },
110 { @"AXARIALive", @"ariaLive" }, 110 { @"AXARIALive", @"ariaLive" },
111 { @"AXARIAPosInSet", @"ariaPosInSet" },
112 { @"AXARIASetSize", @"ariaSetSize" },
111 { @"AXARIARelevant", @"ariaRelevant" }, 113 { @"AXARIARelevant", @"ariaRelevant" },
112 { @"AXDropEffects", @"dropeffect" }, 114 { @"AXDropEffects", @"dropeffect" },
113 { @"AXGrabbed", @"grabbed" }, 115 { @"AXGrabbed", @"grabbed" },
114 { @"AXInvalid", @"invalid" }, 116 { @"AXInvalid", @"invalid" },
115 { @"AXLoaded", @"loaded" }, 117 { @"AXLoaded", @"loaded" },
116 { @"AXLoadingProgress", @"loadingProgress" }, 118 { @"AXLoadingProgress", @"loadingProgress" },
117 { @"AXPlaceholder", @"placeholder" }, 119 { @"AXPlaceholder", @"placeholder" },
118 { @"AXRequired", @"required" }, 120 { @"AXRequired", @"required" },
119 { @"AXSortDirection", @"sortDirection" }, 121 { @"AXSortDirection", @"sortDirection" },
120 { @"AXVisited", @"visited" }, 122 { @"AXVisited", @"visited" },
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 - (NSString*)ariaLive { 165 - (NSString*)ariaLive {
164 return NSStringForStringAttribute( 166 return NSStringForStringAttribute(
165 browserAccessibility_, ui::AX_ATTR_LIVE_STATUS); 167 browserAccessibility_, ui::AX_ATTR_LIVE_STATUS);
166 } 168 }
167 169
168 - (NSString*)ariaRelevant { 170 - (NSString*)ariaRelevant {
169 return NSStringForStringAttribute( 171 return NSStringForStringAttribute(
170 browserAccessibility_, ui::AX_ATTR_LIVE_RELEVANT); 172 browserAccessibility_, ui::AX_ATTR_LIVE_RELEVANT);
171 } 173 }
172 174
175 - (NSNumber*)ariaPosInSet {
176 if (browserAccessibility_->HasIntAttribute(ui::AX_ATTR_SET_SIZE))
177 int pos = browserAccessibility_->GetIntAttribute(ui::AX_ATTR_POS_IN_SET);
178 else
179 int pos = GetIndexInParent() + 1;
180
181 return [NSNumber numberWithInt:pos];
182 }
183
184 - (NSNumber*)ariaSetSize {
185 if (browserAccessibility_->HasIntAttribute(ui::AX_ATTR_SET_SIZE))
186 int size = browserAccessibility_->GetIntAttribute(ui::AX_ATTR_SET_SIZE);
187 else
188 int size = browserAccessibility_->PlatformChildCount();
189
190 return [NSNumber numberWithInt:size];
191 }
192
173 // Returns an array of BrowserAccessibilityCocoa objects, representing the 193 // Returns an array of BrowserAccessibilityCocoa objects, representing the
174 // accessibility children of this object. 194 // accessibility children of this object.
175 - (NSArray*)children { 195 - (NSArray*)children {
176 if (!children_) { 196 if (!children_) {
177 uint32 childCount = browserAccessibility_->PlatformChildCount(); 197 uint32 childCount = browserAccessibility_->PlatformChildCount();
178 children_.reset([[NSMutableArray alloc] initWithCapacity:childCount]); 198 children_.reset([[NSMutableArray alloc] initWithCapacity:childCount]);
179 for (uint32 index = 0; index < childCount; ++index) { 199 for (uint32 index = 0; index < childCount; ++index) {
180 BrowserAccessibilityCocoa* child = 200 BrowserAccessibilityCocoa* child =
181 browserAccessibility_->PlatformGetChild(index)-> 201 browserAccessibility_->PlatformGetChild(index)->
182 ToBrowserAccessibilityCocoa(); 202 ToBrowserAccessibilityCocoa();
(...skipping 1216 matching lines...) Expand 10 before | Expand all | Expand 10 after
1399 nil]]; 1419 nil]];
1400 } 1420 }
1401 1421
1402 // Add the url attribute only if it has a valid url. 1422 // Add the url attribute only if it has a valid url.
1403 if ([self url] != nil) { 1423 if ([self url] != nil) {
1404 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1424 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1405 NSAccessibilityURLAttribute, 1425 NSAccessibilityURLAttribute,
1406 nil]]; 1426 nil]];
1407 } 1427 }
1408 1428
1429 if (browserAccessibility_->GetRole() == ui::AX_ROLE_LIST_BOX_OPTION &&
1430 browserAccessibility_->GetParent() &&
1431 browserAccessibility_->GetParent()->GetRole() == ui::AX_ROLE_LIST_BOX) {
1432 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1433 @"AXARIAPosInSet",
1434 @"AXARIASetSize",
1435 nil]];
1436 }
1437
1409 // Live regions. 1438 // Live regions.
1410 if (browserAccessibility_->HasStringAttribute( 1439 if (browserAccessibility_->HasStringAttribute(
1411 ui::AX_ATTR_LIVE_STATUS)) { 1440 ui::AX_ATTR_LIVE_STATUS)) {
1412 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1441 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1413 @"AXARIALive", 1442 @"AXARIALive",
1414 nil]]; 1443 nil]];
1415 } 1444 }
1416 if (browserAccessibility_->HasStringAttribute( 1445 if (browserAccessibility_->HasStringAttribute(
1417 ui::AX_ATTR_LIVE_RELEVANT)) { 1446 ui::AX_ATTR_LIVE_RELEVANT)) {
1418 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1447 [ret addObjectsFromArray:[NSArray arrayWithObjects:
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
1624 if (!browserAccessibility_) 1653 if (!browserAccessibility_)
1625 return [super hash]; 1654 return [super hash];
1626 return browserAccessibility_->GetId(); 1655 return browserAccessibility_->GetId();
1627 } 1656 }
1628 1657
1629 - (BOOL)accessibilityShouldUseUniqueId { 1658 - (BOOL)accessibilityShouldUseUniqueId {
1630 return YES; 1659 return YES;
1631 } 1660 }
1632 1661
1633 @end 1662 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698