WCAG 2.0 · Level A · Operable
2.1.1 Keyboard
Make all functionality operable through a keyboard interface without requiring specific timings for individual keystrokes. The exception is for an underlying function that inherently depends on the path of movement rather than its endpoints.
Manual verification
How to validate 2.1.1 by hand
Operate every feature using only a keyboard, without a mouse or touch input.
Start with the extension result
Reopen the reported URL and reproduce the same state (for example, after expanding a menu or submitting a form). Use the result’s Highlight action when available, or its affected-element details and CSS selector, to find the reported content. Apply the checks below to that content and its context. If the element or state has changed, rescan and record that difference before deciding whether the finding still applies.
- Start before the first interactive control and use Tab/Shift+Tab to reach every link, button, input, menu, dialog, and custom widget.
- Use Enter, Space, arrow keys, Escape, and other expected keys to perform each task and operate each widget.
- Repeat the full task in expanded, error, and modal states; check that keyboard operation does not require timed keystrokes.
Evidence to record
Record the task, focused element, key pressed, expected action, and any point where focus or operation is unavailable.
Scope and exceptions
Some functions inherently depend on the path of movement rather than endpoints; assess the exception against the underlying function, not the current pointer-only design.
Record the review outcome
- Confirmed: the recorded evidence shows the requirement is not met in the tested page state, and no applicable exception explains it.
- Not reproduced: the reported issue is absent in the current state. Record the URL, state, and affected element you checked; this does not prove other pages or states conform.
- Needs more review: evidence is incomplete, the content requires human judgment, or an exception is uncertain. Record what remains to be checked instead of treating it as a pass.
Why it matters
Keyboard operation also supports alternate keyboards, switch devices, speech input, and other tools that send keyboard commands. A mouse action is not automatically exempt because it is commonly performed with a pointer.
Examples and distinctions
Use native controls
Links, buttons, inputs, and selects already provide familiar keyboard behavior in browsers. Choose the element that matches the action.
Custom controls
A custom menu, slider, or dialog needs a keyboard interaction model that supports its purpose, including focus and the expected keys.
Path dependent input
Freehand drawing is an example where the underlying function depends on the movement path. A function does not qualify for the exception merely because the current interface uses dragging.