Whole page
No visible keyboard focus
WCAG 2.2 success criterion 2.4.7 Focus Visible (Level AA)
- WCAG 2.2
- 2.4.7 Focus Visible
- Level
- AA
- Default severity
- Needs review
- Available in
- Free
Updated for Lumtera 1.2.2 and Lumtera Pro 1.1.1.
Why does it matter?
Keyboard users follow the focus indicator to know where they are on the page, the way mouse users follow the pointer. Themes and plugins often remove it with "outline: none" because it looks untidy on click, and give nothing in its place, so keyboard users press Tab and cannot see what they landed on.
Who it affects: Keyboard, screen reader and low-vision users — every visitor meets the page title, language, landmarks, keyboard focus, target sizes and zoom settings on every page.
What does Lumtera flag?
Found by the keyboard walk: in review mode's Keyboard tab, "Check keyboard access" focuses every stop the Tab key reaches (up to 300) and compares how it looks unfocused and focused: its own styles, its parent's, its label and neighbouring element, inner elements such as an accordion button's text, SVG icon fill and stroke, and its ::before and ::after. If nothing visible changes, it is for review, with any CSS rules that remove the outline listed as evidence; stops that look the same are grouped. Styles for :focus-visible are applied as a keyboard would see them; when that was needed and some stylesheets come from another site and cannot be read, it is a tip instead. A script that draws focus elsewhere can fool it, so confirm by pressing Tab.
Check ID page-focus-visible, as shown in review mode and saved results.
How do I fix it in WordPress?
Give links, buttons and form fields a clear focus style, and remove any "outline: none" or "outline: 0" rule that has no replacement. For example, add a:focus-visible, button:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; } in Appearance → Customize → Additional CSS or the Site Editor's Styles. Then press Tab through the page and check you can always see which item has focus.
Example
.main-navigation a:focus { outline: none; }
.main-navigation a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
How do I check the fix?
- Reload the page in review mode and run the Keyboard tab again (or Test menus and pop-ups for menus, dialogs and tabs). The finding disappears once the page passes.
- Load the page and press Tab: a "Skip to content" link should appear first, and you should always see where focus is, even under a sticky header. Pinch-zoom on a phone, and check the browser tab shows a meaningful title.
Check your pages with Lumtera
This check is free. Open any post, choose Accessibility in the admin bar, then the Keyboard tab: Lumtera numbers every Tab stop and checks the page with the keyboard, theme, menus and footer included, one page at a time. Lumtera Pro's Page checks screen (Lumtera → Checks → Page checks) runs the same keyboard walk on every page you select, at desktop width and, with "Also check at phone width", again at 390 pixels, and saves the results with the page; scheduled checks have no browser, so they do not run it.
Related checks
-
WCAG 2.4.2 · AError
Page title is missing or generic
-
WCAG 3.1.1 · AError
Page language is missing or not valid
-
WCAG 1.3.1 · ANeeds review
Page headings are missing an H1 or skip levels
-
WCAG 1.3.1 · ANeeds review
Page landmarks are missing or share a name
-
WCAG 2.4.1 · ANeeds review
No working way to skip to the main content
-
WCAG 1.4.4 · AAError
Zooming is disabled
Start with the free plugin today
All 69 content checks and 33 whole-page checks, fixes you approve with undo, and the site report — free, with no account and no page limits.