F1.06.1muscle memory设计研究
位置变动会废掉已形成的肌肉记忆
别名: 位置记忆 · positional constancy · 动作程序
概念解释
用了三个月的工具栏里,「加粗」一直在从左数第三个。某次改版把它和「斜体」对调,手指仍点原位,于是一篇文档被批量斜体。人不是没看见新图标,是手已经先按下去了。肌肉记忆(muscle memory)把高频控件编码成一个坐标或一个槽位,而不是每次去读标签。位置一改,旧程序还在跑,点到的是现在占着那个槽的别人。
这是已经形成之后被拆掉,不是从未形成。
机制
重复足够多次之后,选择不再走视觉搜索,而走动作程序:手从当前停驻点走到一个被记住的相对位置。程序绑定的是槽,不是语义。改版如果只换了槽里的内容,程序会诚实地执行,把新内容当成旧命令。这是 Reason 所说的疏忽性失误(slip):意图仍是加粗,动作落在了斜体上。
越是不看屏幕、赶时间、或同时在说话,程序越会先于阅读触发。所以改位置对专家的伤害大于新手——新手还在读标签,专家的手已经出发。
怎么研究
先让人在稳定布局里把同一动作做到自动化(反应时下降、注视不再落到标签上),再把目标与邻居对调,测随后若干次试验。
自变量:对调前的练习次数、对调的是相邻还是跨区、改版时有无动画或标记提示。 因变量:点到旧槽位的次数、第一次成功命中新位置的时间、注视是否重新回到标签。
关键是确认自动化已经发生再去拆:若练习不足,测到的只是一次重新学习,不是记忆被废。
边界
很少使用的入口没有程序可废,挪动几乎无感。用户主动拖动的自定义布局是他们自己写的程序,产品更新不应覆盖。跨设备同步如果把手机的槽位套到桌面,两套程序会互相污染。改的是视觉样式而坐标没变(图标换皮、颜色改)时,程序通常还能命中,这条不涉及。
怎么落地
- 高频控件的槽位一旦发布,就当作公共 API:新增入口往空位加,不插入到已有高频项中间把后面的槽位全部右移。
- 非改不可时,让旧槽在一到两个版本里留一块「已移动」的残影或跳转,而不是当场对调。
- 工具栏重排、底栏改图标顺序、设置页把常用项挪到别的分组,都要按「会不会废掉槽位」审一遍。
- 验证:找已经能盲点该控件的人,改版后让他们立刻做一次,不给阅读时间。手还落在旧槽,就是记忆被废掉的现场。