C5.16.2Mode switch must preserve content and caret设计研究

切换输入方式不应丢失已完成部分的内容或光标位置

别名: 切换丢字 · 光标保持 · input mode switch · caret persistence

概念解释

从笔切到键盘、或反向,已经进文档的字和墨、以及插入符所在的那一处,都必须还在。切换是换效应器,不是换一篇空文档,也不是把未提交的那一块当垃圾丢掉。丢失表现为:软键盘弹起后手写候选消失、焦点跳到框首、未认完的字被清空。

机制

两种输入法常是两套焦点与组成区。软键盘弹出改视口,可能重挂输入连接,IME 的 composition 被提交或丢弃。手写面板若是另一个窗口,切走时它的临时墨只活在面板里,没写回字段就没了。插入符若按“新输入法默认在末尾”重置,人在中间改一个词的动作被打断。正确切换是:提交或保留 composition、把同一文档位置交给新效应器、视口滚动以继续看见该位置(软键盘遮挡时尤其要滚)。未完成手写应在切走前认一次或明确变成墨块。系统级输入法切换(地球键)和应用内“笔/键盘”按钮都要走同一条保存路径,否则一条路径安全、另一条丢字。

怎么研究

在句中、在未完成组成、在软键盘即将遮住插入符时切换。记录内容差分和插入符索引。

自变量:切换触发(系统 / 应用按钮 / 笔靠近)、有无未完成组成、键盘是否改视口。 因变量:字符/墨丢失、插入符跳转距离、是否需要人重新找位置。

边界

故意“新建便笺”的按钮可以清空,但那不是输入方式切换。崩溃恢复另说。密码框禁止手写时,切到笔应拒绝并保持已打的掩码,而不是清空。

怎么落地

  • 切换前提交或冻结 composition;插入符索引不变。
  • 软键盘弹出后滚动插入符进可见区,不要让人以为字没了。
  • 系统切换与应用内按钮共用保存逻辑。
  • 验证:在句中停着未完成的手写字,弹出键盘,该字应出现在原处或作为已认字符插入,插入符仍在其后。反向:打到一半拿起笔,已打字不得回到框首。差分自动化比对切换前后 DOM/文档。

延伸

  • 同组C5.16.1 同一输入框内允许手写与键盘混用时,两种笔迹与文本的衔接需要明确规则 · C5.16.3 手写场景更适合绘图与几何标注,键入更适合大段文字,二者应按内容类型分工 · C5.16.4 频繁切换输入方式本身构成认知与操作成本,不能假设切换免费
  • 相邻C5.07 笔与手指的分工 · C6.25 输入法状态与切换
  • 站内检索caret persistence · IME composition · mode switch loss

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C5.16.2