← 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 · ★ 15 · AI & Automation · score 77
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. --- ## 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 | --- ## Critical: No Keyboard Trap Users must never become unable to move focus away from a component using standard keys (Tab, Shift+Tab, Escape, arrow keys). The only permitted exception is an intentional modal dialog trap where Escape closes the dialog and returns focus to the trigger. **A keyboard trap with no exit is Critical** — it locks keyboard users and switch-access users into a dead end with no recovery path. --- ## Critical: All Interactive Elements Must Be Keyboard Reachable Every element that can be activated by mouse must be reachable and activatable by keyboard. **Use native elements** — they have keyboard support, focus management, and ARIA semantics built in at zero extra cost: ```html <!