C7.17.1Voice-to-keyboard preserves caret and buffer设计研究

语音转键盘输入应保留光标位置与已输入内容,不重置编辑状态

别名: 输入法切换 · caret persistence · 编辑状态

概念解释

从语音切到键盘时,已经进缓冲区的文本和光标位置应保持,编辑状态不得被重置成空文档或跑到段首。切换的是通道,不是一份新稿。用户切过来通常是为了改刚才那一句,光标若丢了,语音的成果就被一次模式切换清掉。

机制

听写把字符串写入文本控件并移动插入点。弹出软键盘、切换输入法引擎或关掉语音会话时,若控件被重建、焦点丢失或 IME 把组合状态清零,caret 会跳走,未确认的部分结果可能被提交或丢弃。正确的切换是同一文档对象上的输入源更换:语音会话结束(或暂停),键盘接管同一个缓冲和同一个插入点。部分结果若还是未确认样式,切键盘时应先冻结成终态再允许编辑,否则键盘会打进一条仍在变的前缀。这与免提价值无关:这里是桌面/手机上的编辑连续性。

怎么研究

听写一段后在指定词处切换键盘,测量 caret 是否仍在该词、文本是否完整、未确认前缀如何落盘。比较系统键盘、第三方 IME、从全屏语音 UI 返回编辑器。记录切换耗时和误重置次数。不要在空输入框上测切换,那看不出状态丢失。

边界

用户明确点“新便笺”应当重置。跨应用分享语音结果到另一个输入框,本来就不是同一缓冲。崩溃恢复可以丢 caret 但仍应尽量保住文本。有的搜索框在每次提交后清空,那是搜索语义,不是听写切换。

怎么落地

  • 切换时复用同一文本控件和同一选区;语音 UI 不要做成会销毁底层字段的模态。
  • 未确认的部分结果在键盘出现前冻结。
  • 验收:在句中切换,打一个字,确认它插在原 caret 处而不是文件头。

延伸

  • 同组C7.17.2 键盘唤出后语音识别应自动暂停,避免键入声被误识别为语音内容 · C7.17.3 两种输入方式混用时,撤销操作需要覆盖两种来源产生的内容 · C7.17.4 从语音切换到键盘通常用于精细纠错,界面应让该切换路径足够短
  • 相邻C7.13 语音编辑与口头纠错 · C6.13 文本选择与光标定位
  • 站内检索caret persistence · IME switch · dictation buffer

同组卡片

快捷操作

分享

分享当前页面

ios_share

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