commit | 937a7c66978c4e64887609b54ba01e6becae4cbc | [log] [tgz] |
---|---|---|
author | Joanmarie Diggs <jdiggs@igalia.com> | Wed Oct 07 12:33:20 2020 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Oct 07 12:33:20 2020 |
tree | 416dc450a73c9c5e2309c92b45a32be5dcd71727 | |
parent | 5f44a56d8938e0be1daf1e9efcc7ead0636169ee [diff] |
Fire parent-changed events when an accessible node becomes (un)ignored If an existing node becomes ignored or unignored, we notify platform ATs that the parent of that node has changed children, but not that the children of that node have a changed parent. Some platforms, such as AT-SPI2, cache parent information separately from child information and expect notifications about parent changes to maintain an accurate cache. Address this problem by creating a new AXEventGenerator parent-changed event and emit it on the existing children of a newly-un(ignored) node. It turns out that the ordering of these notifications can also matter. If an about-to-become-focused node is in an about-to-be-reparented subtree, we need to notify ATs about the reparenting before we notify them about the focus change. If we do the reverse, the AT may have stale information about where the new focus is with respect to the accessibility tree which in turn can break AT-driven navigation. But BrowserAccessibilityManager::OnAccessibilityEvents was firing focus events prior to events for any other tree updates in order to ensure screen readers will correctly process events associated with the focused node. We should be able to address both needs by first firing tree updates that come from the ancestors of the focused node, then then firing a focus event if needed, and finally firing the remaining events. Also add expectations for existing related content browser tests for which AuraLinux expectations did not exist, along with fixing a bug in the AuraLinux accessible-event recorder and adding detail for children- changed events. AXRelnotes: The Orca screen reader has a non-performant workaround for the lack of parent-changed notifications, namely to not use the AT-SPI parent caching feature. This fix will make it possible for Orca to use AT-SPI's parent caching and improve performance. Bug: 1047496 Change-Id: I6421543f471054c10cf6a4fa657de4d184cd6bfb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2418652 Commit-Queue: Joanmarie Diggs <jdiggs@igalia.com> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Cr-Commit-Position: refs/heads/master@{#814638}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.