diff --git a/atom/browser/native_window_views.h b/atom/browser/native_window_views.h index 862cd5458bb6..bcf3ca8bd16f 100644 --- a/atom/browser/native_window_views.h +++ b/atom/browser/native_window_views.h @@ -199,6 +199,10 @@ class NativeWindowViews : public NativeWindow, // In charge of running taskbar related APIs. TaskbarHost taskbar_host_; + + // If true we have enabled a11y + bool enabled_a11y_support_; + #endif // Handles unhandled keyboard messages coming back from the renderer process. diff --git a/atom/browser/native_window_views_win.cc b/atom/browser/native_window_views_win.cc index b395c4dd9bdf..038ab105222d 100644 --- a/atom/browser/native_window_views_win.cc +++ b/atom/browser/native_window_views_win.cc @@ -91,11 +91,16 @@ bool NativeWindowViews::PreHandleMSG( // accessibility object. case WM_GETOBJECT: { const DWORD obj_id = static_cast(l_param); + if (enabled_a11y_support_) return false; + if (obj_id == OBJID_CLIENT) { const auto axState = content::BrowserAccessibilityState::GetInstance(); - if (axState && !axState->IsAccessibleBrowser()) + if (axState && !axState->IsAccessibleBrowser()) { axState->OnScreenReaderDetected(); + enabled_a11y_support_ = true; + } } + return false; } case WM_COMMAND: