Skip to content
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

[BITV] Enhance Multiselect A11Y #3526

Closed
11 tasks done
Pytal opened this issue Nov 30, 2022 · 11 comments
Closed
11 tasks done

[BITV] Enhance Multiselect A11Y #3526

Pytal opened this issue Nov 30, 2022 · 11 comments
Assignees
Labels
4. to release Ready to be released and/or waiting for tests to finish accessibility Making sure we design for the widest range of people possible, including those who have disabilities enhancement New feature or request feature: select Related to the NcSelect* components

Comments

@Pytal Pytal added enhancement New feature or request feature: select Related to the NcSelect* components accessibility Making sure we design for the widest range of people possible, including those who have disabilities 0. to triage labels Nov 30, 2022
@Pytal Pytal self-assigned this Nov 30, 2022
@Pytal
Copy link
Contributor Author

Pytal commented Nov 30, 2022

@michaelnissenbaum when there are potentially many options to pick from in a multiselect dropdown do we need to add pagination like in https://vue-select.org/guide/pagination.html? Would the user need to be able to jump to a specific page i.e. page 5 out of 10 available pages?

Or is making the option list filterable by typing sufficient to pass the accessibility audit?

@michaelnissenbaum
Copy link

Which kind of pagination navigation you select/implement is up to you. "all" of them could be implemented in accessible way. If you have already something in mind let's discuss whether it is accessible or not and if not, what must be done. Provide me some screenshots and HTML code and I'd analyse it and provide you my feedback.

@Pytal
Copy link
Contributor Author

Pytal commented Dec 2, 2022

Currently we do not have any pagination but do have filtering

Our current implementation is available to test in https://nextcloud-vue-components.netlify.app/#/Components/NcSelect?id=ncselect-1, you may scroll down to the "User select examples" section specifically

Feel free to test it out by typing to filter the available options and let us know whether this is sufficient to pass the audit? Or if adding some buttons similar to https://vue-select.org/guide/pagination.html
image
would be necessary?

@michaelnissenbaum
Copy link

I took a look at those examples. What I can say - they are not accessible.

  1. ARIA roles/attributes were not used as expected. Screen reader does not provide expected/required information. A working example could be found at https://www.w3.org/WAI/ARIA/apg/example-index/combobox/combobox-autocomplete-both.html.
  2. Combobox itself (border) does not meet contrast requirements
  3. Keyboard focus (within listbox) does not meet contrast requirements

Regarding multi select combobox take a look at this example at http://accessibleculture.org/misc/aria/combobox/combobox.html. At least it works quite well with screen reader. Additionally take a loot at https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-multiselectable. The current vue version for multi select does not really support screen readers. It provides incorrect information to the users.

@Pytal
Copy link
Contributor Author

Pytal commented Dec 8, 2022

For the multi select combobox specifically, would the current structure
image
with the non-comma separated selected options display and without the per-option checkboxes seen below,
image
be accessible if the ARIA and contrast adjustments are made but without the same structure?

@michaelnissenbaum
Copy link

The implementation without checkboxes could be an accessible one in case proper ARIA roles/attributes are used, text and keyboard focus meet contrast requirements and keyboard support is provided. An example could be found at https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/accessibility/.

@Pytal Pytal added 2. developing Work in progress and removed 0. to triage labels Dec 14, 2022
@Pytal Pytal changed the title [BITV] Multiselect pagination [BITV] Enhance Multiselect A11Y Dec 14, 2022
@Pytal
Copy link
Contributor Author

Pytal commented Dec 14, 2022

What contrast ratio is required for the focused dropdown option @michaelnissenbaum?
image

@michaelnissenbaum
Copy link

The contrast ration between focused and unfocussed state should be at least 3:1. Please don't forget that in case that keyboard focus is implemented using background colour change the contrast ration between text and its background has to be at least 4,5:1.

@Pytal
Copy link
Contributor Author

Pytal commented Dec 15, 2022

Would something like this work?
image

@michaelnissenbaum
Copy link

I guess you mean keyboard focus borders. It would work but only in case the contrast ratio between border and its background is at least 3:1. At the moment we have appr. 2:1.
CleanShot 2022-12-16 at 08 34 35@2x

@Pytal
Copy link
Contributor Author

Pytal commented Jan 11, 2023

Transferred "Focus of search suggestions is not clearly visible, needs border instead of background"

@Pytal Pytal added 3. to review Waiting for reviews and removed 2. developing Work in progress labels Jan 13, 2023
@Pytal Pytal added 4. to release Ready to be released and/or waiting for tests to finish and removed 3. to review Waiting for reviews labels Feb 28, 2023
@Pytal Pytal closed this as completed Feb 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4. to release Ready to be released and/or waiting for tests to finish accessibility Making sure we design for the widest range of people possible, including those who have disabilities enhancement New feature or request feature: select Related to the NcSelect* components
Projects
None yet
Development

No branches or pull requests

2 participants