RESOLVED MOVED 220054
AX: aria-busy is not being cleared from an element for VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=220054
Summary AX: aria-busy is not being cleared from an element for VoiceOver
Marco Zehe
Reported 2020-12-21 00:12:43 PST
Steps: 1. With VoiceOver on, open this 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> 2. Explore the only div in the document. Expected: VoiceOver should speak the text "updated" after two seconds. It should then treat the div as normal. Actual result: VoiceOver speaks "updated" already after 1 second, and then speaks "website group is busy" when exploring the web contents with VoiceOver navigation commands. This is the case in both Safari 14 as well as Technology Preview 117.
Attachments
Radar WebKit Bug Importer
Comment 1 2020-12-21 00:12:52 PST
chris fleizach
Comment 2 2020-12-22 22:34:19 PST
the "updated" text seems to be set after 1000ms, so having it speak after 1 second seems expected.
chris fleizach
Comment 3 2020-12-22 22:48:27 PST
I've confirmed this is a bug for VoiceOver. I've sent it to the right component.
Marco Zehe
Comment 4 2020-12-22 22:51:01 PST
Thanks, Chris! Does this include both the constant "busy" announcement on elements that had aria-busy set during their live time, but which has now been cleared, as well as the early announcement? Because from what I understand, aria-busy is supposed to suppress live region announcements until it is cleared. So I would have expected, and others have also confirmed this, that the updated text should speak after two seconds, not one.
chris fleizach
Comment 5 2020-12-22 23:09:28 PST
(In reply to mzehe@mozilla.com from comment #4) > Thanks, Chris! Does this include both the constant "busy" announcement on > elements that had aria-busy set during their live time, but which has now > been cleared, as well as the early announcement? Because from what I > understand, aria-busy is supposed to suppress live region announcements > until it is cleared. So I would have expected, and others have also > confirmed this, that the updated text should speak after two seconds, not > one. ah I see. I doubt that aria live region updates are being processed after an Aria-busy is removed. Do you have an specification you can point to that says these aria live regions should be processed after an aria-busy is removed? I didn't find one in WAI-ARIA for aria-busy @JamesCraig?
Marco Zehe
Comment 6 2021-03-26 08:06:47 PDT
The best non-spec explanation I found was this: https://www.digitala11y.com/aria-busy-state/. After aria-busy is cleared, updates should be processed. aria-busy is there to suppress live region changes that may occur as long as aria-busy is true, and then a single update should happen when aria-busy is cleared. There are also examples given.
Canhai Chen
Comment 7 2021-03-26 16:19:22 PDT
I can confirm that if a live region is set to aria-busy="true", VoiceOver will defer the live region update until the region is no longer busy. With the VoiceOver bug being fixed, in the test case above, VO will speak "updated" after 2 seconds when the busy status is removed.
Note You need to log in before you can comment on or make changes to this bug.