C7.17.1Voice-to-keyboard preserves caret and bufferdesignresearch

Switching from voice to keyboard should keep the caret and existing text, not reset the edit

Aliases: IME switch · caret persistence · edit state

What it is

When moving from voice to keyboard, text already in the buffer and the caret should stay. Edit state must not reset to an empty document or jump to the start of the paragraph. The channel changes; the draft does not. People switch to fix the sentence they just spoke. If the caret is lost, a mode change wipes the voice work.

Why it happens

Dictation writes a string into a text control and moves the insertion point. Showing a soft keyboard, switching IME engine, or closing a voice session may rebuild the control, drop focus, or clear composition, so the caret jumps and unconfirmed partials are committed or dropped. A correct switch is a change of input source on the same document object: the voice session ends (or pauses) and the keyboard takes the same buffer and the same insertion point. If partials are still in an unconfirmed style, freeze them to a final before keyboard editing, or keystrokes land in a still-moving prefix. This is not about hands-free value: it is edit continuity on a phone or desktop.

Studying it

After dictating a span, switch to keyboard at a chosen word; measure whether the caret stays on that word, whether text is complete, and how an unconfirmed prefix lands. Compare the system keyboard, a third-party IME, and returning from a fullscreen voice UI to the editor. Log switch latency and accidental resets. Do not test the switch on an empty field; state loss will not show.

Where it stops holding

An explicit “new note” should reset. Sharing a voice result into another app’s field was never the same buffer. Crash recovery may drop the caret and should still try to keep the text. Some search fields clear after every submit; that is search semantics, not a dictation switch.

Applying it

  • Reuse the same text control and the same selection on switch; do not implement the voice UI as a modal that destroys the underlying field.
  • Freeze unconfirmed partials before the keyboard appears.
  • Accept by switching mid-sentence and typing one character; it must insert at the old caret, not at the file start.

Related

  • Same group: C7.17.2 Showing the keyboard should pause recognition so key-clicks are not taken as speech · C7.17.3 Undo in mixed input must cover content from both sources · C7.17.4 Voice-to-keyboard is usually for fine correction; keep that path short
  • Adjacent: C7.13 Voice Editing and Spoken Correction · C6.13 Text Selection and Caret Placement
  • Search: caret persistence · IME switch · dictation buffer

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/C7.17.1