-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Keyboard accessibility fails when JAWS is ON #4062
Comments
I also am seeing issues with Jaws on react-select.com and when using react-select. I am currently looking into this as a client desperately wants to support Jaws. If I find what the issue is, I will definitely post it here as an update. |
We are also seeing this behavior with VoiceOver on OSx as well as iOS. When screen readers are active they utilize the arrow keys for primary navigation. The issues that we are seeing is that the captured keydown event for down arrow is not being triggered properly and thus the reader will jump to the next focusable element. Keyboard navigation is flawless when the reader is turned off. |
Greetings @jja-financial-com, @asharron , @RTG-MColeman , As part of the v4.2 release, there were some focused efforts put towards accessibility with two particular updates worth mentioning:
The decision for number two is a "use at your own discretion" for those who are familiar enough with the existing limitations of aria attributes and roles to address things such as "textbox is blank" and multiValue support. There are still a number of issues left to address (many of which documented in the #4414) so it would be appreciated if you find the time to update and let us know if this issue can be closed to draw more attention to work that's still left to be done. |
I'm still seeing this issue as of version 4.3.1. With JAWS enabled, arrow functionality does not cycle through the options in the select, instead just highlighting the option's text, and pressing enter does not select the option. It is worth noting that Chrome Screen Reader and VoiceOver for OSX seem to be working as intended though, as is the case when JAWS is off. |
Hi, |
Greetings @travisroth, #4414 talks a lot about some of the TODO's left for aria-live support. Regarding best practices using aria-attributes, yes, we are familiar with the examples and the original implementation of react-select had used those best practices, but the functionality was lacking due to several limitations. Some of these limitations off the top of memory include:
react-select does not operate as a standard input control as the value is wiped onBlur by default in favor of showing a custom Value component. It's not to say that there aren't viable answers. This is to say that aria-live was implemented as a way to truly have a more customizable and accessible approach which is not as easily implemented relying on aria attributes. One of the reasons the Before introducing these aria attributes as default behavior though, we want to responsibly ensure we have some testing around how it interacts/conflicts with aria-live. @seancurtis is the newest collaborator and has graciously taken on accessibility testing which was delayed by Emotion version conflicts. Sorry if this was lengthy but a good amount of time has gone into looking at current issues and we know we still have a long way to go. |
Greetings @ebonow , If it would be possible to reinstate that early ARIA work and give it a test that may be a worthwhile thing to do to see how much more best practices and screen reader support you may have now. I don't want to discourage accessibility progress no matter how you choose to implement it. I hope this is helpful and encourages to not give up on the ARIA design patterns. |
@travisroth Thanks for the feedback. Without getting into the technical reasons of why and where the ARIA design patterns fail with regards to react-select, I'm afraid it will be difficult to properly have this discussion. Perhaps my greatest frustration is WHY are so many against aria-live? It was developed with accessibility in mind to scale with the growing complexities and controls of modern web development. However, the criticism in many cases feels more about a11y compliance than it does a11y UX. That all said, I provided a link to a code example demonstrating how to add ARIA attributes and there exists a prop to disable aria-live, so the only real thing preventing users from implementing this is themselves and our admittedly poor and under construction documentation. If the attributes can be added, then why don't we just do it ourselves?
What's being done:
|
We received feedback that the MultiValue remove button is not keyboard accessible, which indeed appears to be the case. Since it can be highlighted and gives visual feedback when using the arrow keys you would expect it to behave like a button and respond to "Enter" and "Space" keys after which the corresponding item should be removed from the list, but this does not work. I'm not sure if this is what you are referencing with "Support for isMulti", @ebonow? That said, I was wondering if this is an intentional choice, and, with the increased focus on accessibility, whether this is something that could be addressed and/or changed in the future? |
@pleunv can you please try out the new react-select beta? We've drastically improved support in screen readers in this latest beta — it'd be great if you could try it out. I've created a simple codesandbox example using the latest beta: https://codesandbox.io/s/fervent-star-75spq?file=/src/App.js |
@seancurtis The codesandbox you linked has the same issue. One thing that seems to have changed is the addition of a |
@pleunv a standard keyboard user can clear them by pressing/holding delete/backspace, but we didn't want to make the close button focusable as that means every Select (if there's a value in it) now becomes 2 tab-stops in the UI. We added the role so that AT can access that clear all feature using the virtual cursor (Eg VO + Space would clear for VO). This falls into the grey area for accessibility compliance for when there's an alternate manner to perform a task. |
Hi all, super late to the discussion, but I was having Keyboard nav issues with JAWS turned on with react tabs and found this documentation that fixed the issue: https://docs.microfocus.com/doc/ESM/SaaS/ArrowkeynavigationIssueWithScreenReader I don't know if this issue is the same as mine, but I have included it just incase this helps anyone else.
Hope this helps! |
Hi,
We are doing a accessibility testing on a widget that we developed containing a react select drop down. Using JAWS screen reader, the select is not usable via keyboard. Down arrow key opens the select but pressing enter while focusing on a new option will not change the value of the select.
Initially we thought this was due to some misconfiguration from our side, but testing on examples provided at react-select.com also produces the same incorrect result.
The text was updated successfully, but these errors were encountered: