Hook up guest browser plugins to the accessibility tree.
This change refactors the existing support for cross-process iframe accessibility and extends it to make guest browser plugins, for example the <webview> element in apps, accessible too. In this change, a new class, FrameAccessibility, manages all links from one frame's accessibility tree to either a child iframe's tree, or a guest web contents' tree. This is cleaner than storing ids in BrowserAccessibility nodes - now the accessibility tree just needs a single bit indicating which nodes in one tree are acting as a host of another tree. FrameAccessibility doesn't try to be efficient yet, it scans its list for every operation - the goal is for it to be simple and safe first. Hash maps could make it much faster later if needed. None of the APIs needed to test this are available outside of content yet. Once http://crbug.com/396137 is finished we'll have a clean way to test this. In the meantime, this can be tested by visiting chrome://accessibility on Windows or Mac, and observing that the accessibility tree for an app includes all nodes within <webview> elements now. Also tested with VoiceOver on Mac; there are some bugs but the <webview> is definitely part of the accessibility tree now. BUG=330307,368298 Review URL: https://codereview.chromium.org/558073002 Cr-Commit-Position: refs/heads/master@{#294883}
Showing
Please register or sign in to comment