G3.03.3query suggestion intent设计研究

建议不应替代用户已输入的意图

别名: 建议覆盖意图 · typed query preserved · 输入优先

概念解释

框里已经写下的字符串是用户此刻承认的意图。建议可以补全、可以示范,但不能在用户没有明确选中时,把那串字符换成更热门、更「正确」的另一句。建议不应替代已输入的意图:回车、点击搜索按钮、或失焦提交,都应按框内原文去搜;建议若被采用,必须是一次可感知的选择(点了那一行、或用键盘把高亮移到那一行再确认)。

「您是不是要搜…」放在结果页上作为可点的另一条路径,与提交前偷偷改写查询,不是同一件事。前者保留原意图并提供分支;后者让用户无法核实自己到底搜了什么。

机制

自动补全常把第一条建议当成默认。回车被实现成「接受高亮建议」,而高亮又默认落在第一条热门词上。于是「发票作废」被热门的「发票报销」顶掉——两个词共享前缀,热度却差一个数量级。用户看见框里还是自己的字(有的实现连框都改了),结果页却按另一句排,归因会落在「没有作废」而不是「查询被换了」。

替换还发生在「最佳猜测」改写:系统认为原文拼错或不够流行,未征求就把查询换成规范说法。这与拼写纠错的可见改写不同——纠错至少还承认发生了一次替换。这里谈的是建议模块越权:用列表里的一条去覆盖尚未被选中的输入。意图一旦被换,后续的筛选、排序、零结果处理都在错误的查询上工作,错误被放大而不是被纠正。

怎么研究

把「提交的查询」和「框里最后看见的字符串」做成必须核对的一对,而不是只看建议点击率。

  • 范式:前缀同时匹配冷门原词与热门建议时,测量回车提交的是哪一句;眼动或回放看提交前是否扫过建议;日志中「框内文本 ≠ 实际查询参数」的比例。
  • 自变量:回车是提交原文还是接受高亮、高亮是否默认落在第一条、结果页是否展示实际执行的查询。
  • 因变量:意图被替换的次数、替换后用户是否发现、发现后还原原文的成功率。
  • 方法论注意点:实验室若强调「请使用建议」,会把替换合法化。要设「建议可见但任务是提交你写的那句」。热门建议与原词字面相近时,用户更难看出来被换了,材料要包含近前缀、远意义的对抗对。

边界

输入法选词会改框内文本,那是用户在确认候选,不属于建议越权。命令面板里「第一条即执行」是明示的快捷约定,前提是高亮可见且与输入强相关。无障碍场景下,若焦点在建议列表里,回车接受建议是正确的——关键是焦点到底在输入框还是在列表,两处的回车语义必须分开。用户明确把一条建议点进框内之后,那条就成为新的已输入意图,此后再提交不再算替换。

怎么落地

  • 输入框有焦点且建议未被显式选中时,回车和搜索按钮提交原文;不要把第一条建议设成隐式默认。
  • 只有点选或键盘把高亮移到某条后,才用该条替换框内文本,并且替换要发生在框里,让用户看见新字符串。
  • 结果页标题或检索条件复述实际执行的查询;若因建议而与键入不同,提供「改回搜 [原文]」。
  • 验证:键入一条与第一条建议不同的完整查询,不碰列表,直接回车。结果若按建议走,意图被替代了。再看框内和结果页是否仍显示原文;两处都改成建议却无还原入口,替换是静默的。

延伸

  • 同组G3.03.1 建议降低输入成本并示范可搜内容 · G3.03.2 建议顺序跳变会造成误选
  • 相邻G3.02 查询输入与构造 · G3.04 拼写纠错 · E2.10 搜索输入框
  • 站内检索query suggestion · typed query · autocomplete

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/G3.03.3