Voiceover accessibility does not work in RemoteMacViews.
The general scheme of how to make this work is as follows:
- create a mechanism for serializing the a11y protocol methods
- this mostly involves returning data types (strings, ranges, etc)
- some of these methods return NSObjects from a11y code
- for those NSObjects in the browser, create a uint<->weak NSObject map
- in the app shim process, return a shim (possibly ephemeral) NSObject that has the corresponding uint
- when a11y methods are queried on this object, use the aforementioned serialization to get the values
- specifying this uint handle to reference the NSObject in the browser
- of note is that some permanent objects support parts of this protocol as well
- RenderWidgetHostViewCocoa, BridgedContentView, WebContentsViewCocoa, NativeWidgetMacNSWindow
An alternative scheme would be to synchronize the full AX tree from the browser to the app shim process (and do this for both the browser and for web contents). This is probably not feasible.
Comment 1 by ccameron@chromium.org
, Nov 6