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 33a95c4b6dd33dbca8076ac5e76e9dceab2ca08e..8277a8057132182bf4d4246632fe573a8c7c38e3 100644 |
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm |
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm |
@@ -540,6 +540,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]; |
} |
@@ -565,8 +572,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]; |