
禁用的表单控件(如 `disabled` 的 ``、`
在 Web 无障碍(a11y)测试中,一个常见误区是认为所有可见控件都必须能通过 Tab 键聚焦。实际上,HTML 标准明确规定:disabled 属性会使元素既不可交互,也不参与顺序键盘导航(即不进入 Tab 序列)。例如以下代码:
该输入框将被浏览器自动排除在 tabindex 流之外——这是预期且合规的行为,不应视为缺陷。
✅ 正确理解:
- ✅ disabled 元素不接收 Tab 焦点 → 符合规范(HTML Living Standard § 6.7.3)
- ✅ 屏幕阅读器(NVDA、JAWS、VoiceOver)仍可读取其标签、值和 disabled 状态(需配合
- ✅ 用户可通过屏幕阅读器专属导航方式访问:
- 向下箭头键(↓):逐个遍历 DOM 节点(虚拟光标模式)
- E 键(Elements List):快速跳转到下一个表单控件(NVDA/JAWS 默认)
- B 键:跳至按钮,C 键:跳至复选框,R 键:跳至单选按钮(支持语义导航的屏幕阅读器)
⚠️ 注意事项:
- ❌ 不要为 disabled 元素添加 tabindex="0" —— 这会破坏语义一致性,导致键盘用户可聚焦却无法操作,违反 WCAG 2.1 SC 2.1.1(Keyboard)。
- ✅ 若需让“只读但可见”的内容参与 Tab 导航,请改用 readonly + tabindex="0"(适用于文本输入),并确保视觉样式明确传达其不可编辑性。
- ✅ 对于禁用的复选框/单选按钮,务必确保其
? 总结:
Tab 键跳过 disabled 表单控件不是缺陷,而是规范实现。无障碍验收重点应转向:
- 控件是否具备清晰的语义标签(
- 是否正确暴露 disabled 状态(无需额外 ARIA,原生属性已足够);
- 是否提供替代导航路径(如结构化列表、标题跳转)以保障信息可达性。
真正的可访问性,不在于“所有元素都能 Tab 到”,而在于“所有用户都能可靠地发现、理解并响应界面状态”。










