Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stringyland/custom-select

My version of a custom select input, with filtering
https://github.com/stringyland/custom-select

Last synced: 3 months ago
JSON representation

My version of a custom select input, with filtering

Awesome Lists containing this project

README

        

# custom-select
My version of a custom select input, with filtering

## The process
https://24ways.org/2019/making-a-better-custom-select-element/

## A demo
https://codepen.io/stringyland/pen/a7106a2577dbc246875275a7c8182abf

## To Do
* Move status update to start on first focus, not on page load
* Add the high-contrast focus indicator back (not sure when that got removed?)
* Add aria-selected attributes to makeChoice, remove on clearValue
* check arrow navigation works in all screen readers
* problems in JAWS/Chrome during filtered state
* Talkback/Chrome/Android not working well
* NVDA/Firefox seems ok, continue testing
* Update pattern to ARIA 1.2 - still only a recommendation for the next version, but Sarah Higley's usability testing (https://www.24a11y.com/2019/select-your-poison-part-2/) showed it gave the best results
* Update script so that both Enter and Space open the list
* Make the arrow icon pointer-only
* See if I can make the list appear above or below the input based on available screen space

## Questions
* What would the impact be of removing aria-controls attribute? It causes older JAWS to give additional instructions which are inaccurate.
* Or should there be instructions at all? Excess instructions are usually annoying. On the other hand it's a custom widget, so people might not have encountered an input like it before and filtering isn't necessarily an intuitive interaction.