Free community resource
WCAG 2.1.1

Keyboard-Only Testing

Assistive technology

Keyboard-only testing is the practice of navigating and operating a website
or application using only a keyboard, without a mouse or pointer device. It
is one of the most effective manual accessibility tests available — fast to
perform, requires no specialist software, and catches a category of failures
that automated tools cannot detect.
[1]


Who benefits from keyboard testing

Testing by keyboard simulates the experience of:

  • Users with motor disabilities who cannot use a mouse
  • Screen reader users, who navigate primarily by keyboard
  • Power users who prefer keyboard navigation for efficiency
  • Users of switch access devices and other alternative input methods

[2]


Setup

No specialist software is required. Before starting:

  1. Disconnect or physically move your mouse out of reach — this prevents
    accidentally reaching for it during the test
  2. Use Chrome, Firefox, or Edge on Windows, or Safari on macOS
  3. On macOS, enable full keyboard access: System Settings → Keyboard →
    Keyboard navigation
    (toggle on)
  4. Clear any browser extensions that might interfere with Tab focus

Core keyboard shortcuts

Key Action
Tab Move focus to next interactive element
Shift + Tab Move focus to previous interactive element
Enter Activate links, submit forms, activate buttons
Space Activate buttons, toggle checkboxes, scroll page
Arrow keys Navigate within components (menus, tabs, sliders, radios)
Escape Close dialogs, dismiss menus, cancel actions
Home / End Jump to first or last item in a list or table
Page Up / Down Scroll the page

Step by step testing process

Step 1 — Test the skip link

Load the page and immediately press Tab once. The very first element to
receive focus should be a skip link labelled "Skip to main content" or
similar. It should become visible on focus.

Press Enter to activate it. Then press Tab once more — focus should land
inside the main content area, not back at the top of the navigation. If
it does not, the skip link is broken.
[1]

Step 2 — Tab through the entire page

Press Tab repeatedly from the top of the page. At each stop, verify:

  • Focus is visible — there is a clear visual indicator showing which
    element has focus
  • Focus order is logical — focus moves top to bottom, left to right,
    following the visual layout
  • Every interactive element receives focus — links, buttons, inputs,
    checkboxes, selects, and custom widgets should all be reachable
  • No element traps focus unexpectedly — Tab always moves forward

Step 3 — Activate every interactive element

For each interactive element that receives focus:

  • Press Enter on links — verify they navigate to the correct destination
  • Press Enter or Space on buttons — verify the expected action occurs
  • Type into text inputs — verify input is accepted
  • Press Space on checkboxes — verify they toggle
  • Use arrow keys on radio groups — verify selection changes
  • Press Enter or Space on custom widgets — verify they respond correctly

Step 4 — Test dialogs and overlays

Open any modal dialogs, dropdown menus, or overlays on the page:

  • Verify focus moves into the dialog or menu on open
  • Tab through the dialog — verify focus does not escape to the page behind
  • Press Escape — verify the dialog closes
  • After closing, verify focus returns to the element that triggered the dialog

Step 5 — Test forms

Navigate to any forms on the page:

  • Tab to each field — verify the label is clear from context
  • Tab past required fields without completing them and attempt to submit
  • Verify error messages appear and are reachable by keyboard
  • Verify you can navigate to and correct each error without reloading the page

Step 6 — Test navigation and menus

For dropdown navigation menus:

  • Tab to the menu trigger — verify it receives visible focus
  • Activate with Enter or Space
  • Navigate menu items with arrow keys or Tab
  • Press Escape to close the menu
  • Verify focus returns to the trigger on close

[3]


What to record

For each failure found, record:

  • The page URL
  • The element involved (describe it or copy its visible label)
  • What happened
  • What should have happened
  • The relevant WCAG success criterion

Tools such as a11ytest.ai can detect many keyboard-related failures
automatically — including skip link behaviour, positive tabindex values,
and modal focus management — but manual keyboard testing remains essential
for verifying the full experience.


Common failures to look for

  • No skip link, or skip link does not move focus correctly
  • Focus is invisible (outline: none applied globally)
  • Focus order does not match visual order
  • Interactive elements not reachable by Tab
  • Modal dialogs that do not trap focus
  • Focus not returned after closing dialogs
  • Custom widgets that only respond to mouse clicks
  • Dropdown menus that cannot be closed with Escape

References

  1. W3C Web Accessibility Initiative. Understanding Success Criterion 2.1.1: Keyboard. https://www.w3.org/WAI/WCAG22/Understanding/keyboard.html
  2. W3C Web Accessibility Initiative. Keyboard Compatibility. https://www.w3.org/WAI/perspective-videos/keyboard/
  3. WebAIM. Keyboard Accessibility. https://webaim.org/techniques/keyboard/

Last edited Apr 7, 2026, 7:29 PM · P**** J****