Back to compare picker

Typeahead vs Autocomplete vs Search suggestions vs Basic search

Prefer typeahead when the product should update result previews or entity hits continuously as the user types, before an explicit final search submit.

Decision dimensions

Dimension TypeaheadAutocompleteSearch suggestionsBasic search
UI or UX UI + UX - Live search-as-you-type result lookup with incremental result previewUI + UX - Input widget with suggestion behaviorUI + UX - Suggested-query surfaceUI + UX - Search input and result list
UI guidance Render a labelled input with a live result panel that shows matching result hits, result count, active result, source labels, and loading or stalled state while the user types.Render a labeled text field, suggestion popup, highlighted option, selected value, and no-match state.Render a search field with query suggestions, active option, selected suggestion, and no-suggestion state.Render a labeled search field, result count, matching rows, and clear action.
UX guidance Use typeahead when users benefit from immediate result feedback while typing and can either open a result hit or continue to a full submitted search.Help users complete a known value faster without forcing an incorrect suggestion.Help users formulate better search queries without forcing a choice.Help users find known content without browsing every category.
Good UI Typing ca opens a panel with live case, calendar, and claim results, a 3 results for ca count, active row styling, and source labels.Persistent label above the input, readable text size, clear popup alignment, and visible highlighted option.Suggestions appear directly below the search field with active row, readable labels, and optional matched text.A clearly labeled search field with result count and results placed directly below.
Bad UI The input silently becomes Case 104 because the first result was auto-filled while the user was typing ca.Placeholder-only label that disappears after typing.Suggestions overlay unrelated content without a dismiss path.Search input hidden behind only an icon with no label.
Good UX A user types cas, sees matching case records immediately, selects Case 104, and can still edit the query or submit a full search.Typing filters suggestions while preserving the exact typed value.Users can keep typing, choose a suggestion, dismiss suggestions, or submit their own query.Users can type, revise, clear, and keep context while inspecting results.
Bad UX Users cannot finish typing because focus jumps into the first result on every keystroke.Automatically forcing the first suggestion into the field.Auto-submitting the top suggestion.Search silently changes unrelated filters.
Best fit Users search large datasets and benefit from seeing result hits before full submit.The list is long but values are known.The system can predict likely queries.Users know a word, name, or identifier.
Avoid when The task is choosing one constrained field value, which is better handled as autocomplete.The task is open-ended query exploration.Suggestions are low quality or biased toward irrelevant content.The task is choosing a command with side effects.
Required state Empty state before typing.Empty input state.No input state.Empty query state.
Accessibility burden Use a labelled input and expose the live result panel with combobox, listbox, or region semantics appropriate to the interaction.Expose combobox expanded state, active descendant, and option labels.Expose the suggestions list and active option.The input has a stable accessible name.
Common misuse Calling a known-value autocomplete field typeahead even though no result set is searched.Forcing the first suggestion when the user did not choose it.Auto-submitting the top suggestion without confirmation.Using placeholder text as the only label.

Typeahead

UI or UX
UI + UX - Live search-as-you-type result lookup with incremental result preview
UI guidance
Render a labelled input with a live result panel that shows matching result hits, result count, active result, source labels, and loading or stalled state while the user types.
UX guidance
Use typeahead when users benefit from immediate result feedback while typing and can either open a result hit or continue to a full submitted search.
Good UI
Typing ca opens a panel with live case, calendar, and claim results, a 3 results for ca count, active row styling, and source labels.
Bad UI
The input silently becomes Case 104 because the first result was auto-filled while the user was typing ca.
Good UX
A user types cas, sees matching case records immediately, selects Case 104, and can still edit the query or submit a full search.
Bad UX
Users cannot finish typing because focus jumps into the first result on every keystroke.
Best fit
Users search large datasets and benefit from seeing result hits before full submit.
Avoid when
The task is choosing one constrained field value, which is better handled as autocomplete.
Required state
Empty state before typing.
Accessibility burden
Use a labelled input and expose the live result panel with combobox, listbox, or region semantics appropriate to the interaction.
Common misuse
Calling a known-value autocomplete field typeahead even though no result set is searched.

Autocomplete

UI or UX
UI + UX - Input widget with suggestion behavior
UI guidance
Render a labeled text field, suggestion popup, highlighted option, selected value, and no-match state.
UX guidance
Help users complete a known value faster without forcing an incorrect suggestion.
Good UI
Persistent label above the input, readable text size, clear popup alignment, and visible highlighted option.
Bad UI
Placeholder-only label that disappears after typing.
Good UX
Typing filters suggestions while preserving the exact typed value.
Bad UX
Automatically forcing the first suggestion into the field.
Best fit
The list is long but values are known.
Avoid when
The task is open-ended query exploration.
Required state
Empty input state.
Accessibility burden
Expose combobox expanded state, active descendant, and option labels.
Common misuse
Forcing the first suggestion when the user did not choose it.

Search suggestions

UI or UX
UI + UX - Suggested-query surface
UI guidance
Render a search field with query suggestions, active option, selected suggestion, and no-suggestion state.
UX guidance
Help users formulate better search queries without forcing a choice.
Good UI
Suggestions appear directly below the search field with active row, readable labels, and optional matched text.
Bad UI
Suggestions overlay unrelated content without a dismiss path.
Good UX
Users can keep typing, choose a suggestion, dismiss suggestions, or submit their own query.
Bad UX
Auto-submitting the top suggestion.
Best fit
The system can predict likely queries.
Avoid when
Suggestions are low quality or biased toward irrelevant content.
Required state
No input state.
Accessibility burden
Expose the suggestions list and active option.
Common misuse
Auto-submitting the top suggestion without confirmation.

Basic search

UI or UX
UI + UX - Search input and result list
UI guidance
Render a labeled search field, result count, matching rows, and clear action.
UX guidance
Help users find known content without browsing every category.
Good UI
A clearly labeled search field with result count and results placed directly below.
Bad UI
Search input hidden behind only an icon with no label.
Good UX
Users can type, revise, clear, and keep context while inspecting results.
Bad UX
Search silently changes unrelated filters.
Best fit
Users know a word, name, or identifier.
Avoid when
The task is choosing a command with side effects.
Required state
Empty query state.
Accessibility burden
The input has a stable accessible name.
Common misuse
Using placeholder text as the only label.
Decision rules
  • Prefer typeahead when the product should update result previews or entity hits continuously as the user types, before an explicit final search submit.
  • Prefer autocomplete when the task is completing or selecting one known value such as a customer, address, product, tag, or code and the selected option becomes the field value.
  • Prefer search suggestions when the interface suggests query phrases or likely searches but does not fetch or rank live result hits until the user submits or chooses a suggestion.
  • Prefer basic search when users should enter a query and intentionally submit before the result set changes.
  • Typeahead should define a minimum character threshold, debounce or request pacing, loading/stalled state, stale-response handling, empty preview, and keyboard navigation for live hits.
  • Do not use typeahead when network latency, privacy, cost, or result volatility would make every keystroke search misleading or expensive.
  • Do not auto-commit the top typeahead result into the input; selecting a result should be a distinct action from continuing to type.
  • Do not label query suggestions as typeahead if the rows are suggested phrases rather than live result hits or structured entities.
  • Do not label known-value autocomplete as broad typeahead if arbitrary free-form queries should remain valid.
  • When typeahead updates the page around the input, keep typed text, active result, result count, loading state, and final submit behavior synchronized.
Inspect live examples
Failure modes
  • Every keystroke fires a remote request with no debounce, causing flickering results and stale rows from older queries.
  • The first live result is silently inserted into the input and users submit the wrong entity.
  • A typeahead panel shows no minimum-length or loading state, so users think there are no results while the request is still pending.
  • Typeahead result hits are mixed with suggested query phrases, recent searches, and ads without source labels.
  • Keyboard focus moves into live results while the user is still typing and the input loses text.
  • A slow response for ca overwrites newer results for case because stale requests are not ignored.