Open jessegreenberg opened 7 years ago
Potential fixes are to have a number of alert elements in the DOM? Not sure if that would fix it, need to test. Or maybe have the queue guess how long the utterance will be (yuck).
Actually @terracoda is this something you would expect? Do you know of any ways to get around this? The result of this is that we hear something like
<alert cut short>
<alert cut short>
I tried to predict how long an utterance might take for the screen reader to say, but bailing, it is too unpredictable and seems too fragile. Im gonna try multiple live elements.
Here is a JSFiddle where we can test some things.
Here is a better way to see this: https://jsfiddle.net/jd4vmqf2/show/
When running with VO I hear "Testing multiple alerts...Testing multiple alerts..." when I want to hear "Testing multiple alerts with a very long string will VO complete this question?" over and over again.
So the multiple element theory isn't working.
@jessegreenberg, are NVDA and JAWS also interrupting themselves? Or is this Voice Over specific?
@jessegreenberg regarding https://github.com/phetsims/a11y-research/issues/47#issuecomment-317886646 all I know is what you know...the ARIA politeness scale does not work very well, but I do not know why it is not queuing the events if they all have the same politeness level.
See also, Léonie Watson 2014.
@jessegreenberg, I found a newer 2017 article, Accessibility in Web Applications with ARIA Live Regions that describes a few more aria attributes, atomic, live, busy, and relevant. I do not know if any of these would be helpful for our implementation. Posted examples are always so much simpler than our use cases with the sims.
Thanks @terracoda, I had never heard of aria-busy. That seems useful if it takes a long time for something to load. In https://github.com/phetsims/chipper/issues/472 we discovered that atomic and relevant attributes were essentially unsupported. That testing was done in August 2016, perhaps things have improved over the year.
I just tested https://jsfiddle.net/jd4vmqf2/show/ with NVDA and Firefox, NVDA doesn't interrupt at all, I hear the full alert.
NVDA also works great when the alert comes through a single element.
There is no interruption with JAWS in Firefox and IE11, it sounds great. So this is just an issue for VO.
@jessegreenberg, interesting, maybe it warrants a bug report?
@terracoda that is what I was wondering too. A workaround for VO could be really tricky and unpredictable, and I don't know if it is worth spending a lot of time on. Lets submit a bug report and also discuss at the next a11y meeting.
@jessegreenberg, nice labels!
@jobara helped investigate and determined that the nested setTimeout was causing some interruption. https://jsfiddle.net/jd4vmqf2/3/
In that JSFiddle, the alerts do not interrupt themselves, but each aria-live element only triggers an update once.
Modifying the example to go through one aria-live element reintroduces the issue https://jsfiddle.net/jd4vmqf2/14/
So it doesn't seem like a problem with setTimeout.
Was wondering if the single character change in the id wasn't enough to cause a full re-read of the entire alert. This example updates with a random sentence: https://jsfiddle.net/jd4vmqf2/17/
It is still interrupting itself.
By the way, Has anyone really been far even as decided to use even go want to do look more like?
Ill send a bug report to Apple.
@jessegreenberg, I don't understand the last sentence in comment https://github.com/phetsims/a11y-research/issues/47#issuecomment-319124672.
Sorry @terracoda, was meant to be a joke, it was a randomly shuffled sentence used to test alerts in my JSFiddle.
Submitted bug report to Apple on 7/31/17.
Laughing now. Delayed reaction :-)
Update 10/3/17, no response from Apple.
Hmm, a full 2 months and no response. Have you submitted a bug report before?
I have not, Ill ask some of the other devs. This stack exchange response is discouraging :( https://apple.stackexchange.com/questions/189126/apple-bug-report-apples-response-time
I have filed quite a few bug reports during the last years. Some still seem to be unchanged since I created them, some got closed silently and there is only one where I ever got notified that the fix would be in the next OS X release.
According to https://discussions.apple.com/docs/DOC-5421 I can 'rank' my bugs to "help get it noticed asap." Ill see if I can find that in the interface.
@jessegreenberg, I was testing/listening again today to BASE, working on ideas for release alerts (for two balloon scenarios), and it seems the velocity phrase is the phrase that gets missed the most. I am wondering if other design considerations recently discussed (e.g., shortening the velocity phrase by moving the balloon name string to the location phrase), and perhaps using aria-roledescription to provide the Indication of grab and/or Indication of release would help at all in this interruption issue.
Should we start 2 new issues in the BASE repo to explore these ideas?
Update 1/8/18: No response from apple on this issue.
Regarding https://github.com/phetsims/a11y-research/issues/47#issuecomment-337900426, sorry I missed this @terracoda, seems useful to create issues in BASE if you haven't done so already, or maybe you explored this elswhere in a design doc.
Update 2/26/18: No response from Apple.
If we provide VO with a number of alerts (say every 500 ms) then VO will interrupt itself when the next alert is set as the text content for the live element. Seems to be the case for all priority levels for ARIA alerts.