Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accessibility support #449

Closed
cztomczak opened this issue Aug 8, 2018 · 1 comment
Closed

Accessibility support #449

cztomczak opened this issue Aug 8, 2018 · 1 comment
Milestone

Comments

@cztomczak
Copy link
Owner

cztomczak commented Aug 8, 2018

See CefAccessibilityHandler:
https://github.com/chromiumembedded/cef/search?q=CefAccessibilityHandler

Related:

Doc comments from cef_browser.h:

///
  // Set accessibility state for all frames. |accessibility_state| may be
  // default, enabled or disabled. If |accessibility_state| is STATE_DEFAULT
  // then accessibility will be disabled by default and the state may be further
  // controlled with the "force-renderer-accessibility" and
  // "disable-renderer-accessibility" command-line switches. If
  // |accessibility_state| is STATE_ENABLED then accessibility will be enabled.
  // If |accessibility_state| is STATE_DISABLED then accessibility will be
  // completely disabled.
  //
  // For windowed browsers accessibility will be enabled in Complete mode (which
  // corresponds to kAccessibilityModeComplete in Chromium). In this mode all
  // platform accessibility objects will be created and managed by Chromium's
  // internal implementation. The client needs only to detect the screen reader
  // and call this method appropriately. For example, on macOS the client can
  // handle the @"AXEnhancedUserInterface" accessibility attribute to detect
  // VoiceOver state changes and on Windows the client can handle WM_GETOBJECT
  // with OBJID_CLIENT to detect accessibility readers.
  //
  // For windowless browsers accessibility will be enabled in TreeOnly mode
  // (which corresponds to kAccessibilityModeWebContentsOnly in Chromium). In
  // this mode renderer accessibility is enabled, the full tree is computed, and
  // events are passed to CefAccessibiltyHandler, but platform accessibility
  // objects are not created. The client may implement platform accessibility
  // objects using CefAccessibiltyHandler callbacks if desired.
  ///
  /*--cef()--*/
  virtual void SetAccessibilityState(cef_state_t accessibility_state) = 0;

For implementation hints see calls to SetAccessibilityState in upstream CEF source codes:
https://github.com/chromiumembedded/cef/search?q=SetAccessibilityState&unscoped_q=SetAccessibilityState

See chrome://accessibility url.

cztomczak added a commit that referenced this issue Aug 18, 2018
Add Browser.SetAccessibilityState.
Add AccessibilityHandler (OSR mode).

Add cef.SetGlobalClientHandler.
Add osr_test.py unittest for off-screen rendering mode (#59).
Refactor main_test.py.

Update tools/apidocs.py - generate TOCs by default
Update tools/build_distrib.py - run all unit tests
@cztomczak
Copy link
Owner Author

cztomczak commented Aug 18, 2018

Done in rev e72609c. New APIs: Browser.SetAccessibilityState, AccessibilityHandler for OSR mode.

@cztomczak cztomczak added this to the v66 milestone Aug 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant