We use an ivar boolean flag to cache the existance of a live region. This lets us
hide the live region AX attributes and avoid sync round trips to content.
Differential Revision: https://phabricator.services.mozilla.com/D96292
VoiceOver pre-caches live region data and does its own deltas to
know what to parts of a subtree changed, and what to announce
based on AXARIAAtomic and AXARIARelevant.
I added a removed event as well. This will help us cache a "live region"
flag in the main process and avoid sync round trips for attributes when not needed.
Differential Revision: https://phabricator.services.mozilla.com/D96291
Safari maps role=tooltip to AXGroup/AXUserInterfaceTooltip.
I suspect AXHelpTag is meant for native tooltips.
This fixes an issue when VO encounters a tooltip in read-all it jumps out of the web content.
Differential Revision: https://phabricator.services.mozilla.com/D96626
We use an ivar boolean flag to cache the existance of a live region. This lets us
hide the live region AX attributes and avoid sync round trips to content.
Differential Revision: https://phabricator.services.mozilla.com/D96292
VoiceOver pre-caches live region data and does its own deltas to
know what to parts of a subtree changed, and what to announce
based on AXARIAAtomic and AXARIARelevant.
I added a removed event as well. This will help us cache a "live region"
flag in the main process and avoid sync round trips for attributes when not needed.
Differential Revision: https://phabricator.services.mozilla.com/D96291
Both chrome and safari preserve the AXWebArea with no subroles, and apply the application subrole to the root group. Not doing so apparently breaks web applications badly.
Differential Revision: https://phabricator.services.mozilla.com/D96475
Both chrome and safari preserve the AXWebArea with no subroles, and apply the application subrole to the root group. Not doing so apparently breaks web applications badly.
Differential Revision: https://phabricator.services.mozilla.com/D96475
The browser test is really a crash test, but it's really difficult to test a11y APIs properly using the crashtest framework.
Differential Revision: https://phabricator.services.mozilla.com/D95107
AXTopLevelUIElement is not really testable because it doesn't give a useful result in
headless mode. Since it is a clone of AXWindow, this shouldn't be much of an issue.
Differential Revision: https://phabricator.services.mozilla.com/D94154
Besides the ARIA role invalidation, this fixes an issue where the mozAccessible's role is also incorrect when the aria role changes on a body tag.
Depends on D93439
Differential Revision: https://phabricator.services.mozilla.com/D93440
1. Text nodes can be created in the DOM just because there was white space in the source, but this isn't always visible.
We shouldn't create an Accessible in the invisible case.
However, there could be an inline frame after/before an invisible text node, so we still need to check for that.
2. We should create div Accessibles if there are inline-block children such as buttons.
Previously, we weren't doing this because these aren't caught by IsInlineFrame.
We now use IsInlineOutside, which also catches text and br.
Aside from being a bug, this fix was needed in this patch to fix tests which previously created div Accessibles because of invisible text nodes, but lost the Accessibles once this was fixed.
3. Similarly, we should create div Accessibles if there is a previous text sibling.
Again, IsInlineFrame wasn't catching these, but IsInlineOutside does.
4. Adjust various tests to fix assumptions based on the previous behaviour.
Some needed role="none" to force flattening, while some needed an id to force creation.
Differential Revision: https://phabricator.services.mozilla.com/D92170
In many cases with wpt, most of the tests in the file pass, but it is rather time consuming to annotate
.ini files case by case.
Differential Revision: https://phabricator.services.mozilla.com/D91977