Firefox/Voiceover and NVDA : aria-busy is not working
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
People
(Reporter: angelidu, Unassigned)
References
Details
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Steps to reproduce:
when you try :
`
<!-- while reloading -->
<section aria-live="polite" aria-busy="true">
<!-- contents -->
</section>
<!-- while stable -->
<section aria-live="polite" aria-busy="false">
<!-- contents -->
</section>`
when a content is loaded, the different screen readers don't say anything
Window Version: 10pro
mac version: Catalina 10.15.7
screen readers:
voiceOver version 10
NVDA version 2019 1.1.1
Actual results:
the screen reader doesn't say anything
Expected results:
once the content is loaded, the screen reader should read the content
Comment 1•4 years ago
|
||
Bugbug thinks this bug should belong to this component, but please revert this change in case of error.
Comment 2•4 years ago
|
||
Test case:
data:text/html,<div id="live" aria-live="polite" aria-busy="true"></div><script>setTimeout(() => live.textContent = 'updated', 1000); setTimeout(() => live.removeAttribute('aria-busy'), 2000);</script>
After 2 seconds, the screen reader should say "updated".
Gecko does fire a state change when busy is removed as it should. However, NVDA doesn't fully support aria-busy for live regions yet; i.e. it ignores a live region if it's busy, but doesn't speak anything when it is no longer busy. So, this is an NVDA bug, not a Firefox bug.
I'm not sure about VoiceOver. NI Eitan on that.
Comment 3•4 years ago
|
||
I just tested this, and got the following results:
- Firefox and Edge don't make VoiceOver speak the live region at all.
- Safari, on both MacOS and iOS, does make VoiceOver speak the word "updated", but after one second already. Furthermore, on Mac, even after ten seconds or so, VoiceOver still says that the web area group is busy. So, VoiceOver does not recognize that aria-busy has already been removed. Safari doesn't seem to fire a state change event here, either.
So, we do have a Mac specific bug that we don't fire a live region update once the busy state goes away.
Comment 4•4 years ago
|
||
(In reply to Marco Zehe (:MarcoZ) from comment #3)
- Safari, on both MacOS and iOS, does make VoiceOver speak the word "updated", but after one second already.
Hmm. After 1 second, the region should still have been busy, so it should only report the update after 2 seconds. What if you never remove aria-busy? Does it still speak the update?
Comment 5•4 years ago
|
||
It does not speak it. But I also found that, with the full test case that does remove aria-busy, the live region doesn't always fire. So there does seem to be a more pronounced timing issue involved with Safari, too.
Comment 6•4 years ago
|
||
We don't support AXElementBusy
, so yeah aria-busy doesn't work..
Safari fires a AXElementBusyChanged
event that needs to be supported to.
I'll file a macOS specific bug for this.
Updated•4 years ago
|
Description
•