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 545a8d42e430dd860a4a11a7adbe57bd122db45e..041793a5364bd7ca88ea7b57a2a0ef5939802a3c 100644 |
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm |
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm |
@@ -51,9 +51,13 @@ namespace { |
// Private WebKit accessibility attributes. |
NSString* const NSAccessibilityARIAAtomicAttribute = @"AXARIAAtomic"; |
NSString* const NSAccessibilityARIABusyAttribute = @"AXARIABusy"; |
+NSString* const NSAccessibilityARIAColumnCountAttribute = @"AXARIAColumnCount"; |
+NSString* const NSAccessibilityARIAColumnIndexAttribute = @"AXARIAColumnIndex"; |
NSString* const NSAccessibilityARIALiveAttribute = @"AXARIALive"; |
NSString* const NSAccessibilityARIAPosInSetAttribute = @"AXARIAPosInSet"; |
NSString* const NSAccessibilityARIARelevantAttribute = @"AXARIARelevant"; |
+NSString* const NSAccessibilityARIARowCountAttribute = @"AXARIARowCount"; |
+NSString* const NSAccessibilityARIARowIndexAttribute = @"AXARIARowIndex"; |
NSString* const NSAccessibilityARIASetSizeAttribute = @"AXARIASetSize"; |
NSString* const NSAccessibilityAccessKeyAttribute = @"AXAccessKey"; |
NSString* const NSAccessibilityDropEffectsAttribute = @"AXDropEffects"; |
@@ -528,9 +532,13 @@ NSString* const NSAccessibilityRequiredAttribute = @"AXRequired"; |
} attributeToMethodNameContainer[] = { |
{NSAccessibilityARIAAtomicAttribute, @"ariaAtomic"}, |
{NSAccessibilityARIABusyAttribute, @"ariaBusy"}, |
+ {NSAccessibilityARIAColumnCountAttribute, @"ariaColumnCount"}, |
+ {NSAccessibilityARIAColumnIndexAttribute, @"ariaColumnIndex"}, |
{NSAccessibilityARIALiveAttribute, @"ariaLive"}, |
{NSAccessibilityARIAPosInSetAttribute, @"ariaPosInSet"}, |
{NSAccessibilityARIARelevantAttribute, @"ariaRelevant"}, |
+ {NSAccessibilityARIARowCountAttribute, @"ariaRowCount"}, |
+ {NSAccessibilityARIARowIndexAttribute, @"ariaRowIndex"}, |
{NSAccessibilityARIASetSizeAttribute, @"ariaSetSize"}, |
{NSAccessibilityAccessKeyAttribute, @"accessKey"}, |
{NSAccessibilityChildrenAttribute, @"children"}, |
@@ -647,6 +655,26 @@ NSString* const NSAccessibilityRequiredAttribute = @"AXRequired"; |
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 { |
if (![self instanceActive]) |
return nil; |
@@ -668,6 +696,26 @@ NSString* const NSAccessibilityRequiredAttribute = @"AXRequired"; |
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*)ariaSetSize { |
if (![self instanceActive]) |
return nil; |
@@ -2474,7 +2522,9 @@ NSString* const NSAccessibilityRequiredAttribute = @"AXRequired"; |
NSAccessibilityRowsAttribute, NSAccessibilityVisibleRowsAttribute, |
NSAccessibilityVisibleCellsAttribute, NSAccessibilityHeaderAttribute, |
NSAccessibilityColumnHeaderUIElementsAttribute, |
- NSAccessibilityRowHeaderUIElementsAttribute |
+ NSAccessibilityRowHeaderUIElementsAttribute, |
+ NSAccessibilityARIAColumnCountAttribute, |
+ NSAccessibilityARIARowCountAttribute, |
]]; |
} else if ([role isEqualToString:NSAccessibilityColumnRole]) { |
[ret addObjectsFromArray:@[ |
@@ -2484,7 +2534,10 @@ NSString* const NSAccessibilityRequiredAttribute = @"AXRequired"; |
} else if ([role isEqualToString:NSAccessibilityCellRole]) { |
[ret addObjectsFromArray:@[ |
NSAccessibilityColumnIndexRangeAttribute, |
- NSAccessibilityRowIndexRangeAttribute, @"AXSortDirection" |
+ NSAccessibilityRowIndexRangeAttribute, |
+ NSAccessibilityARIAColumnIndexAttribute, |
+ NSAccessibilityARIARowIndexAttribute, |
+ @"AXSortDirection", |
]]; |
} else if ([role isEqualToString:@"AXWebArea"]) { |
[ret addObjectsFromArray:@[ |