commit | ae0e2a6dcdbffb268a26bb531025bd92506bf9ea | [log] [tgz] |
---|---|---|
author | Victor Fei <vicfei@microsoft.com> | Wed Jun 03 17:34:55 2020 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Jun 03 17:34:55 2020 |
tree | 09ba484f1bccfed9e83cdd696f21ce6661bc4774 | |
parent | d9ab1e4797336f691e7303f4353a3b2f598e3ccf [diff] |
Fix for ISelectionItemProvider::Select on focused element The motivation behind this change is that for content like below, Windows Narrator cannot trigger the links in the tabs. <div role="tablist"> <a href="https://twitter.com" role="tab">tab1</a> <a href="https://wikipedia.org" role="tab">tab2</a> <a href="https://w3.org" role="tab">tab3</a> </div> This is because for single-selection container we have the behavior that selection follows focus. https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_selection_follows_focus In Item Navigation, Narrator sets focus first to the tab, but upon focus the a11y selected state is set to true. When Narrator attempts to perform ISelectionItemProvider::Select (Enter) on the tab to trigger the link, no action would occur because the selected state is already set to true. This CL fixes UIA::ISelectionItemProvider::Select() to still perform action::kDoDefault if the element is already selected due to focus. Previously, if an element is already selected, for any reason, Select() would not perform any a11y action. This CL also introduces ax::mojom::BoolAttribute::kSelectedFromFocus and uses it to communicate between renderer process and browser process that an element is selected due to it being focused. This CL should not affect ISelectionItemProvider::Select() behavior on multiselectable containers. AX-Relnotes: Windows Narrator can now trigger default action on an element in a single-selection container such as a tabitem. Bug: 847971 Change-Id: I12026b37ed25b867384895eb520eba658aad6f20 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2219155 Reviewed-by: Kevin Babbitt <kbabbitt@microsoft.com> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Commit-Queue: Victor Fei <vicfei@microsoft.com> Cr-Commit-Position: refs/heads/master@{#774693}
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.