Index: content/browser/accessibility/browser_accessibility_win.cc |
diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc |
index c8ee3ab8c123738028d9dd7922b86a0a3a8ded6b..ff3c0123151a8fc2757bcd29e43cb88b253cda29 100644 |
--- a/content/browser/accessibility/browser_accessibility_win.cc |
+++ b/content/browser/accessibility/browser_accessibility_win.cc |
@@ -3086,6 +3086,14 @@ void BrowserAccessibilityWin::OnDataChanged() { |
relation->AddTarget(title_elem_id); |
relations_.push_back(relation); |
} |
+ |
+ // If this is a web area for a presentational iframe, give it a role of |
+ // something other than DOCUMENT so that the fact that it's a separate doc |
+ // is not exposed to AT. |
+ if (IsWebAreaForPresentationalIframe()) { |
+ ia_role_ = ROLE_SYSTEM_GROUPING; |
+ ia2_role_ = ROLE_SYSTEM_GROUPING; |
+ } |
} |
void BrowserAccessibilityWin::OnUpdateFinished() { |
@@ -3555,10 +3563,12 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
ia2_role_ = IA2_ROLE_HEADING; |
break; |
case ui::AX_ROLE_IFRAME: |
- ia_role_ = ROLE_SYSTEM_DOCUMENT; |
ia2_role_ = IA2_ROLE_INTERNAL_FRAME; |
ia_state_ = STATE_SYSTEM_READONLY; |
break; |
+ case ui::AX_ROLE_IFRAME_PRESENTATIONAL: |
+ ia_role_ = ROLE_SYSTEM_GROUPING; |
+ break; |
case ui::AX_ROLE_IMAGE: |
ia_role_ = ROLE_SYSTEM_GRAPHIC; |
ia_state_ |= STATE_SYSTEM_READONLY; |