← ClaudeAtlas

keyboardlisted

Load this skill for every project containing interactive UI elements — buttons, links, modals, dropdowns, sliders, tabs, carousels, or any custom widget. Under no circumstances create an interactive component that cannot be fully operated by keyboard alone. Absolutely always ensure visible focus indicators, logical tab order, and no keyboard traps. Apply these rules to every interactive element without exception.
mgifford/accessibility-skills · ★ 48 · AI & Automation · score 78
Install: claude install-skill mgifford/accessibility-skills
# Keyboard Accessibility Skill > **Canonical source**: `examples/KEYBOARD_ACCESSIBILITY_BEST_PRACTICES.md` in `mgifford/ACCESSIBILITY.md` > This skill is derived from that file. When in doubt, the example is authoritative. Apply these rules to every interactive UI element and feature. --- ## Core Mandate All interactive functionality must be fully usable with a keyboard alone — no mouse or touch required, except where the underlying function genuinely depends on path-based movement. Keyboard access is not equivalent to pressing Tab through every control — native and composite widgets use different key conventions, and users must understand how to operate custom widgets. --- ## Severity Scale (this skill) | Level | Meaning | | --- | --- | | **Critical** | Blocks task completion entirely for keyboard and AT users | | **Serious** | Significantly impairs keyboard access; workaround unreasonable | | **Moderate** | Creates friction for keyboard users; workaround exists | | **Minor** | Best-practice gap; marginal keyboard impact | Do not assign severity from the rule alone — determine the actual effect on the task. Consider whether the defect prevents reaching, operating, or leaving a component; whether it blocks an essential task or only an optional feature; whether focus is lost or placed misleadingly; and whether a reasonable keyboard method remains available. --- ## Critical: No Keyboard Trap If focus can enter a component, users must be able to move focus away using