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 10788e77cbf3aee2ba6865a912a6e05c6abfa449..92515d542894d31b8b2baa16a18ff8c17eb9871f 100644 |
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm |
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm |
@@ -532,6 +532,13 @@ NSDictionary* attributeToMethodNameMap = nil; |
else |
return NSAccessibilityButtonRole; |
} |
+ |
+ // If this is a web area for a presentational iframe, give it a role of |
+ // something other than WebArea so that the fact that it's a separate doc |
+ // is not exposed to AT. |
+ if (browserAccessibility_->IsWebAreaForPresentationalIframe()) |
+ return NSAccessibilityGroupRole; |
+ |
return [AXPlatformNodeCocoa nativeRoleFromAXRole:role]; |
} |
@@ -557,8 +564,9 @@ NSDictionary* attributeToMethodNameMap = nil; |
IDS_AX_ROLE_HEADING)); |
} |
- if ([role isEqualToString:NSAccessibilityGroupRole] || |
- [role isEqualToString:NSAccessibilityRadioButtonRole]) { |
+ if (([role isEqualToString:NSAccessibilityGroupRole] || |
+ [role isEqualToString:NSAccessibilityRadioButtonRole]) && |
+ !browserAccessibility_->IsWebAreaForPresentationalIframe()) { |
std::string role; |
if (browserAccessibility_->GetHtmlAttribute("role", &role)) { |
ui::AXRole internalRole = [self internalRole]; |