Issue 1217 :- CEF3: Accessibility support

Merged
#99 · Created  · Last updated

Merged pull request

Implement accessibility enhancements (issue #1217)

816f700·Author: ·Closed by: ·2017-05-12

Description

Implementation CefClient accessibility in OSR mode (also works for non OSR case.)

  • Exposed API CefBrowserHost::EnableAccessibility(bool isEnabled) that can be used to enable enable accessibility in TreeOnly mode (which corresponds to AccessibilityModeTreeOnly - content/common/accessibility_mode_enums.h Accessibility is on, and the full tree is computed and events are passed to CefAccessibiltyHandler, but platform trees are not created). To Request Accessibilty Notifications, client should enable Accessibilty and implement CefAccessibiltyHandler interface for CefClient.

  • Exposed CefAccessibilityHandler, that a ClientHandler may choose to implement to receive Accessibility Update (deltas) and Location changes (for Windows) and communicate with Accessibility clients.

  • The accessibility tree and event/location update objects are converted to CefValue(CefDictionaryValue) and can be consumed in CefClient implementation or serialised with CEFJSONWrite for logging/consumption in another process.

  • A client can implement NSAccessibility protocol/IAccessible interface that consumes the Accessibility Tree information received in CefAccessibilityHandler and communicate appropriately with MSAA clients or Voice Over for providing Accessibility support.

  • Also as suggested in the original pull request review, added sample cefclient usage for both Windows and MacOSX.

  • Added four unit tests that ensure the API exposed behave correctly.

  • Basic Accessibility tree is present on enabling Accessibility and accessibility updates are disabled on disabling.

  • ARIA information is as expected.

  • Update events like Focus changes etc are received corrected.

  • Location changes events are correctly propagated on element location changes.

0 attachments

0 comments

Loading commits...