diff --git a/src/core/qtwebengine_extras.gypi b/src/core/qtwebengine_extras.gypi
index c0f4ce2319e8bc76d5fcaba86b00b509afe6b46a..d6c116bf343f9a6c533ec848ec1b58ce1a7f0d6b 100644
--- a/src/core/qtwebengine_extras.gypi
+++ b/src/core/qtwebengine_extras.gypi
@@ -37,11 +37,9 @@
       ['exclude', 'browser/accessibility/browser_accessibility_cocoa\\.(cc|h)$'],
       ['exclude', 'browser/accessibility/browser_accessibility_gtk\\.(cc|h)$'],
       ['exclude', 'browser/accessibility/browser_accessibility_mac\\.(cc|h)$'],
-      ['exclude', 'browser/accessibility/browser_accessibility_win\\.(cc|h)$'],
       ['exclude', 'browser/accessibility/browser_accessibility_manager_android\\.(cc|h)$'],
       ['exclude', 'browser/accessibility/browser_accessibility_manager_gtk\\.(cc|h)$'],
       ['exclude', 'browser/accessibility/browser_accessibility_manager_mac\\.(cc|h)$'],
-      ['exclude', 'browser/accessibility/browser_accessibility_manager_win\\.(cc|h)$'],
     ],
     'defines': [
       'TOOLKIT_QT',
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 76d599ea213cb5f2b15972265d5a51b7d04cdd1a..6b52e9314ba5522d4f00614405765e6bb0a59c66 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -41,8 +41,13 @@
 
 #include "render_widget_host_view_qt.h"
 
+#ifdef OS_WIN
+#include "content/browser/accessibility/browser_accessibility_manager_win.h"
+#include "content/browser/accessibility/browser_accessibility_win.h"
+#else
 #include "browser_accessibility_manager_qt.h"
 #include "browser_accessibility_qt.h"
+#endif
 #include "chromium_overrides.h"
 #include "delegated_frame_node.h"
 #include "render_widget_host_view_qt_delegate.h"
@@ -264,8 +269,21 @@ gfx::NativeViewId RenderWidgetHostViewQt::GetNativeViewId() const
 
 gfx::NativeViewAccessible RenderWidgetHostViewQt::GetNativeViewAccessible()
 {
-    CreateBrowserAccessibilityManagerIfNeeded();
-    return GetBrowserAccessibilityManager()->GetRoot();
+#ifdef OS_WIN
+    // keep in sync with render_widget_host_view_win.cpp
+    if (render_widget_host_ &&
+          !BrowserAccessibilityState::GetInstance()->IsAccessibleBrowser()) {
+        // Attempt to detect screen readers by sending an event with our custom id.
+        NotifyWinEvent(EVENT_SYSTEM_ALERT, m_hWnd, kIdCustom, CHILDID_SELF);
+      }
+
+      CreateBrowserAccessibilityManagerIfNeeded();
+
+      return GetBrowserAccessibilityManager()->GetRoot()->
+          ToBrowserAccessibilityWin();
+#else
+    return 0;
+#endif
 }
 
 void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()
@@ -273,10 +291,24 @@ void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()
     if (GetBrowserAccessibilityManager())
         return;
 
+#ifdef OS_WIN
+    HRESULT hr = ::CreateStdAccessibleObject(
+        m_hWnd, OBJID_WINDOW, IID_IAccessible,
+        reinterpret_cast<void **>(&window_iaccessible_));
+    DCHECK(SUCCEEDED(hr));
+
+    SetBrowserAccessibilityManager(
+        new BrowserAccessibilityManagerWin(
+            m_hWnd,
+            window_iaccessible_.get(),
+            BrowserAccessibilityManagerWin::GetEmptyDocument(),
+            this));
+#else
     SetBrowserAccessibilityManager(new content::BrowserAccessibilityManagerQt(
         m_adapterClient->accessibilityParentObject(),
         content::BrowserAccessibilityManagerQt::GetEmptyDocument(),
         this));
+#endif
 }
 
 // Set focus to the associated View component.