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

Add client-side options support #52

Open
inkblotty opened this issue Nov 9, 2021 · 0 comments
Open

Add client-side options support #52

inkblotty opened this issue Nov 9, 2021 · 0 comments

Comments

@inkblotty
Copy link
Contributor

Problem

If there are static options passed into the element, the options are deleted on request for filtered options.

Request

Client-side options should be supported and have filtering available. TBD: Do we allow both client-side (such as default options) and server-side options?

Implementation concerns

Accessibility

Ensure that any default / client-side options are announced when the input is focused. screen-reader-announcements.ts can assist with this.

When the options list isn't visible, an aria-describedby should be added to the input pointing to the feedback element. This should only be if the element has client-side options. Remove this aria-describedby when the user interacts with any key, and add it back in when the auto-complete-element is blurred. cc @github/accessibility and @jscholes for reference. "aria-live won't cut it" for this scenario

Developer Notes

There is some initial setup done in autocomplete.ts to detect client-side options, but all of this can be removed / reworked, as long as accessibility considerations are met.

inkblotty added a commit that referenced this issue Nov 12, 2021
…#51)

# New Features
If data-autoselect is "true" on the auto-complete-element, pressing the "Enter" key will select the first option available, even if the input is focused and not the first option.

Reference Slack thread on this established pattern which describes that Primer React has already established the pattern of using "Enter" to commit the first suggestion in SelectPanel.

# Accessibility
If a <listbox_id>-feedback element is detected, the following screen-reader updates are announced:

when the options are loaded, how many are available
what the first option is and that pressing Enter will select it (if data-autoselect is true)
when an option is selected, that the option is selected
when the options are hidden, that they have been hidden
Some set up work was also done for client-side options, but that work will be tackled whenever #52 is prioritized.

cc @github/accessibility
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant