-
Notifications
You must be signed in to change notification settings - Fork 842
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
[EuiComboBox] Rebuild with EuiSelectable #2841
Comments
As part of this work, also mark |
…153808) ## Summary Related to #27749 While the [EuiComboBox rebuild](elastic/eui#2841) is in progress, this PR addresses missing aria properties and fixes option announcements for the `run as user` combo. It additionally adds an aria-label for the Spaces Navigation EuiSelectable that I found was missing. ### Testing - Add all sample data - Edit a non-reserved role - Turn on a screen reader (NVDA is recommended, but VoiceOver will do) - Tab through the controls on the Edit role screen. When you arrive in a combo box you may or may not hear an announcement declaring the name of the combo box (this is expected, especially with VoiceOver). - With focus in a combo box press the down arrow key. Verify the options are announced as you traverse them with the down and up arrow keys. - If there was success in option announcement, press escape key and verify that the name of the combo box is announced. You may have to press escape twice when using NVDA. Note: It seems to be the consensus that this is best we can do with the existing implementation of EuiComboBox, which is partly why it is being rebuilt with the EuiSelectable component.
To add more requested context, EuiSelectable has the best built-in accessibility by far (semantic HTML, keyboard navigation, screen reader announcements) and we should dogfood that a11y instead of rewriting it for the 4+ selection components we use. In this case, EuiComboBox has several reported a11y and perf issues (in the github mentions history - see above) that would likely be resolved by this refactor. |
👋 Hi there - this issue hasn't had any activity in 6 months. If the EUI team has not explicitly expressed that this is something on our roadmap, it's unlikely that we'll pick this issue up. We would sincerely appreciate a PR/community contribution if this is something that matters to you! If not, and there is no further activity on this issue for another 6 months (i.e. it's stale for over a year), the issue will be auto-closed. |
Just a quick update. We're putting a 3 month window on completing this issue. I believe it should also solve the following issues: #7289 EDIT: I think we'll be targeting 8.16 for this one. |
Hey @JasonStoltz, is a target of 8.16 still the goal for this issue? |
Apologies all that I never got around to this. It's been a very hot minute since I looked at either component, but before I go, I'll try to summarize what I recall were the blockers or setup steps needed to move towards this.
There's probably more than just the above list that will only become apparent once the work for this begins, but starting at the top of the list and working down is probably the way to go. The biggest dev/architectural effort will almost certainly be bullet point 2., as EuiComboBox's input/form control is hands down the most custom/involved thing about it (compared to EuiSelectable) |
The existing EuiComboBox has a few a11y shortcomings and differs in implementation from EuiSelectable which has been crowned as the future implementation of dropdown-like things. To consolidate implementations of similar components, fix the a11y problems, and unify the UX, EuiComboBox should be rewritten using EuiSelectable.
On top of EuiSelectable, EuiComboBox largely provides:
Picture example
(should be 4.5:1)Which currently has a minor a11y issue associated with it (Remove EuiComboBox down arrow button from tab order #5024)
Popup indicator should be excluded from focus order (Under "Keyboard Interaction" for Combobox)I think the EUI team prefers to keep the EuiComoboBox component and to wrap EuiSelectable within it but another implementation option is to add a "renderAs" prop (or something along those lines) to EuiSelectable to adjust styling.
This replaces Kibana issues #42988 and #39357
The text was updated successfully, but these errors were encountered: