Keyboard
All page functionality must be operable through a keyboard interface, without requiring specific timings for individual keystrokes.
What it requires
Every interactive element on the page — links, buttons, dropdowns, modals, sliders, tabs, accordions — must be reachable and operable using only the keyboard. The required interaction model is platform-conventional: Tab to move focus, Shift+Tab to move backwards, Enter to activate links, Enter or Space to activate buttons, Arrow keys for radios and tabs, Escape to close modals.
The most common failure is interactive elements built from `<div>` or `<span>` without `tabindex="0"` and without a keyboard event handler. The element looks clickable but cannot receive focus.
Common Shopify failure
Image carousels with custom previous/next arrows implemented as `<div>` with `onclick` handlers — keyboard users cannot reach them. Variant pickers built from styled `<div>` swatches without role or tabindex.
How to fix it
Replace `<div onclick>` patterns with `<button type="button">`. For custom widgets that genuinely need a non-button host, add `role="button" tabindex="0"` and a keyboard event handler that responds to Enter and Space.
Primary source: W3C — WCAG 2.0 Understanding 2.1.1