mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-01 00:32:11 +00:00
29e4eb9ab1
Talkback users expect that when you navigate past the end of the text in a node, Talkback will move into the next node and navigate there. However, even though text navigation is async (client performs an action on the focused accessible and then waits for a text traversal event), firing a traversal event with a different accessible from the focused accessible is not supported by Talkback. Firing a11y focus on the new node (as we did previously) doesn't fix this, but instead causes the entire node to be reported, among other weird behaviour. 1. Don't fire a11y focus for text traversal. Aside from Talkback reporting the entire node, this was also confusing Talkback, causing it to try to navigate several times into the new node. 2. When navigating text, cache whether we're at either edge. We do this because we need to be able to synchronously query whether we're at the edge, but we do navigation async. Special handling is needed for words at the end because words don't include trailing space. 3. When performing a text navigation action, check if we're already at the edge using the cache described above. If we are, synchronously return false, as Talkback expects. Talkback will then move to the next/previous node itself and navigate the text there. Differential Revision: https://phabricator.services.mozilla.com/D57926 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
AccessibleWrap.cpp | ||
AccessibleWrap.h | ||
ApplicationAccessibleWrap.h | ||
ARIAGridAccessibleWrap.h | ||
DocAccessibleWrap.cpp | ||
DocAccessibleWrap.h | ||
HTMLTableAccessibleWrap.h | ||
HyperTextAccessibleWrap.h | ||
ImageAccessibleWrap.h | ||
moz.build | ||
Platform.cpp | ||
ProxyAccessibleWrap.cpp | ||
ProxyAccessibleWrap.h | ||
RootAccessibleWrap.cpp | ||
RootAccessibleWrap.h | ||
SessionAccessibility.cpp | ||
SessionAccessibility.h | ||
TextLeafAccessibleWrap.h | ||
TraversalRule.cpp | ||
TraversalRule.h | ||
XULListboxAccessibleWrap.h | ||
XULMenuAccessibleWrap.h | ||
XULTreeGridAccessibleWrap.h |