mcpField
K
keyboard-accessibility

keyboard-accessibility

github.com/planetabhiDesign & UI173 installsUpdated 7w ago
Repository

About keyboard-accessibility

A skill for reviewing and implementing keyboard accessibility in interactive interfaces. It provides severity guidance, WCAG 2.2 criteria, and focused references for common widgets and focus behavior.

Key features

  1. 01Keyboard-only interaction guidance
  2. 02Severity scale for accessibility findings
  3. 03References for widgets and focus behavior
  4. 04WCAG 2.2 criteria coverage
  5. 05Review and edit confirmation guidance

Use cases

  1. 01Auditing keyboard access in an interface
  2. 02Checking focus handling in dialogs and widgets
  3. 03Planning keyboard accessibility fixes

Install

Copy the command and run it in a terminal.

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

After installing, type/keyboard-accessibilityin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with 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

Details

From the project README

Keyboard accessibility

Apply these rules to every interactive element and feature. Examples are React-first. Vanilla JavaScript is shown only where it differs meaningfully. The detailed rules and code examples are bundled under ./reference/. Read the relevant file before applying or citing a rule.

Core mandate

All interactive functionality must be fully usable with a keyboard alone, with no mouse or touch required, except where the function genuinely depends on path-based movement (for example, freehand drawing). Keyboard access is not the same as "can Tab to it": native and composite widgets use different key conventions, and users must be able to reach, operate, and leave every component.

Confirmation

When you are only reviewing, report findings without pausing. Before applying edits to existing files, confirm the intended change set first, and ask for any context you need to judge correctly instead of guessing.

Severity scale

LevelMeaning
CriticalBlocks task completion entirely for keyboard and assistive technology (AT) users
SeriousSignificantly impairs keyboard access, with no reasonable workaround
ModerateCreates friction, but a workaround exists
MinorBest-practice gap with marginal impact

Judge severity by the actual effect on the task, not the rule alone: can the user reach, operate, and leave the component; is an essential task blocked; is focus lost or placed misleadingly.

Reference map

The rules and code examples are bundled under ./reference/. Read the relevant file before applying or citing a rule. Severity reflects the impact when the rule is violated.

Key WCAG 2.2 criteria

  • 2.1.1 Keyboard (A), Critical if violated
  • 2.1.2 No Keyboard Trap (A), Critical if violated
  • 2.1.4 Character Key Shortcuts (A)
  • 2.4.1 Bypass Blocks (A)
  • 2.4.3 Focus Order (A)
  • 2.4.7 Focus Visible (AA)
  • 2.4.11 Focus Not Obscured Minimum (AA)
  • 2.4.13 Focus Appearance (AAA)
  • 2.5.1 Pointer Gestures (A)
  • 2.5.3 Label in Name (A)
  • 2.5.8 Target Size Minimum (AA)

References

Standards horizon: These rules target WCAG 2.2 AA. WCAG 3.0 is in development. Keyboard and focus requirements are expected to remain broadly compatible. Monitor https://www.w3.org/TR/wcag-3.0/.

Anti-patterns

  • Positive tabindex values to force order; fix the DOM order instead.
  • Clickable div or span where a button or a belongs.
  • Blanket preventDefault() that swallows expected keys.
  • Removing the focus outline without a visible replacement.
  • aria-hidden="true" on a focusable element, which strands focus.

Authored by @planetabhi

Comments

Markdown supported