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

Unified Diff: content/browser/accessibility/browser_accessibility_cocoa.mm

Issue 1547643002: ARIA 1.1: implementation for aria-col-* and aria-row-*. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adds MODULES_EXPORT Created 5 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_cocoa.mm
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index a5176c3650730dea1e639d3bef232bdd9cc37c6f..257ea65fa59ae452b84f2db719785cee45916a0d 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -387,10 +387,14 @@ bool InitializeAccessibilityTreeSearch(
{ @"AXAccessKey", @"accessKey" },
{ @"AXARIAAtomic", @"ariaAtomic" },
{ @"AXARIABusy", @"ariaBusy" },
+ { @"AXARIAColumnCount", @"ariaColumnCount" },
+ { @"AXARIAColumnIndex", @"ariaColumnIndex" },
{ @"AXARIALive", @"ariaLive" },
{ @"AXARIASetSize", @"ariaSetSize" },
{ @"AXARIAPosInSet", @"ariaPosInSet" },
{ @"AXARIARelevant", @"ariaRelevant" },
+ { @"AXARIARowCount", @"ariaRowCount" },
+ { @"AXARIARowIndex", @"ariaRowIndex" },
{ @"AXDropEffects", @"dropeffect" },
{ @"AXGrabbed", @"grabbed" },
{ @"AXInvalid", @"invalid" },
@@ -441,6 +445,26 @@ bool InitializeAccessibilityTreeSearch(
GetState(browserAccessibility_, ui::AX_STATE_BUSY)];
}
+- (NSNumber*)ariaColumnCount {
+ if (!browserAccessibility_->IsTableOrGridOrTreeGridRole())
+ return nil;
+ int count = -1;
+ if (!browserAccessibility_->GetIntAttribute(
+ ui::AX_ATTR_ARIA_COL_COUNT, &count))
+ return nil;
+ return [NSNumber numberWithInt:count];
+}
+
+- (NSNumber*)ariaColumnIndex {
+ if (!browserAccessibility_->IsCellOrTableHeaderRole())
+ return nil;
+ int index = -1;
+ if (!browserAccessibility_->GetIntAttribute(
+ ui::AX_ATTR_ARIA_COL_INDEX, &index))
+ return nil;
+ return [NSNumber numberWithInt:index];
+}
+
- (NSString*)ariaLive {
return NSStringForStringAttribute(
browserAccessibility_, ui::AX_ATTR_LIVE_STATUS);
@@ -451,6 +475,26 @@ bool InitializeAccessibilityTreeSearch(
browserAccessibility_, ui::AX_ATTR_LIVE_RELEVANT);
}
+- (NSNumber*)ariaRowCount {
+ if (!browserAccessibility_->IsTableOrGridOrTreeGridRole())
+ return nil;
+ int count = -1;
+ if (!browserAccessibility_->GetIntAttribute(
+ ui::AX_ATTR_ARIA_ROW_COUNT, &count))
+ return nil;
+ return [NSNumber numberWithInt:count];
+}
+
+- (NSNumber*)ariaRowIndex {
+ if (!browserAccessibility_->IsCellOrTableHeaderRole())
+ return nil;
+ int index = -1;
+ if (!browserAccessibility_->GetIntAttribute(
+ ui::AX_ATTR_ARIA_ROW_INDEX, &index))
+ return nil;
+ return [NSNumber numberWithInt:index];
+}
+
- (NSNumber*)ariaPosInSet {
return [NSNumber numberWithInt:
browserAccessibility_->GetIntAttribute(ui::AX_ATTR_POS_IN_SET)];
@@ -1649,8 +1693,7 @@ bool InitializeAccessibilityTreeSearch(
@"AXUIElementsForSearchPredicate",
nil];
- if ([[self role] isEqualToString:NSAccessibilityTableRole] ||
- [[self role] isEqualToString:NSAccessibilityGridRole]) {
+ if (browserAccessibility_->IsTableOrGridOrTreeGridRole()) {
[ret addObjectsFromArray:[NSArray arrayWithObjects:
NSAccessibilityCellForColumnAndRowParameterizedAttribute,
nil]];
@@ -1764,8 +1807,7 @@ bool InitializeAccessibilityTreeSearch(
// Specific role attributes.
NSString* role = [self role];
NSString* subrole = [self subrole];
- if ([role isEqualToString:NSAccessibilityTableRole] ||
- [role isEqualToString:NSAccessibilityGridRole]) {
+ if (browserAccessibility_->IsTableOrGridOrTreeGridRole()) {
[ret addObjectsFromArray:[NSArray arrayWithObjects:
NSAccessibilityColumnsAttribute,
NSAccessibilityVisibleColumnsAttribute,
@@ -1775,6 +1817,8 @@ bool InitializeAccessibilityTreeSearch(
NSAccessibilityHeaderAttribute,
NSAccessibilityColumnHeaderUIElementsAttribute,
NSAccessibilityRowHeaderUIElementsAttribute,
+ @"AXARIAColumnCount",
+ @"AXARIARowCount",
nil]];
} else if ([role isEqualToString:NSAccessibilityColumnRole]) {
[ret addObjectsFromArray:[NSArray arrayWithObjects:
@@ -1783,10 +1827,12 @@ bool InitializeAccessibilityTreeSearch(
NSAccessibilityRowsAttribute,
NSAccessibilityVisibleRowsAttribute,
nil]];
- } else if ([role isEqualToString:NSAccessibilityCellRole]) {
+ } else if (browserAccessibility_->IsCellOrTableHeaderRole()) {
[ret addObjectsFromArray:[NSArray arrayWithObjects:
NSAccessibilityColumnIndexRangeAttribute,
NSAccessibilityRowIndexRangeAttribute,
+ @"AXARIAColumnIndex",
+ @"AXARIARowIndex",
@"AXSortDirection",
nil]];
} else if ([role isEqualToString:@"AXWebArea"]) {

Powered by Google App Engine
This is Rietveld 408576698