Skip to content

Autocomplete

The Autocomplete component is a form control that combines a text input with a filtered dropdown list of suggestions, allowing selection or free-form entry.

  • Select from large or dynamic lists where typing to filter reduces cognitive load (e.g., search fields, country/state selection, tag inputs).
  • Support free-form input with guided suggestions.
  • When users may know part of the desired value and benefit from real-time filtering.
  • For small, fixed lists (less than 15 options); use Select instead.
  • For pure free-form text without suggestions; use Text Field.
  • For multi-select without visual tags; consider Tag Group integration.
  • When suggestions are not filterable or typing is unnecessary.
StateDescriptionVisual Indicators
DefaultDefault interactive stateInherited from input
HoverCursor over objectInherited from input/trigger
FocusKeyboard focus (visible on Tab or arrow key navigation)Inherited from input
OpenSuggestion list visiblePopover displayed
DisabledNon-interactiveInherited from input
Invalid-Validation error
  • Placeholder: Guide typing (e.g., “Type to search”).
  • Option labels: Concise, scannable, and match filter logic.
  • No results: Helpful message (e.g., “No options found”).
  • Use role="combobox" with aria-autocomplete="list" and aria-controls for the listbox.
  • Input supports aria-activedescendant for highlighted option.
  • List uses role="listbox" with role="option" on items.
  • Announce results count and selection changes via live region.
  • Support aria-required, aria-invalid, and aria-errormessage.

Support standard keyboard navigation

  • Inherited from parent component