Corrections must be visible and undoable in one step
Aliases: revert correction · show replacement · undo autocorrect
What it is
If a silent replacement looks identical to typing, people can find it only by rereading the whole sentence. A correction must make that replacement visible, and must return to the original string with an action that is not “delete five letters and retype.” Visibility handles noticing; one-step undo handles the repair cost of a false hit. Missing either leaves false hits in outbound text.
Why it happens
Noticing depends on contrast. If the original and the new word flash only on the commit boundary, working memory still holds the original, and a brief underline or original-word bubble can match that memory. If the new word lands with no mark, memory is overwritten and noticing waits for a full read. Repair depends on action grain: if backspace deletes one letter, the user is dismantling the new word by hand and retyping the old, which costs more than the original typo. Making “restore the replaced original” the first backspace, or one tap on the mark, lets repair and noticing share an object. That step must target this correction, not a general undo that rewinds the whole edit. Otherwise people undo content they typed on purpose before the correction.
Studying it
Trigger replacements on words known to false-hit. Measure time from replacement to the first attempt to revert, the action used (backspace, tap bubble, system undo), and whether a neighbour word was harmed. Independent variables include presence of a visible mark, whether undo is one step or per character, and how long the mark lasts; dependent measures include notice rate, repair time, and accidental undos. A no-mark control estimates the fraction found only on rereading.
Where it stops holding
A candidate the user explicitly tapped is not a correction and need not use this undo; that write was confirmed. After leaving the field, or after send, one-step undo may no longer exist, leaving message edit or the addressee’s charity. Assistive technology needs the replacement announced as a change, not a silent DOM rewrite.
Applying it
- When a replacement happens, keep a visible mark on that word until the next word starts, and make the first backspace or a tap on the mark restore the original.
- Do not implement correction recovery as “undo the last edits”; the recovery set may contain only the replaced word.
- Walk false-hit words: from replacement to restore, is it exactly two steps (see, tap)? If character-by-character deletion appears in between, undo is not yet one step.