Check harder before enabling Accessibility support

This commit is contained in:
Paul Betts 2016-10-13 11:46:55 -07:00
parent 7584e73d70
commit 0df21afcdf
3 changed files with 24 additions and 8 deletions

View file

@ -92,15 +92,25 @@ bool NativeWindowViews::PreHandleMSG(
// accessibility object.
case WM_GETOBJECT: {
const DWORD obj_id = static_cast<DWORD>(l_param);
if (enabled_a11y_support_) return false;
if (checked_for_a11y_support_) return false;
if (obj_id == OBJID_CLIENT) {
const auto axState = content::BrowserAccessibilityState::GetInstance();
if (axState && !axState->IsAccessibleBrowser()) {
axState->OnScreenReaderDetected();
enabled_a11y_support_ = true;
Browser::Get()->OnAccessibilitySupportChanged();
}
checked_for_a11y_support_ = true;
if (obj_id != OBJID_CLIENT) {
return false;
}
UINT screenReader = 0;
SystemParametersInfo(SPI_GETSCREENREADER, 0, &screenReader, 0);
if (!screenReader || !UiaClientsAreListening()) {
return false;
}
const auto axState = content::BrowserAccessibilityState::GetInstance();
if (axState && !axState->IsAccessibleBrowser()) {
axState->OnScreenReaderDetected();
enabled_a11y_support_ = true;
Browser::Get()->OnAccessibilitySupportChanged();
}
return false;