Partials must not look like editable final text; style them as a distinct state
Aliases: tentative text · uncommitted hypothesis · interim styling
What it is
If partials look like committed text, people will edit them as a document: move the caret, select a word, start typing. Recognition then rewrites the same span, and the edits collide. Partials must be styled as unconfirmed, and only the final becomes editable text. The distinction is document state, not whether recognition is accurate.
Why it happens
A text field has one glyph style and one insertion-point semantics by default. Writing a streaming prefix into that same buffer invites editor APIs onto a string that is still moving. Caret position, spellcheck, autocorrect, and IME candidates all bind to unstable text. A style split (grey, italic, underline, a separate “listening” layer) restricts editing to a frozen prefix, or forbids editing until the final. This is not a privacy indicator: that is whether capture is on. This is whether these characters can be treated as draft. It is also not the mechanism of hypothesis revision: that says the hypothesis will change; this says how the UI stops people treating a mutable object as the final draft.
Studying it
Give two UIs—partials styled like finals versus an obvious unconfirmed style—and ask people to change a word mid-speech. Record edit collisions, duplicated work, and whether they knew “it is too early to edit.” Count times an interim is sent as if final. Do not stop at visual preference votes.
Where it stops holding
Some IMEs already draw uncommitted phonetic spelling in a temporary style, and that literacy can be borrowed for voice interims. Pure dictation into a non-editable search field needs less distinction, but still must block a mid-stream tap on search. Large-print accessibility has to keep contrast; pale grey alone is not enough. A final that is still low-confidence can keep an unconfirmed style; that is confidence stacked on the final, not a partial.
Applying it
- Give partials their own style and disable selection and keyboard insertion on that span until the final switches.
- Make the final switch an obvious appearance change, and only then place the caret in an editable region.
- Accept with mid-stream taps and mid-stream key inserts: those actions must not land on a still-flickering prefix.
Related
- Same group: C7.10.1 Partial results show not-yet-final text while the user is still speaking · C7.10.2 Partials may be revised or wholly replaced and need not match the final · C7.10.3 Showing partials live shortens perceived latency even if the final still waits
- Adjacent: C7.13 Voice Editing and Spoken Correction · C7.17 Switching Between Voice and Keyboard
- Search:
tentative text·interim styling·uncommitted hypothesis