mcpField
K
keyboard-accessibility

keyboard-accessibility

github.com/planetabhi设计与 UI173 次安装7 周前更新
代码仓库

关于 keyboard-accessibility

用于审查和改进交互界面键盘可访问性的技能。它提供问题严重程度分级、WCAG 2.2 标准及常见组件和焦点行为的参考资料。

主要功能

  1. 01键盘独立操作指南
  2. 02可访问性问题严重程度分级
  3. 03组件与焦点行为参考
  4. 04涵盖 WCAG 2.2 标准
  5. 05审查与修改确认指引

适用场景

  1. 01审查界面的键盘操作能力
  2. 02检查对话框和组件的焦点管理
  3. 03规划键盘可访问性修复

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/planetabhi/skills --skill keyboard-accessibility

安装后在 Claude Code 中输入/keyboard-accessibility确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
checklist.md
composite-widgets.md
dialogs.md
focus-not-obscured.md
focus-order.md
focus-visibility.md
input-alternatives.md
keyboard-traps.md
native-elements.md
navigation-and-notifications.md
skip-links.md
visibility-mechanisms.md
widget-keys.md

详细介绍

键盘无障碍

将这些规则应用于每个交互元素和功能。示例优先使用 React。只有在纯 JavaScript 与 React 的做法有显著差异时,才会展示纯 JavaScript 示例。详细规则和代码示例收录在 ./reference/ 下。应用或引用规则前,请先阅读相关文件。

核心要求

所有交互功能都必须能仅用键盘完整操作,无需鼠标或触摸;但真正依赖路径移动的功能(例如徒手绘图)除外。键盘可访问不等于“能用 Tab 键聚焦到它”:原生控件和复合控件使用不同的按键约定,用户必须能够到达、操作并离开每个组件。

确认

如果你只是在审查,请直接报告发现的问题,不必暂停。修改现有文件前,请先确认预期的修改范围;如需更多上下文才能准确判断,请先询问,不要猜测。

严重程度等级

等级含义
严重完全阻碍键盘和辅助技术(AT)用户完成任务
高严重影响键盘访问,且没有合理的替代方法
中造成不便,但存在替代方法
低最佳实践方面的不足,影响较小

根据对任务的实际影响判断严重程度,而非仅依据规则本身:用户能否到达、操作并离开该组件;是否有关键任务受阻;焦点是否丢失或被放置在误导性的位置。

参考索引

规则和代码示例收录在 ./reference/ 下。应用或引用规则前,请先阅读相关文件。违反规则时的严重程度取决于其影响。

WCAG 2.2 关键准则

  • 2.1.1 键盘(A),违反时为严重
  • 2.1.2 无键盘陷阱(A),违反时为严重
  • 2.1.4 字符键快捷键(A)
  • 2.4.1 绕过区块(A)
  • 2.4.3 焦点顺序(A)
  • 2.4.7 焦点可见(AA)
  • 2.4.11 焦点未被遮挡(最低要求)(AA)
  • 2.4.13 焦点外观(AAA)
  • 2.5.1 指针手势(A)
  • 2.5.3 标签名称(A)
  • 2.5.8 目标尺寸(最低要求)(AA)

参考资料

标准展望: 这些规则以 WCAG 2.2 AA 为目标。WCAG 3.0 仍在 制定中。键盘和焦点要求预计将保持广泛兼容。请关注 https://www.w3.org/TR/wcag-3.0/.

反模式

  • 使用正数 tabindex 值强制调整顺序;应改为调整 DOM 顺序。
  • 在应使用 button 或 a 的地方使用可点击的 div 或 span。
  • 不加区分地调用 preventDefault(),吞掉预期按键。
  • 移除焦点轮廓,却不提供可见的替代样式。
  • 在可聚焦元素上设置 aria-hidden="true",导致焦点无处可去。

由 @planetabhi 撰写

评论

支持 Markdown