E5.14.1command palette设计研究
命令面板以搜索替代层级查找
别名: 命令面板 · command-K · 搜索式命令
概念解释
命令面板(command palette)是一个弹出的搜索框,用来输入命令或目的地的名称,从扁平结果里直接执行。它把「在菜单树里一层层找」换成「我想起它叫什么,就把它召来」。层级导航仍然可以存在;面板提供的是另一条检索通道,不是把树拆掉。
机制
层级查找的成本随深度和分支增加:要记得命令挂在哪一类下面,还要穿过走廊和打开延迟。搜索把命令变成可检索的记录,成本变成「生成查询 + 从结果里认出目标」。对已经能叫出名字的人,后一条远短于走树。面板通常还按最近使用和当前上下文排序,进一步缩短从查询到命中的距离。
这条通道要求命令有可输入的名称。图标、位置、分组在面板里都退居次位,名称成为主索引。所以面板不是更小的菜单,而是换了一种索引结构:从空间树换成词汇表。没有打开面板的稳定快捷方式时,它只是又一个藏起来的容器,检索优势发挥不出来。
怎么研究
用命令检索任务:给出要完成的动作(「把这段做成标题」「切到源码视图」),比较走菜单树和打开面板输入。自变量是命令在树中的深度、名称是否与用户用语一致、面板是否按最近使用排序。因变量是完成时间、第一查询是否命中、以及改走另一通道的次数。
专家与新手要分开。专家的优势在回忆名称,新手可能连面板的存在都不知道,测到的会是发现性而不是检索。
边界
命令很少、树很浅时,面板是多余的一步。触屏上没有键盘时,输入成本可能高于点两层菜单。面板不能展示树所擅长的「还有哪些同类命令」——结果是匹配查询的,不是一张地图。只把部分命令收入面板会造成「搜不到就是没有」。嵌入式场景若抢了系统搜索快捷键,会和操作系统冲突。
怎么落地
- 给面板一条稳定、可发现的唤出方式(键盘组合在界面里写出来),进入后焦点在输入框。
- 索引的是用户会说的动作和目的地,而不是内部路由名;结果里仍可附分组,便于认出。
- 树和面板指向同一批命令,不要让某一条只活在树里或只活在面板里。
- 验证:对会说名称的人,从打开面板到执行应短于走树。对同一批命令,在面板里搜树里有的名称应能命中。找不到唤出方式的人,说明检索通道还没接上界面。