Keyboard navigation is the ability to operate all functionality on a web page
using only a keyboard, without requiring a mouse or pointer device. It is a
fundamental requirement for users with motor disabilities, power users, and
anyone using assistive technology such as a screen reader.
[1]
Many users cannot use a mouse. This includes people with motor impairments,
tremors, repetitive strain injuries, and those using switch access devices or
eye-tracking software. All of these users depend on keyboard-operable interfaces.
[2]
Screen reader users also navigate primarily by keyboard. An interface that
fails keyboard users fails screen reader users too.
| Key | Action |
|---|---|
| Tab | Move focus to next interactive element |
| Shift + Tab | Move focus to previous interactive element |
| Enter | Activate links and buttons |
| Space | Activate buttons, toggle checkboxes |
| Arrow keys | Navigate within components (menus, tabs, sliders) |
| Escape | Close dialogs, dismiss menus |
| Home / End | Jump to first or last item in a list |
WCAG 2.1.1 requires that all functionality available via mouse is also available
via keyboard, unless the functionality requires a path-dependent input (such as
freehand drawing).
[1]
This includes:
onclick-only handlers. Attaching interaction only to click events excludes
keyboard users. Always pair click handlers with keydown handlers for Enter and
Space, or use a native button element which handles this automatically.
Positive tabindex values. Using tabindex values greater than 0 overrides the
natural DOM tab order and creates a confusing navigation experience. Use
tabindex="0" to add an element to the tab order, or tabindex="-1" to allow
programmatic focus only.
[3]
Mouse-only events. mouseover, mouseout, and mousemove events have no keyboard
equivalent. Always provide keyboard-accessible alternatives for any functionality
triggered by these events.
Last edited Apr 5, 2026, 7:12 PM · P**** J****