C6.27.1Candidate window occluding edited text设计研究

候选词条通常悬浮在光标附近,容易遮挡正在编辑的文本

别名: 候选窗遮挡 · 组字覆盖原文 · IME 浮层

概念解释

拼音、注音组字时,候选列表常以浮动窗口贴在插入点附近,方便眼动从原文扫到词。贴得近的代价是盖住插入点前后已经打出的字、上一行的上下文、或正在对照的原文。用户要确认“刚才那个词是不是这个”,却看不见刚才那个词。遮挡的是正在编辑的文本,不是屏幕底端的软键盘,也不是排序算法把谁放第一。

机制

候选窗的锚点一般取插入点的屏幕坐标,默认向下展开,高度随候选行数和字体变化。小屏、大字号、多行候选时,窗口很容易盖住插入点所在行。组字过程恰恰最需要看见上下文:语言模型用上文,人也用上文判断选哪个同音词。盖住上文等于同时弄瞎人和模型的人侧检查。内嵌组字(下划线拼音写在行内)会减轻一些,但候选条仍可能盖住下一行。与放大镜不同:放大镜是为了看清插入点,候选窗是为了展示选项,两者目的冲突时通常是候选窗赢,原文输。

怎么研究

在不同字号、行距、窗口位置下录屏,标记组字期间被候选窗覆盖的字符是否属于当前句的已提交部分。因变量包括:因看不见上文而选错同音词的次数、用户手动拖走窗口的次数。比较浮动窗与行内候选。眼动看他们是否把头偏到窗口边缘去“偷看”被盖住的字。不要用空文档打单字,那测不到上下文遮挡。

边界

屏幕极大且候选窗很小,遮挡面积可忽略。候选嵌在键盘顶上(手机常见)时,遮的是键盘而不是原文,问题转移到键盘占用。全屏游戏聊天这种原文很少的场景,遮挡原文几乎无害。竖排文本的插入点锚点若仍按横排算,窗口会离开插入点去盖别的段落。

怎么落地

  • 候选窗默认避开当前行已提交文字,宁可略远也不要盖住上一词。
  • 提供行内组字作为选项,把拼音留在插入点,候选条放到行外固定带。
  • 允许临时把窗口拖开,并在下一次组字时记住相对插入点的方位。
  • 验证:在目标字号下输入一句已有上下文的话,组字第二个词时检查第一个词是否仍完全可见;被盖住即失败。

延伸

  • 同组C6.27.2 候选窗口位置需要根据光标离屏幕边缘的距离动态翻转 · C6.27.3 候选窗口遮挡输入框下方的其他控件时会阻断后续操作 · C6.27.4 候选窗口消失时机需要一致,否则会遗留浮层
  • 相邻C6.12 输入法候选 · C6.14 放大镜与光标微调
  • 站内检索IME candidate window · occlusion · caret-relative popup

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C6.27.1