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

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

Issue 1063383005: Chromium side Implementation to expose aria properties - setsize & posinset (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 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 9781913557fe81c12b348564a5b04615cdbf4cb2..49883eefa65e65b4fbf81469addc8f273cc518e9 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -108,6 +108,8 @@ NSDictionary* attributeToMethodNameMap = nil;
{ @"AXARIAAtomic", @"ariaAtomic" },
{ @"AXARIABusy", @"ariaBusy" },
{ @"AXARIALive", @"ariaLive" },
+ { @"AXARIAPosInSet", @"ariaPosInSet" },
+ { @"AXARIASetSize", @"ariaSetSize" },
{ @"AXARIARelevant", @"ariaRelevant" },
{ @"AXDropEffects", @"dropeffect" },
{ @"AXGrabbed", @"grabbed" },
@@ -170,6 +172,24 @@ NSDictionary* attributeToMethodNameMap = nil;
browserAccessibility_, ui::AX_ATTR_LIVE_RELEVANT);
}
+- (NSNumber*)ariaPosInSet {
+ if (browserAccessibility_->HasIntAttribute(ui::AX_ATTR_SET_SIZE))
+ int pos = browserAccessibility_->GetIntAttribute(ui::AX_ATTR_POS_IN_SET);
+ else
+ int pos = GetIndexInParent() + 1;
+
+ return [NSNumber numberWithInt:pos];
+}
+
+- (NSNumber*)ariaSetSize {
+ if (browserAccessibility_->HasIntAttribute(ui::AX_ATTR_SET_SIZE))
+ int size = browserAccessibility_->GetIntAttribute(ui::AX_ATTR_SET_SIZE);
+ else
+ int size = browserAccessibility_->PlatformChildCount();
+
+ return [NSNumber numberWithInt:size];
+}
+
// Returns an array of BrowserAccessibilityCocoa objects, representing the
// accessibility children of this object.
- (NSArray*)children {
@@ -1406,6 +1426,15 @@ NSDictionary* attributeToMethodNameMap = nil;
nil]];
}
+ if (browserAccessibility_->GetRole() == ui::AX_ROLE_LIST_BOX_OPTION &&
+ browserAccessibility_->GetParent() &&
+ browserAccessibility_->GetParent()->GetRole() == ui::AX_ROLE_LIST_BOX) {
+ [ret addObjectsFromArray:[NSArray arrayWithObjects:
+ @"AXARIAPosInSet",
+ @"AXARIASetSize",
+ nil]];
+ }
+
// Live regions.
if (browserAccessibility_->HasStringAttribute(
ui::AX_ATTR_LIVE_STATUS)) {

Powered by Google App Engine
This is Rietveld 408576698