| 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"]) {
|
|
|