C6.22.4Keyboard and pointer path equivalence设计研究

键盘导航路径与鼠标可达路径必须功能等价,不能只做视觉呈现

别名: 键盘等价 · 鼠标独占操作 · 功能可达性

概念解释

界面上每个用指针能完成的任务,键盘也必须能完成,结果一致,而不是仅仅“看起来也能点”。悬停才出现的删除、只能拖拽的排序、只能右键的重命名,对没有指针或不能精确定位的人等于不存在。功能等价比焦点圈是否画出来更硬:焦点可以走遍屏幕,若中途没有触发器,路径仍是断的。它不问 Tab 顺序美不美,问的是任务闭包。

机制

指针事件(hover、drag、contextmenu、双击)常被当成捷径直接绑到业务。键盘没有悬停,拖拽要用空格抓起加方向键移动的模式,右键要用 Shift+F10 或专用键。若业务只监听了指针事件,键盘焦点可以停在该元素上却发不出命令。自定义控件尤其容易漏:div 画成按钮,鼠标 onclick 有了,Enter/Space 没有。视觉层用 CSS 做出“可点”的外观,并不创建键盘操作器。等价失败往往出现在次要操作(删除、排序、批量),主按钮倒是做了。

怎么研究

列一份任务清单(创建、编辑、排序、删除、打开菜单、提交),指针走一遍,键盘走一遍,对每一项记:能否完成、步数差、是否需要启用未文档化的快捷键。把“能聚焦”和“能激活”分开编码。自动化可发现没有键盘监听的点击器,但拖拽排序和框选仍需人工。招募真实键盘用户,不要只让鼠标用户“试着不碰鼠标”。

边界

绘画、三维旋转等连续空间任务很难做到与指针同等效率,等价指的是“能够完成并达到同一结果”,允许更慢。触屏产品没有悬停,但这不自动给键盘补上删除入口。快捷键可以加速等价路径,不能充当唯一路径——记不住快捷键的人仍要能用 Tab 到达。只读展示(静态图、纯文本)没有指针操作,也就没有等价义务。

怎么落地

  • 凡 onclick / drag / contextmenu 绑定的命令,补上键盘激活:Enter/Space、抓取移动模式、菜单键。
  • 悬停才露出的操作改为焦点可见时同样露出,或放入明确的菜单。
  • 不要用“请使用鼠标完成此步骤”作为键盘用户的终点。
  • 验证:拔掉鼠标或关闭触控板,用产品声明支持的键盘完成核心任务清单;任何只能在指针下出现的控件,记为断路。

延伸

  • 同组C6.22.1 复合控件内部常用方向键导航,Tab只负责进出该控件 · C6.22.2 跳转链接允许键盘用户跳过重复的导航区块直达主要内容 · C6.22.3 漫游 tabindex 让复合控件内只有一个成员处于Tab序列,其余靠方向键切换
  • 相邻C6.05 焦点顺序 · C6.03 快捷键体系
  • 站内检索keyboard equivalence · pointer-only actions · operable

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C6.22.4