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 b5c8fd3c90dc8afb51505f9e7751b25afded305f..df3263e845ddfb2cc82fe58cb5ce1b117d08bcda 100644 |
--- a/content/browser/accessibility/browser_accessibility_win.cc |
+++ b/content/browser/accessibility/browser_accessibility_win.cc |
@@ -15,6 +15,7 @@ |
#include "base/win/scoped_comptr.h" |
#include "base/win/windows_version.h" |
#include "content/browser/accessibility/browser_accessibility_manager_win.h" |
+#include "content/browser/accessibility/browser_accessibility_state_impl.h" |
#include "content/common/accessibility_messages.h" |
#include "content/public/common/content_client.h" |
#include "ui/base/accessibility/accessible_text_utils.h" |
@@ -2651,6 +2652,12 @@ STDMETHODIMP BrowserAccessibilityWin::QueryService(REFGUID guidService, |
if (!instance_active_) |
return E_FAIL; |
+ // The system uses IAccessible APIs for many purposes, but only |
+ // assistive technology like screen readers uses IAccessible2. |
+ // Enable full accessibility support when IAccessible2 APIs are queried. |
+ if (riid == IID_IAccessible2) |
+ BrowserAccessibilityStateImpl::GetInstance()->EnableAccessibility(); |
+ |
if (guidService == GUID_IAccessibleContentDocument) { |
// Special Mozilla extension: return the accessible for the root document. |
// Screen readers use this to distinguish between a document loaded event |