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 9b1017d4519e1d5ed90ea6854a9bb09d3d0b2d96..f867a5bf4f7f81e522c0f75b19bc7368a1eb0b1a 100644 |
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm |
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm |
@@ -44,9 +44,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"; |
@@ -524,9 +528,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"}, |
@@ -643,6 +651,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; |
@@ -664,6 +692,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; |
@@ -2602,7 +2650,9 @@ NSString* const NSAccessibilityRequiredAttribute = @"AXRequired"; |
NSAccessibilityRowsAttribute, NSAccessibilityVisibleRowsAttribute, |
NSAccessibilityVisibleCellsAttribute, NSAccessibilityHeaderAttribute, |
NSAccessibilityColumnHeaderUIElementsAttribute, |
- NSAccessibilityRowHeaderUIElementsAttribute |
+ NSAccessibilityRowHeaderUIElementsAttribute, |
+ NSAccessibilityARIAColumnCountAttribute, |
+ NSAccessibilityARIARowCountAttribute, |
]]; |
} else if ([role isEqualToString:NSAccessibilityColumnRole]) { |
[ret addObjectsFromArray:@[ |
@@ -2612,7 +2662,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:@[ |