Open Bug 1682063 Opened 4 years ago Updated 4 years ago

Firefox/Voiceover and NVDA : aria-busy is not working

Categories

(Core :: Disability Access APIs, defect)

Firefox 83
defect

Tracking

()

UNCONFIRMED

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

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → Disability Access APIs
Product: Firefox → Core

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.

Flags: needinfo?(eitan)

I just tested this, and got the following results:

  1. Firefox and Edge don't make VoiceOver speak the live region at all.
  2. 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.

(In reply to Marco Zehe (:MarcoZ) from comment #3)

  1. 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?

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.

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.

Flags: needinfo?(eitan)
See Also: → 1682985
Severity: -- → S3
You need to log in before you can comment on or make changes to this bug.