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

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

Issue 744843002: Added the aria-sort state to the accessibility tree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed Android test expectations. Created 5 years, 10 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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 { @"AXARIAAtomic", @"ariaAtomic" }, 108 { @"AXARIAAtomic", @"ariaAtomic" },
109 { @"AXARIABusy", @"ariaBusy" }, 109 { @"AXARIABusy", @"ariaBusy" },
110 { @"AXARIALive", @"ariaLive" }, 110 { @"AXARIALive", @"ariaLive" },
111 { @"AXARIARelevant", @"ariaRelevant" }, 111 { @"AXARIARelevant", @"ariaRelevant" },
112 { @"AXGrabbed", @"grabbed" }, 112 { @"AXGrabbed", @"grabbed" },
113 { @"AXInvalid", @"invalid" }, 113 { @"AXInvalid", @"invalid" },
114 { @"AXLoaded", @"loaded" }, 114 { @"AXLoaded", @"loaded" },
115 { @"AXLoadingProgress", @"loadingProgress" }, 115 { @"AXLoadingProgress", @"loadingProgress" },
116 { @"AXPlaceholder", @"placeholder" }, 116 { @"AXPlaceholder", @"placeholder" },
117 { @"AXRequired", @"required" }, 117 { @"AXRequired", @"required" },
118 { @"AXSortDirection", @"sortDirection" },
118 { @"AXVisited", @"visited" }, 119 { @"AXVisited", @"visited" },
119 }; 120 };
120 121
121 NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; 122 NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
122 const size_t numAttributes = sizeof(attributeToMethodNameContainer) / 123 const size_t numAttributes = sizeof(attributeToMethodNameContainer) /
123 sizeof(attributeToMethodNameContainer[0]); 124 sizeof(attributeToMethodNameContainer[0]);
124 for (size_t i = 0; i < numAttributes; ++i) { 125 for (size_t i = 0; i < numAttributes; ++i) {
125 [dict setObject:attributeToMethodNameContainer[i].methodName 126 [dict setObject:attributeToMethodNameContainer[i].methodName
126 forKey:attributeToMethodNameContainer[i].attribute]; 127 forKey:attributeToMethodNameContainer[i].attribute];
127 } 128 }
(...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 776
776 return ret; 777 return ret;
777 } 778 }
778 779
779 // Returns the size of this object. 780 // Returns the size of this object.
780 - (NSValue*)size { 781 - (NSValue*)size {
781 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect(); 782 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect();
782 return [NSValue valueWithSize:NSMakeSize(bounds.width(), bounds.height())]; 783 return [NSValue valueWithSize:NSMakeSize(bounds.width(), bounds.height())];
783 } 784 }
784 785
786 - (NSString*)sortDirection {
787 int sortDirection;
788 if (!browserAccessibility_->GetIntAttribute(
789 ui::AX_ATTR_SORT_DIRECTION, &sortDirection))
790 return @"";
791
792 switch (sortDirection) {
793 case ui::AX_SORT_DIRECTION_UNSORTED:
794 return @"";
795 case ui::AX_SORT_DIRECTION_ASCENDING:
796 return @"AXSortDirectionAscending";
797 case ui::AX_SORT_DIRECTION_DESCENDING:
798 return @"AXSortDirectionDescending";
799 case ui::AX_SORT_DIRECTION_OTHER:
800 return @"AXSortDirectionUnknown";
801 default:
802 NOTREACHED();
803 }
804
805 return @"";
806 }
807
785 // Returns a subrole based upon the role. 808 // Returns a subrole based upon the role.
786 - (NSString*) subrole { 809 - (NSString*) subrole {
787 ui::AXRole browserAccessibilityRole = [self internalRole]; 810 ui::AXRole browserAccessibilityRole = [self internalRole];
788 if (browserAccessibilityRole == ui::AX_ROLE_TEXT_FIELD && 811 if (browserAccessibilityRole == ui::AX_ROLE_TEXT_FIELD &&
789 GetState(browserAccessibility_, ui::AX_STATE_PROTECTED)) { 812 GetState(browserAccessibility_, ui::AX_STATE_PROTECTED)) {
790 return @"AXSecureTextField"; 813 return @"AXSecureTextField";
791 } 814 }
792 815
793 if (browserAccessibilityRole == ui::AX_ROLE_DESCRIPTION_LIST) 816 if (browserAccessibilityRole == ui::AX_ROLE_DESCRIPTION_LIST)
794 return @"AXDefinitionList"; 817 return @"AXDefinitionList";
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1317 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1295 NSAccessibilityIndexAttribute, 1318 NSAccessibilityIndexAttribute,
1296 NSAccessibilityHeaderAttribute, 1319 NSAccessibilityHeaderAttribute,
1297 NSAccessibilityRowsAttribute, 1320 NSAccessibilityRowsAttribute,
1298 NSAccessibilityVisibleRowsAttribute, 1321 NSAccessibilityVisibleRowsAttribute,
1299 nil]]; 1322 nil]];
1300 } else if ([role isEqualToString:NSAccessibilityCellRole]) { 1323 } else if ([role isEqualToString:NSAccessibilityCellRole]) {
1301 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1324 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1302 NSAccessibilityColumnIndexRangeAttribute, 1325 NSAccessibilityColumnIndexRangeAttribute,
1303 NSAccessibilityRowIndexRangeAttribute, 1326 NSAccessibilityRowIndexRangeAttribute,
1327 @"AXSortDirection",
1304 nil]]; 1328 nil]];
1305 } else if ([role isEqualToString:@"AXWebArea"]) { 1329 } else if ([role isEqualToString:@"AXWebArea"]) {
1306 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1330 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1307 @"AXLoaded", 1331 @"AXLoaded",
1308 @"AXLoadingProgress", 1332 @"AXLoadingProgress",
1309 nil]]; 1333 nil]];
1310 } else if ([role isEqualToString:NSAccessibilityTextFieldRole] || 1334 } else if ([role isEqualToString:NSAccessibilityTextFieldRole] ||
1311 [role isEqualToString:NSAccessibilityTextAreaRole]) { 1335 [role isEqualToString:NSAccessibilityTextAreaRole]) {
1312 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1336 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1313 NSAccessibilityInsertionPointLineNumberAttribute, 1337 NSAccessibilityInsertionPointLineNumberAttribute,
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
1577 if (!browserAccessibility_) 1601 if (!browserAccessibility_)
1578 return [super hash]; 1602 return [super hash];
1579 return browserAccessibility_->GetId(); 1603 return browserAccessibility_->GetId();
1580 } 1604 }
1581 1605
1582 - (BOOL)accessibilityShouldUseUniqueId { 1606 - (BOOL)accessibilityShouldUseUniqueId {
1583 return YES; 1607 return YES;
1584 } 1608 }
1585 1609
1586 @end 1610 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698