C1.21.1Primary mouse button设计
左键承担主选择,其语义在几乎所有平台上统一
别名: 左键 · 主选择 · 主按键
概念解释
鼠标左键通常承担主选择、激活、确认和拖动起始等高频动作。尽管系统允许左右键互换,它在多数桌面平台与应用中形成了最稳定的主按键约定;用户无需先学习即可预期点击对象会被选择或打开。
机制
系统在驱动层维护的其实是一个抽象的"主按键"(primary button)标记,而不是"左边那个物理按键"——单击、双击和拖动这些高层手势的判定,都建立在这个抽象标记之上。这个设计是刻意的:它让操作系统可以在设置里把"主按键"重新指派给物理右键,而不需要改动上层任何一个应用的逻辑,应用只要老老实实监听"主按键事件"而不是自己判断"是不是左边那个键",切换就是无缝的。长期保持这层间接映射不变,用户才能建立起稳定的肌肉记忆并跨应用迁移;一旦某个产品把主动作错放到非主按键上,用户会本能地按旧约定操作而出错。
边界
"左键"是常见默认而非生理必然:左利手用户可以在系统里把主按键设为物理右键,触控板和触屏也不一定存在物理左键这个概念。真正应当保持稳定的是"主选择语义"和它的可配置性,而不是要求所有人在物理上按同一侧。这里有一个容易踩中的工程陷阱:部分浏览器和操作系统的组合中,即便用户已经把系统主按键设置成了物理右键,网页层收到的 MouseEvent.button 数值有的环境会跟着交换、有的环境却仍然按物理位置编号——如果应用代码里直接判断"button 值是不是 0"而不是依赖系统解释后的主按键语义,就会在左利手用户的设备上得出错误结论。
怎么落地
- 将核心选择和激活动作绑定平台解释后的主按键事件,而非硬编码物理左键或某个固定的按键编号。
- 保留系统主/次按键交换设置,文案使用"主键"或"单击"而非假定左右手。
- 将额外按键仅用于可发现的加速操作,不取代基本路径。
- 验证办法:把系统层的主按键设置切换为物理右键后,重新走一遍产品的核心选择、激活和拖动流程,确认功能没有跟着物理左键"跑丢"。