mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Implement accessibility enhancements (issue #1217)
- Add new CefBrowserHost::SetAccessibilityState method for toggling accessibility state when readers are detected by the client. - Add new CefAccessibilityHandler interface for the delivery of accessibility notifications to windowless (OSR) clients. - Fix delivery of CefFocusHandler callbacks to windowless clients. - cefclient: Add example windowless accessibility implementation on Windows and macOS. - cefclient: Automatically detect screen readers on Windows and macOS.
This commit is contained in:
committed by
Marshall Greenblatt
parent
64fcfa6068
commit
816f700d3e
@@ -541,6 +541,18 @@ LRESULT CALLBACK RootWindowWin::RootWndProc(HWND hWnd, UINT message,
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case WM_GETOBJECT: {
|
||||
// Only the lower 32 bits of lParam are valid when checking the object id
|
||||
// because it sometimes gets sign-extended incorrectly (but not always).
|
||||
DWORD obj_id = static_cast<DWORD>(static_cast<DWORD_PTR>(lParam));
|
||||
|
||||
// Accessibility readers will send an OBJID_CLIENT message.
|
||||
if (static_cast<DWORD>(OBJID_CLIENT) == obj_id) {
|
||||
if (self->GetBrowser() && self->GetBrowser()->GetHost())
|
||||
self->GetBrowser()->GetHost()->SetAccessibilityState(STATE_ENABLED);
|
||||
}
|
||||
} break;
|
||||
|
||||
case WM_PAINT:
|
||||
self->OnPaint();
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user