Skip to content

[Tech debt] Improve PerdSelect keyboard navigation #698

Description

@Perdolique

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions