Jumping suggestion order causes mistaps
Aliases: moving autocomplete · suggestion reshuffle · mistap on suggestions
What it is
While the dropdown is still re-ranking on the latest prefix, the user has already aimed pointer or finger at a row from the previous order. The coordinates still hold a row; the content is now a different suggestion. A mistap from this order jump is not a mistaken reading of meaning—the motor command was issued, and the target was replaced before arrival. The “smarter” and more frequent the autocomplete refresh, the less stable the list is as a motor target.
The cost is submitting a query the user never finished reading. Logs will record “user chose a suggestion,” and the error is trained into the next round of ranking.
Why it happens
Pointing at a suggestion is an aiming act: vision selects row N, the motor system fires a click or arrow-plus-enter at those coordinates. Network delay and per-keystroke re-ranking rewrite row N while the movement is in flight. On desktop, pointer landing and content come apart; on touch, the finger already occludes the list while rows jump, and mid-course correction is harder. If keyboard selection is bound to “row 3” rather than “this string,” a refresh keeps the highlight on row 3 and Enter submits whatever just arrived.
A nastier variant: list height jumps, lower rows are pushed out, and blank space or another group appears under the pointer. People click “the same patch as a moment ago” and hit the new layout. Stability, not freshness, decides whether this control can be aimed at.
Studying it
Treat the suggestion list as a moving target, not a static menu.
- Paradigms: refresh the list character by character under a fixed delay; count content replacements while a row is being aimed at, and mis-submit rate; run touch and mouse separately; in query logs, “suggestion click then immediate back-and-re-search” is a weak mistap signal.
- Independent variables: whether refresh preserves row identity (same string stays put), minimum refresh interval, selection bound to row index vs bound to text, freeze while the pointer hovers or a finger is down.
- Dependent variables: mistap rate, undo or immediate re-query after a mistap, subjective “the list is snatching.”
- Methodological note: instant lab networks underestimate jumps. Use real latency or insert 100–300 ms. Tasks that require “you must use a suggestion” amplify aiming and are not everyday glancing. Separate mistaps from “the suggestion was poor so I changed my mind”: the former happens when content swapped under the click; the latter happens after seeing the result page.
Where it stops holding
With one or two suggestions that barely reorder, jumping is not the main problem. Fully local, no-round-trip completion can align refresh with keystrokes and the jump window is short. Screen readers announce “the current item’s text”; an index-bound implementation will speak the post-jump word, which is worse than a mistap—freeze policy should serve assistive tech first. When someone has deliberately walked the highlight to a row and stopped, that row should be pinned even if new suggestions arrive.
Applying it
- Keep rendered suggestions from swapping row numbers: insert or append new results; do not let row 2’s text become another sentence while it is being aimed at.
- While the pointer hovers, a finger is down, or keyboard highlight rests on a row, freeze that row and its coordinates until the choice ends or the prefix is edited.
- Bind selection to suggestion text, not “nth row from the top.” Enter must submit the highlighted sentence, not the new occupant of that slot.
- Verify under a throttled network while typing continuously: does row 2’s text change while it is being aimed at. If it can change and be clicked away, the jump is unhandled. If the list still reshuffles hard during hover, aiming is unprotected.
Related
- Within the group: G3.03.1 Suggestions cut typing cost and demonstrate what can be searched · G3.03.3 Suggestions must not replace the intent already typed
- Adjacent: E2.10 Search fields · E2.16 Autocomplete dropdowns · G3.11 Search history
- Search terms:
autocomplete·moving target·query suggestion