Context
PerdSelect currently supports Arrow Up, Arrow Down, Enter, Space, Escape, and Tab commit. It does not yet provide the optional native-select-style navigation covered by the WAI-ARIA select-only combobox and listbox patterns.
This is follow-up technical debt, not a blocker for the current Gear Library integration.
Scope
- Support
Home and End navigation across enabled options.
- Support printable-character typeahead, including multi-character matching within a short input window.
- Skip disabled options for all added navigation.
- Keep the active option,
aria-activedescendant, and aria-selected synchronized.
- Preserve the current commit model: navigation while the popup is open does not change
modelValue until Enter, Space, Tab, or pointer selection commits it.
- Align closed/open behavior with the WAI-ARIA select-only combobox pattern instead of defining a project-specific keyboard contract.
Acceptance criteria
Home activates the first enabled option and End activates the last enabled option.
- Printable input activates the next matching enabled option using case-insensitive label matching.
- Disabled matches are ignored.
- Keyboard navigation keeps the active option visible in a scrollable listbox.
- Focus remains on the combobox trigger while navigating.
- Focused Playwright coverage exercises Home, End, typeahead, disabled options, and a list longer than seven options.
References
Context
PerdSelectcurrently supports Arrow Up, Arrow Down, Enter, Space, Escape, and Tab commit. It does not yet provide the optional native-select-style navigation covered by the WAI-ARIA select-only combobox and listbox patterns.This is follow-up technical debt, not a blocker for the current Gear Library integration.
Scope
HomeandEndnavigation across enabled options.aria-activedescendant, andaria-selectedsynchronized.modelValueuntil Enter, Space, Tab, or pointer selection commits it.Acceptance criteria
Homeactivates the first enabled option andEndactivates the last enabled option.References