[CTW] Live regions are broken with JAWS
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox107 | --- | verified |
People
(Reporter: Jamie, Assigned: Jamie)
References
Details
(Whiteboard: [ctw-m3])
Attachments
(1 file)
STR:
- Start JAWS.
- Start Firefox with CTW enabled.
- Open this test case:
data:text/html,<div aria-live="polite" id="live"></div><script>let number = 1; function update() { live.textContent = number++; setTimeout(update, 1000); } update();</script>
- Expected: JAWS should read an incrementing number every second; 1, 2, 3, ...
- Actual: JAWS says nothing.
- Press alt+d to focus the address bar.
- Observation: JAWS now reads an incrementing number every second; 1, 2, 3, ...
Step 4 shows that we're exposing the live region correctly, but I don't understand why it only works when focus is outside of the document.
Assignee | ||
Comment 1•2 years ago
|
||
I've sent an email to Vispero asking for help figuring this out, as I have no clue.
Comment 2•2 years ago
|
||
I can reproduce. On the Braille display, I see the number go up every second when in the virtual buffer. Outside the virtual buffer, the numbers get pushed as a "help balloon" text, and also sent to the Braille display as flash messages.
Comment 3•2 years ago
|
||
Another piece of info I just discovered: I pressed "Follow" on a different bug here in Bugzilla. JAWS switched to forms mode, and the live region that says "You are now following this bug" was immediately announced. So it seems to be enough to be in forms mode, but focus can still be in the document, for JAWS to announce the live regions. Only if virtual cursor is on, announcements don't work.
Assignee | ||
Comment 4•2 years ago
|
||
Yeah, I got similar results when I forced the virtual cursor off. Just to make things more fun, I have seen this work a few times even with the virtual cursor on, but refreshing the document breaks it. I still can't fathom what's different between the two situations.
Assignee | ||
Comment 5•2 years ago
|
||
Deferring to m3. I would have liked to get this fixed before we launched the preview, but I'm blocked waiting on info from Vispero.
Assignee | ||
Comment 6•2 years ago
|
||
For the record, this is not fixed by bug 1789378 or bug 1793710.
Assignee | ||
Comment 7•2 years ago
|
||
Assignee | ||
Comment 8•2 years ago
|
||
Some additional info for the record:
JAWS ignores live regions if it thinks the document is busy. All of my debugging suggests we are correctly firing a state change event when the document finishes loading and loses its busy state, and accState is correctly returning a value without the busy state as soon as that event fires (even for callers within NotifyWinEvent). JAWS does not seem to agree. Delaying the state change event by 500 ms also seems to fix this, so I suspect there is some race condition going on here within JAWS.
The other thing worth noting is that currently, the tracking of busy state within JAWS is a single global state for all documents. If one document goes busy, all documents will be treated as busy. If one document stops being busy, all documents will now be treated as not busy. You can reproduce this by doing various things with busy and non-busy documents in two different tabs.
Comment 10•2 years ago
|
||
bugherder |
Updated•2 years ago
|
I managed to reproduce this issue on a 2022-08-21 Nightly build on Windows 10 using the STR from the Description. Verified as fixed on Firefox 107.0b4(build ID: 20221023190001), Nightly 108.0a1(build ID: 20221023100414) on Windows 10.
Description
•