-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VoiceOver Screen Reader Issues with Slider Read-Outs #153
Comments
Thanks @JRomero0613, also assigning @terracoda to review. Bugs 1 and 3 look very similar to me, though in bug 3 aria-valuetext is also broken. Basically The second is new, but also feels like VO bug. I think the next step will be to try to reproduce these in vanilla HTML outside of a sim. @zepumph would you mind creating these tests? Do you have access to VoiceOver at all? If not feel free to reassign to me. |
@jessegreenberg, I was just typing that I will test this. Thanks for the assignment. |
My Testing Results: First Bug
|
My Testing Results: Second Bug
My Thoughts @jessegreenberg, is it possible to listen for this VO command and remove focus from the slider, perhaps shifting the virtual cursor to the group heading, Slider Controls? |
My Testing Results: Third Bug
My Thoughts
If we can better manage focus when VO's command-option-shift-up arrow is used, we should be good. |
@zepumph, I am unassigning myself. Do you have enough to go on? Please re-assign if you have questions. |
@terracoda wouldn't that change prevent default behavior for command-option-shift-up arrow, and make it impossible for the user to leave the web content that way? I am not sure if it is possible to prevent default behavior of the virtual cursor. Right now, we aren't doing anything special with focus management in this case. My best guess right now is that VO fails to "blur" the document and element with focus when leaving web content, and so the arrow keys continue to manipulate the slider, thought VO has stopped observing things like |
@jessegreenberg, I certainly do not want to create a trap. I think what I was trying to suggest, is that we force VO to "blur". I do not actually know what "blur" is. What I see and hear is that keyboard focus remains when it likely shouldn't. If this means it is Voice Over bug, then that's ok with me, but I was wondering if it was safe or possible to force a "blur" in this case. |
I agree with @jessegreenberg that preventing default behavior of that key command seems dangerous, but also is it even possible? Will VO pass those keydown events to the browser? Or will they just eat them up because they are first on the software stack? |
@jessegreenberg and @zepumph, and in case I wasn't clear. I don't think that users would intentionally do step 3 upon getting started with the sim. I'll just read a little bit about focus/blur before posting more thoughts. |
@jessegreenberg and @zepumph, and I should also point out that when I do step 3, I do get a beep from VO, which I think is an error beep. This beep is likely useful in telling users that something is not quite as it should be. |
Here's an article from WebAim, you might already be aware, Accessible Javascript Quoting from the article:
It seems like we are not doing any of the things listed above, which is good. Visually and operationally, however, focus is remaining on the slider when a VO user intentionally leaves the slider with command-option-shift-up arrow. @jessegreenberg and @zepumph, how do you determine what is causing the problem?
From the user's side, I am not sure what is happening. EDIT: I changed the phrases to questions ;-) |
@jessegreenberg, @zepumph I posted some questions to the WAI interest group list and I got 4 replies that might shed some light on this problem, and help us understand if we need to change anything. |
Core content of my initial email to WAI:
Response # 1
Response # 2
Response # 3
More to details to come |
My follow-up to # 1
Response # 1, follow-up reply
More details to come. |
Thanks @terracoda - It sounds like responses are indicating that focus is supposed to stay on the slider when leaving the web content, is that how you interpret it too? |
@jessegreenberg, yes, but there's a bit more to the story ... |
My follow-up to # 2
Response # 2, follow-up
|
My follow-p to # 3
No response yet. |
Last follow-up to all
No response yet. |
@jessegreenberg and @zepumph, I think I copied everything I have received into the issue. Based on Response # 3 in #153 (comment), I am wondering if the natural "Group or Dom navigation" is being adversely effected in some way, possibly from the |
I think we have implemented everything correctly. I am just a little unsure on why the virtual cursor goes to the H1 after exiting web navigation on a slider, which is quite a ways down the page? Where does the virtual cursor go, if you exit forms mode while a slider has focus using NVDA? |
@jessegreenberg and @zepumph, I did a couple of other tests with the simple testing environment, and system focus remains on the slider and the slider remains operable, even when reading with the virtual cursor. However, changes to values on the slider in this in-between state are not read out after I do the "stop interacting command". What is read out is where the virtual cursor is, which makes sense. Of course, in the simple test environment, there are no live regions, so no alerts fire wen I move the slider while I am in "non-interactive mode". The only questions that remain in my mind are:
Personally, I think it would be great to have answers to these questions. I do think, however, this issue is not a show-stopper for RIAW. We are managing system focus/keyboard focus correctly as far as I can tell. I will reach out to the WAI one more time. |
@jessegreenberg, and @zepumph I did a little more testing with the simple Slider test environment with
In the sim environment, re-entry always starts at the H1. It may not be typical behaviour, but it is consistent. As mentioned above, I will send one more email to the WAI, to see if it is desirable to silence live region alerts after a user stops interacting, and if there are any known techniques for doing so. |
For the record, see a11y-research repo foe the simple slider test page. |
New questions, Response # 1
Adding
This tip may also be relevant to phetsims/balloons-and-static-electricity#401 (comment) |
This issue is not just for sliders. It's for anything. You always re-enter at the H1, when the VO stop interacting command takes you "out of web content". |
New questions, Response # 2
|
After all the testing and discussion, I think we can defer this issue until it becomes an issue Voice Over users.
I recommend that we do not fix until we have evidence this is a problem for users. |
Just adding last comments
Last response from Responder # 2
|
I agree - no more action needed here. |
Adding last comment from Responder # 1 that came in after closing issue:
My response (no answer yet)
|
Test device: MacBook Pro
Operating System: macOS High Sierra v. 10.13.4
Browser: Safari 11.1
Problem description: For phetsims/qa#125 There are a couple of issues associated with the VoiceOver screen reader on macOS on Safari. The first bug makes it so that the screen reader will read out the value of the slider, but not the resistance. The second bug makes is so that the screen reader will read out one slider value and resistance, but after any other adjustments to the slider only the resistance is read out. The third bug makes it so that only first slider value is read out and any adjustments to the slider afterwards produce no value for the slider or resistance.
Steps to reproduce:
For the first bug:
For the second bug:
For the third bug:
Screenshots:
For the first bug:
For the second bug:
My screen recorder did not allow me to open the sim by clicking the link so the recording starts in the sim, note that you must navigate to the sim via the link and not by opening the link in a new tab.
Google drive link: https://drive.google.com/open?id=1LuZUnMQc2z2ifB99PhV_STxq3WVNlaY9
For the third bug:
Google drive link: https://drive.google.com/open?id=11LEG2BeJ3Fi_IEfA4zeOzg5dhs0pl_9E
Troubleshooting Information:
Name: Resistance in a Wire URL: https://phet-dev.colorado.edu/html/resistance-in-a-wire/1.5.0-rc.5/phet/resistance-in-a-wire_all_phet.html Version: 1.5.0-rc.5 2018-05-31 01:31:21 UTC Features missing: touch Flags: pixelRatioScaling User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15 Language: en-US Window: 1680x989 Pixel Ratio: 2/1 WebGL: WebGL 1.0 (2.1 INTEL-10.32.48) GLSL: WebGL GLSL ES 1.0 (1.20) Vendor: WebKit (WebKit WebGL) Vertex: attribs: 16 varying: 15 uniform: 1024 Texture: size: 16384 imageUnits: 16 (vertex: 16, combined: 16) Max viewport: 8192x8192 OES_texture_float: true Dependencies JSON: {"assert":{"sha":"928741cf","branch":"HEAD"},"axon":{"sha":"cc053b4d","branch":"HEAD"},"brand":{"sha":"89d28f63","branch":"HEAD"},"chipper":{"sha":"54f17be2","branch":"HEAD"},"dot":{"sha":"0dd6ee8e","branch":"HEAD"},"joist":{"sha":"f047fb1b","branch":"HEAD"},"kite":{"sha":"b6071478","branch":"HEAD"},"phet-core":{"sha":"f35ff65e","branch":"HEAD"},"phet-io":{"sha":"d54be499","branch":"HEAD"},"phet-io-website":{"sha":"28284828","branch":"HEAD"},"phet-io-wrapper-classroom-activity":{"sha":"c84e3046","branch":"HEAD"},"phet-io-wrapper-lab-book":{"sha":"ebf7c7dc","branch":"HEAD"},"phet-io-wrappers":{"sha":"ce57c3e2","branch":"HEAD"},"phetcommon":{"sha":"a5a7478c","branch":"HEAD"},"query-string-machine":{"sha":"485e174e","branch":"HEAD"},"resistance-in-a-wire":{"sha":"f80c6036","branch":"HEAD"},"scenery":JG EDITS: For readability
The text was updated successfully, but these errors were encountered: