C6.22.4Keyboard and pointer path equivalence设计研究
键盘导航路径与鼠标可达路径必须功能等价,不能只做视觉呈现
别名: 键盘等价 · 鼠标独占操作 · 功能可达性
概念解释
界面上每个用指针能完成的任务,键盘也必须能完成,结果一致,而不是仅仅“看起来也能点”。悬停才出现的删除、只能拖拽的排序、只能右键的重命名,对没有指针或不能精确定位的人等于不存在。功能等价比焦点圈是否画出来更硬:焦点可以走遍屏幕,若中途没有触发器,路径仍是断的。它不问 Tab 顺序美不美,问的是任务闭包。
机制
指针事件(hover、drag、contextmenu、双击)常被当成捷径直接绑到业务。键盘没有悬停,拖拽要用空格抓起加方向键移动的模式,右键要用 Shift+F10 或专用键。若业务只监听了指针事件,键盘焦点可以停在该元素上却发不出命令。自定义控件尤其容易漏:div 画成按钮,鼠标 onclick 有了,Enter/Space 没有。视觉层用 CSS 做出“可点”的外观,并不创建键盘操作器。等价失败往往出现在次要操作(删除、排序、批量),主按钮倒是做了。
怎么研究
列一份任务清单(创建、编辑、排序、删除、打开菜单、提交),指针走一遍,键盘走一遍,对每一项记:能否完成、步数差、是否需要启用未文档化的快捷键。把“能聚焦”和“能激活”分开编码。自动化可发现没有键盘监听的点击器,但拖拽排序和框选仍需人工。招募真实键盘用户,不要只让鼠标用户“试着不碰鼠标”。
边界
绘画、三维旋转等连续空间任务很难做到与指针同等效率,等价指的是“能够完成并达到同一结果”,允许更慢。触屏产品没有悬停,但这不自动给键盘补上删除入口。快捷键可以加速等价路径,不能充当唯一路径——记不住快捷键的人仍要能用 Tab 到达。只读展示(静态图、纯文本)没有指针操作,也就没有等价义务。
怎么落地
- 凡 onclick / drag / contextmenu 绑定的命令,补上键盘激活:Enter/Space、抓取移动模式、菜单键。
- 悬停才露出的操作改为焦点可见时同样露出,或放入明确的菜单。
- 不要用“请使用鼠标完成此步骤”作为键盘用户的终点。
- 验证:拔掉鼠标或关闭触控板,用产品声明支持的键盘完成核心任务清单;任何只能在指针下出现的控件,记为断路。