phetsims / ohms-law

"Ohm's Law" is an educational simulation in HTML5, by PhET Interactive Simulations.
http://phet.colorado.edu/en/simulation/ohms-law
GNU General Public License v3.0
5 stars 6 forks source link

Up/Down Arrows do not work on sliders with Voice Over enabled #96

Closed terracoda closed 6 years ago

terracoda commented 7 years ago

Sim Version: 1.4.0-dev.14

This might be a known issue.

Left/Right or Up/Down work fine when Voice Over (VO) is not enabled.

When VO is enabled, I have to first press VO's interact keys (Control-Option-Shift-Down Arrow) to interact with the slider, and then only the Left and Right Arrow keys work. If I press Up/Or Down, focus is moved off the slider. If I hold Control or Control-Option plus the Up/Down Arrows, then the slider moves up and down like the Left/Right Arrow keys do without the modifier keys.

Not sure if this is a VO issue, or a Keyboard focus issue, or something else.

If solely a VO issue, this might be tracked in another issue.

jessegreenberg commented 7 years ago

@terracoda we discovered that this is how VO interacts with all sliders when we deployed john-travoltage, the same behavior can be observed there. My understanding is that this is not a bug, but the way VO works with <input type="range">. You must 'enter' the slider with 'ctrl + option + shift + down arrow', and then only the left/right arrow keys will work. Can you please verify?

terracoda commented 7 years ago

@jessegreenberg, I was pretty sure this was a known issue, but I couldn't find it.

Yes, that is how it works. The Left and Right Arrows work fine after I enter the slider with 'ctrl + option + shift + down arrow'. The Up/Down Arrow keys do not work on their own for interacting with a slider.

Strangely, though there are few other things at play:

  1. VO help text says to "Use the Control-Option Left and Right Arrow to change the slider value". This works, but the alerts are suppressed. I see the alert quickly flash, but it is not announced by VO when holding Control-Option Left Arrow or Control-Option Right Arrow.

  2. Holding down Option key and pressing Left/Right or Up/Down work fine and I also get the values and the alerts.

  3. Holding down Command key and pressing Left/Right or Up/Down work fine to change values, but I do not get alerts.

I am not sure why the Option key as a modifier key works so nicely, and also do not know whey the Command key as a modifier key works only half way.

Not sure if this is by accident or by design, or some kind of VO quirk.

terracoda commented 7 years ago

AND I do not know why the native VO modifier keys would suppress the alerts!

jessegreenberg commented 7 years ago

@terracoda that is very odd behavior! Not sure why certain modifier keys would supress alerts. According to https://dequeuniversity.com/screenreaders/voiceover-keyboard-shortcuts, Control is supposed to stop reading, that doesn't explain why Command is stopping things. @terracoda how would you like to proceed?

terracoda commented 7 years ago

@jessegreenberg, I don't think we have to worry about numbers 2 and 3. 2 is a pleasant surprise, and 3 is just bizarre.

However, I am wondering if there is a way to find out why number 1 is suppressing the alert, since using Control-Option-Left/Right Arrow is the native VO way to change a slider. It would be good to know why our implementation does not work in this case.

I see the alert flash quickly into the VO box and then disappear. It is never read. Is there anyway to check why?

jessegreenberg commented 7 years ago

Sounds good @terracoda, we can look into why this is happening. My fear is that this is a general problem with VoiceOver alerts, not a PhET bug. Since we can see the alert flash in the VO readout, it looks like we are successfully sending the alert to the AT, but the AT is failing to read it.

The first step will be to figure out if this really is a PhET problem or if it is general, so we should start with a JSFiddle with a very simple test case that mixes HTML sliders and aria-live alerts.

jessegreenberg commented 7 years ago

@jessegreenberg and @mbarlow12 are going to look into this on Friday.

jessegreenberg commented 6 years ago

We tried to reproduce the bug but couldn't reproduce it in Safari 10.0.1 and Safari 11.0. Here is what we tried:

@terracoda what version of Safari are you using? Are these the correct steps to reproduce the problem?

terracoda commented 6 years ago

@jessegreenberg, these were the correct steps to reproduce the issue. I just upgraded my system, and I am no longer experiencing suppressed alerts in scenario number 1 (Using arrow keys with the VO keys Control and Option pressed).

Pressing and holding the Command key while using the arrow keys does suppress alerts, but I do not think this is a problem as it is not a use pattern recommended by VO.

I am closing this issue.