SC 2.1.1 级别 A WCAG 2.0
键盘
页面上的每项功能必须仅通过键盘即可操作——不依赖鼠标移动、拖拽或特定时序。屏幕阅读器、开关控制和语音控制用户均依赖这一基准能力。
要求内容
内容的所有功能必须可通过键盘界面操作,且不对单次按键的时序有特定要求。用户必须能够通过Tab键到达每个可交互元素,通过Enter或空格键激活它,并通过方向键及其他标准组合键操作复杂组件。
本准则有两项有限例外:依赖用户移动路径而非仅依赖端点的输入(如手绘、签署文件),以及模拟现实世界中路径本身具有意义的模拟操作。
如何满足
- 使用原生可交互元素(
<button>、<a href>、<input>、<select>)——它们默认支持键盘操作。 - 对于使用
<div>或<span>构建的自定义组件,根据具体模式添加role、tabindex="0"以及Enter、空格、Escape和方向键的键盘事件处理程序。 - 遵循ARIA创作实践指南中关于菜单、标签页、组合框、对话框和树形视图的规范——每种模式均有明确的键盘交互模型。
- 为每种仅鼠标手势提供键盘等效操作:拖放需要提供通过按钮重新排序的备用方式,仅悬停触发的菜单需要支持点击打开,滑动轮播需要提供上一项/下一项按钮。
- 通过拔掉鼠标、完整走查整个操作流程来进行测试。
常见失误
<div onclick>未添加role="button"、tabindex="0"或键盘事件处理程序——键盘用户完全无法访问。- 自定义下拉菜单触发器可聚焦,但选项无法通过方向键导航。
- 看板拖放、文件上传器或画布工具没有键盘替代方案。
- 模态框关闭按钮存在但未实现Escape键处理程序。
- 仅在鼠标悬停时出现的工具提示和菜单,在键盘焦点下从不显示。
- 轮播和图片库仅支持滑动或点击没有tabindex的指示器进行操作。
axe和Lighthouse会标记缺少 tabindex 和缺少无障碍名称的问题,但无法判断自定义下拉菜单是否真正响应方向键——该部分须进行手动测试。
为何重要
这是可操作性方面最重要的单一成功准则。屏幕阅读器用户依靠键盘导航。开关控制用户模拟键盘操作。语音控制用户发出的指令映射到键盘事件。患有重复性劳损(RSI)的高级用户也依赖键盘。一个不满足2.1.1的网站实际上将所有无法使用鼠标的用户拒之门外——而这一群体远比表面看起来更为庞大。