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

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: Separated ARIA grid and HTML table tests. 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 { @"AXARIARelevant", @"ariaRelevant" }, 111 { @"AXARIARelevant", @"ariaRelevant" },
112 { @"AXInvalid", @"invalid" }, 112 { @"AXInvalid", @"invalid" },
113 { @"AXLoaded", @"loaded" }, 113 { @"AXLoaded", @"loaded" },
114 { @"AXLoadingProgress", @"loadingProgress" }, 114 { @"AXLoadingProgress", @"loadingProgress" },
115 { @"AXPlaceholder", @"placeholder" }, 115 { @"AXPlaceholder", @"placeholder" },
116 { @"AXRequired", @"required" }, 116 { @"AXRequired", @"required" },
117 { @"AXSortDirection", @"sortDirection" },
117 { @"AXVisited", @"visited" }, 118 { @"AXVisited", @"visited" },
118 }; 119 };
119 120
120 NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; 121 NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
121 const size_t numAttributes = sizeof(attributeToMethodNameContainer) / 122 const size_t numAttributes = sizeof(attributeToMethodNameContainer) /
122 sizeof(attributeToMethodNameContainer[0]); 123 sizeof(attributeToMethodNameContainer[0]);
123 for (size_t i = 0; i < numAttributes; ++i) { 124 for (size_t i = 0; i < numAttributes; ++i) {
124 [dict setObject:attributeToMethodNameContainer[i].methodName 125 [dict setObject:attributeToMethodNameContainer[i].methodName
125 forKey:attributeToMethodNameContainer[i].attribute]; 126 forKey:attributeToMethodNameContainer[i].attribute];
126 } 127 }
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 768
768 return ret; 769 return ret;
769 } 770 }
770 771
771 // Returns the size of this object. 772 // Returns the size of this object.
772 - (NSValue*)size { 773 - (NSValue*)size {
773 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect(); 774 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect();
774 return [NSValue valueWithSize:NSMakeSize(bounds.width(), bounds.height())]; 775 return [NSValue valueWithSize:NSMakeSize(bounds.width(), bounds.height())];
775 } 776 }
776 777
778 - (NSString*)sortDirection {
779 int sortDirection;
780 if (!browserAccessibility_->GetIntAttribute(
781 ui::AX_ATTR_SORT_DIRECTION, &sortDirection))
782 return @"";
783
784 switch (sortDirection) {
785 case ui::AX_SORT_DIRECTION_Unsorted:
dmazzoni 2015/01/27 18:59:17 enum should be all caps
786 return @"";
787 case ui::AX_SORT_DIRECTION_ASCENDING:
788 return @"AXSortDirectionAscending";
789 case ui::AX_SORT_DIRECTION_DESCENDING:
790 return @"AXSortDirectionDescending";
791 case ui::AX_SORT_DIRECTION_OTHER:
792 return @"AXSortDirectionUnknown";
793 default:
794 NOTREACHED();
795 }
796
797 return @"";
798 }
799
777 // Returns a subrole based upon the role. 800 // Returns a subrole based upon the role.
778 - (NSString*) subrole { 801 - (NSString*) subrole {
779 ui::AXRole browserAccessibilityRole = [self internalRole]; 802 ui::AXRole browserAccessibilityRole = [self internalRole];
780 if (browserAccessibilityRole == ui::AX_ROLE_TEXT_FIELD && 803 if (browserAccessibilityRole == ui::AX_ROLE_TEXT_FIELD &&
781 GetState(browserAccessibility_, ui::AX_STATE_PROTECTED)) { 804 GetState(browserAccessibility_, ui::AX_STATE_PROTECTED)) {
782 return @"AXSecureTextField"; 805 return @"AXSecureTextField";
783 } 806 }
784 807
785 if (browserAccessibilityRole == ui::AX_ROLE_DESCRIPTION_LIST) 808 if (browserAccessibilityRole == ui::AX_ROLE_DESCRIPTION_LIST)
786 return @"AXDefinitionList"; 809 return @"AXDefinitionList";
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after
1283 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1306 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1284 NSAccessibilityIndexAttribute, 1307 NSAccessibilityIndexAttribute,
1285 NSAccessibilityHeaderAttribute, 1308 NSAccessibilityHeaderAttribute,
1286 NSAccessibilityRowsAttribute, 1309 NSAccessibilityRowsAttribute,
1287 NSAccessibilityVisibleRowsAttribute, 1310 NSAccessibilityVisibleRowsAttribute,
1288 nil]]; 1311 nil]];
1289 } else if ([role isEqualToString:NSAccessibilityCellRole]) { 1312 } else if ([role isEqualToString:NSAccessibilityCellRole]) {
1290 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1313 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1291 NSAccessibilityColumnIndexRangeAttribute, 1314 NSAccessibilityColumnIndexRangeAttribute,
1292 NSAccessibilityRowIndexRangeAttribute, 1315 NSAccessibilityRowIndexRangeAttribute,
1316 @"AXSortDirection",
1293 nil]]; 1317 nil]];
1294 } else if ([role isEqualToString:@"AXWebArea"]) { 1318 } else if ([role isEqualToString:@"AXWebArea"]) {
1295 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1319 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1296 @"AXLoaded", 1320 @"AXLoaded",
1297 @"AXLoadingProgress", 1321 @"AXLoadingProgress",
1298 nil]]; 1322 nil]];
1299 } else if ([role isEqualToString:NSAccessibilityTextFieldRole] || 1323 } else if ([role isEqualToString:NSAccessibilityTextFieldRole] ||
1300 [role isEqualToString:NSAccessibilityTextAreaRole]) { 1324 [role isEqualToString:NSAccessibilityTextAreaRole]) {
1301 [ret addObjectsFromArray:[NSArray arrayWithObjects: 1325 [ret addObjectsFromArray:[NSArray arrayWithObjects:
1302 NSAccessibilityInsertionPointLineNumberAttribute, 1326 NSAccessibilityInsertionPointLineNumberAttribute,
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
1560 if (!browserAccessibility_) 1584 if (!browserAccessibility_)
1561 return [super hash]; 1585 return [super hash];
1562 return browserAccessibility_->GetId(); 1586 return browserAccessibility_->GetId();
1563 } 1587 }
1564 1588
1565 - (BOOL)accessibilityShouldUseUniqueId { 1589 - (BOOL)accessibilityShouldUseUniqueId {
1566 return YES; 1590 return YES;
1567 } 1591 }
1568 1592
1569 @end 1593 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698