-
Notifications
You must be signed in to change notification settings - Fork 0
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
Submit bug report to Freedom Scientific for arrow key event handling #9
Comments
Here is a JSFiddle that exmplifies this problem that we could submit in a bug report. |
Here is a link that shows an example bug report to JAWS. It is intended for the Beta bug reports, but I imagine this style could be used for any bug report. https://www.freedomscientific.com/Forms/JAWSBetaReport/BugReportExample This is probably the best place to submit the report: |
Here is an a rough draft of the bug report that we might send: //----------------------------------------------------------------------------------------------------------------- Summary: With Chrome 54, IE 11, and Firefox 50, JAWS fires incorrect keyup events when an arrow key is pressed down on a DOM element with the ARIA application role. Steps to reproduce: Open the following JSFiddle in any browser: https://jsfiddle.net/jk757xcz/5/show Description/Comment: Problem: If an arrow key is pressed and held down, JAWS will add errant keyup events every time a keydown event is fired. This prevents use of interactive content which requires the keyup event to listen for when the key is released. //----------------------------------------------------------------------------------------------------------------- Some helpful review comments from @jobara and @terracoda:
|
Here is an update to the bug report based on the above recommendations: //----------------------------------------------------------------------------------------------------------------- With Chrome 54, IE 11, and Firefox 50, JAWS fires incorrect keyup events when an arrow key is pressed down on a DOM element with the ARIA application role. Steps to reproduce:
Description/Comment: Problem: If an arrow key is pressed and held down, JAWS will add errant keyup events every time a keydown event is fired. To handle complex keyboard interactions in HTML5, it is necessary to use a combination of keyup and keydown events to track which keys are down, and for how long. The method is to use "keydown" and "keyup" events to update a representative keystate object that tracks which keys are currently pressed. A game loop updates the application based on the state of this object. Since JAWS fires incorrect keyup events, it is impossible to determine which keys are pressed by the user at any given time. Example Application: http://www.colorado.edu/physics/phet/dev/html/balloons-and-static-electricity/1.1.5-dev.1/balloons-and-static-electricity_en.html //----------------------------------------------------------------------------------------------------------------- |
Final draft: //----------------------------------------------------------------------------------------------------------------- With Chrome 54, IE 11, and Firefox 50, JAWS fires incorrect keyup events when an arrow key is held down on a DOM element with the ARIA application role. Steps to reproduce: Open the following JSFiddle in any browser: https://jsfiddle.net/jk757xcz/5/show Problem: If an arrow key is pressed and held down, JAWS will add errant keyup events every time a keydown event is fired. To handle multiple key presses for keys that are not modifiers in HTML5, it is necessary to use a combination of "keyup" and "keydown" events to track which keys are down and for how long. The method is to use "keydown" and "keyup" events to update a representative keystate object that tracks which keys are currently pressed. A game loop updates the application based on the state of this object. Since JAWS fires incorrect keyup events, it is impossible to determine which keys are pressed by the user at any given time. Example Application: http://www.colorado.edu/physics/phet/dev/html/balloons-and-static-electricity/1.1.5-dev.3/balloons-and-static-electricity_en.html //----------------------------------------------------------------------------------------------------------------- The JSFiddle example was sent to a JAWS 16 user who said she would use the example and let us know if the bug can be reproduced. |
@jessegreenberg We can see how this goes before submitting another bug report regarding the switch role - i.e., lack of fall back behaviour to role checkbox. |
Right @terracoda, not part of the submision, but corrected in the comment, thanks!
Sounds great, it will be interesting to hear the response from Freedom Scientific. |
A JAWS user verified this issue by letting us know that they saw the following output from the above JSFiddle after pressing and holding one of the arrow keys:
This is what we saw as well, it is good to have this verified. I will submit the bug report today. |
The bug report cannot exceed 1000 characters, so I will have to trim the report by quite a bit (600 characters) |
Report submitted on 12/7/16 - removing assignment until we hear back. |
Freedom Scientific responded with the following:
|
I tried the suggested user setting change. This does not fix the issue, but disables any events from firing while the arrow keys are pressed and held down. WASD keys work as usual regardless of this setting. In the JSFiddle example (https://jsfiddle.net/jk757xcz/5/show) if I press and hold an arrow key I see one key down event and one key up event so the errant key up event is still being fired. I am responding to Freedom Scientific with this information now. |
@jessegreenberg thanks for the update and following up with them. |
I agree, @jessegreenberg, great work. Looking forward to next response. |
Thanks! I am going to remove my assignment again until we hear back from Freedom Scientific. |
VFO responded by asking that I call the support team so that they can better understand the problem. I will do so today. |
@jessegreenberg, awesome :-) |
I called the main VFO line and explained the issue. They weren't sure how to proceed during the call, but said they would discuss with their ARIA group and get back sometime tomorrow (12/16/16). |
Got a response 12/16/16 -
Removing my assignment until we hear back again. |
VFO responded this afternoon (12/21/16). I am going to go ahead and paste the response here:
|
@jessegreenberg, I think we discussed these "special keys" settings in another issue a long time ago. There was something about a new JAWS specific key settings file. Not sure if I can find the issue where we discussed this, or if it is related, but this "jkm reference" sounds very familiar. |
I also tried changing the name of the file to "www.colorado.edu.jkm", and with that change the arrow keys are working for the versions of the sim that are already deployed to phet dev. @terracoda I remember discussing the |
Yep, @jessegreenberg, I am mistaken, I was thinking of the update to JAWS 16 that uses <div data-at-shortcutkeys={‘j’: ‘Key to navigate to next post’, ‘q’: ‘Key to place focus in chat’}></div> Léonie Watson discusses issues around this here: |
Watson's article is a good thing to keep in mind when discuss further how to handle PhET shortcuts, in a more general sense. |
Yes, I agree @terracoda! Watson makes great points (as usual :) |
I responded on 12/21/16 with the following:
|
@jessegreenberg, in your next response, if needed, you may want to directly quote and reference the ARIA 1.1 Standard,
And perhaps adding a text-based explanation of an example may be useful as well. Such as, In the case of the PhET interactive science simulations, there are many interactions that may not be supported by a native |
Yes, that is a good idea @terracoda. I am going to remove assignment from this issue until we hear back from them |
@jessegreenberg @terracoda - nice work folks, hopefully we hear back soon. Since it's been awhile, and through the holidays, @jessegreenberg you might want to send friendly reminder email if we don't hear back next week. |
Good idea @emily-phet, I will reassign to me and create a self-reminder to send a friendly ping later this week. |
I sent an email reminder to VFO on 1/17/16. |
They responded with
|
VFO responded with:
Seems like great news! This suggests that they agree with our assessment that JAWS should be responsible removing scripts so arrow keys can be used normally with elements under the aria application role. I have no idea how they will approach this in terms of priority or what the timeline will look like. |
@jessegreenberg That does seem like great news! Perhaps at the CSUN conference you can speak with them about this and get a sense of timeline. |
@jessegreenberg, I agree, this is great news! And a face to face discussion with a demonstration of the simulations will perhaps help create some understanding about the issue. |
@jessegreenberg Can you update this issue with any information you gained from the CSUN meeting? |
VFO now has a public bug tracker for developers. We should resubmit this report to them through that service. |
From phetsims/balloons-and-static-electricity#205 we showed that JAWS does not allow for press and hold behavior with the arrow keys due to the way the AT injects 'fake' keyup events when the the user presses and holds an arrow key. Here is an example of the events when I press and hold the right arrow key without JAWS:
And with JAWS:
We should submit a bug report to Freedom Scientific about this issue.
The text was updated successfully, but these errors were encountered: