C6.27.1Candidate window occluding edited text设计研究
候选词条通常悬浮在光标附近,容易遮挡正在编辑的文本
别名: 候选窗遮挡 · 组字覆盖原文 · IME 浮层
概念解释
拼音、注音组字时,候选列表常以浮动窗口贴在插入点附近,方便眼动从原文扫到词。贴得近的代价是盖住插入点前后已经打出的字、上一行的上下文、或正在对照的原文。用户要确认“刚才那个词是不是这个”,却看不见刚才那个词。遮挡的是正在编辑的文本,不是屏幕底端的软键盘,也不是排序算法把谁放第一。
机制
候选窗的锚点一般取插入点的屏幕坐标,默认向下展开,高度随候选行数和字体变化。小屏、大字号、多行候选时,窗口很容易盖住插入点所在行。组字过程恰恰最需要看见上下文:语言模型用上文,人也用上文判断选哪个同音词。盖住上文等于同时弄瞎人和模型的人侧检查。内嵌组字(下划线拼音写在行内)会减轻一些,但候选条仍可能盖住下一行。与放大镜不同:放大镜是为了看清插入点,候选窗是为了展示选项,两者目的冲突时通常是候选窗赢,原文输。
怎么研究
在不同字号、行距、窗口位置下录屏,标记组字期间被候选窗覆盖的字符是否属于当前句的已提交部分。因变量包括:因看不见上文而选错同音词的次数、用户手动拖走窗口的次数。比较浮动窗与行内候选。眼动看他们是否把头偏到窗口边缘去“偷看”被盖住的字。不要用空文档打单字,那测不到上下文遮挡。
边界
屏幕极大且候选窗很小,遮挡面积可忽略。候选嵌在键盘顶上(手机常见)时,遮的是键盘而不是原文,问题转移到键盘占用。全屏游戏聊天这种原文很少的场景,遮挡原文几乎无害。竖排文本的插入点锚点若仍按横排算,窗口会离开插入点去盖别的段落。
怎么落地
- 候选窗默认避开当前行已提交文字,宁可略远也不要盖住上一词。
- 提供行内组字作为选项,把拼音留在插入点,候选条放到行外固定带。
- 允许临时把窗口拖开,并在下一次组字时记住相对插入点的方位。
- 验证:在目标字号下输入一句已有上下文的话,组字第二个词时检查第一个词是否仍完全可见;被盖住即失败。