AccessLumens

WCAG 2.4.7

Focus Visible

SeriousLevel AAWCAG 2.0EAA enforcement-relevant

18.7%

of the 609 sites we scanned fail this

Ranging from 7.6% of US local government to 31.7% of US healthcare providers. Pooled across five targeted cohorts, so treat it as a convenience sample rather than a rate for the web.

What it means and how to fix it

What 2.4.7 covers

  • We detect this: A focus indicator removed and never replaced
  • Partly detected: An indicator present but too faint to seeContrast of the indicator is only partly measured; see 1.4.11.
  • No engine can detect this: A focus ring clipped by an ancestor with overflow hiddenA known false negative in our engine, not just a general limit: the indicator is present in the styles, so the check passes, while the user sees nothing. We would rather say so here than let the rate on this page look more complete than it is.
  • No engine can detect this: Indicators visible in one theme but not the otherWe scan one rendering at a time.

Of that, one failure is detectable automatically, and these are what the rates on this page measure. Each needs its own fix. The percentage is the share of all 609 scanned sites affected. These do not sum to the 18.7% above: a site can fail more than one of them, and most that fail any fail several.

  • There's no visible focus indicator18.7%

    Keyboard users cannot tell which element is focused without a visible focus indicator, making the page hard to navigate.

What it looks like in code

CSS
Fails
/* Removes the focus indicator from every control on the page */
*:focus {
  outline: none;
}
Passes
*:focus-visible {
  outline: 3px solid #0f766e;
  outline-offset: 2px;
}

This is nearly always deliberate: someone disliked the default ring and removed it without replacing it. :focus-visible shows the indicator to keyboard users without putting a ring on every mouse click, which is what the original reset was usually trying to avoid.

Shown for There's no visible focus indicator. Both halves are written rather than harvested: this failure lives in CSS rather than in the markup, so there is no page element to show.

For what the criterion formally requires, read the W3C Understanding document.

How often it fails

US healthcare providers66/208
31.7%
Indian financial services14/61
23%
EU e-commerce16/107
15%
Shopify DTC stores6/75
8%
US local government12/158
7.6%

Share of scanned sites in each cohort. These are five targeted studies, not a random sample of the web, so read the contrast between cohorts rather than any one figure as a web-wide rate.

Who fails it most3 cuts by country, state, sector

By country

Ireland5/12
41.7%
Germany4/19
21.1%
Netherlands3/15
20%
Italy2/12
16.7%
Poland1/11
9.1%
Spain1/11
9.1%
France0/12
0%
Sweden0/15
0%

By state

NY4/8
50%
KS4/10
40%
OH3/8
37.5%
MO2/8
25%
TX3/13
23.1%
LA2/9
22.2%
FL3/15
20%
CA4/25
16%

By sector

Telecom5/21
23.8%
Banking3/19
15.8%
Travel / Ticketing2/14
14.3%
Retail / Marketplace1/12
8.3%
Grocery1/12
8.3%
Fashion0/8
0%

Groups smaller than 8 sites are not shown: a rate over a handful of sites moves by tens of points on a single result.

What the numbers do not say

Focus visibility is usually removed on purpose. Someone disliked the default outline, removed it in a reset, and never replaced it. That makes this one of the cheapest criteria to fix and one of the most damaging to leave, because without it a keyboard user cannot tell where they are on the page at all.

What this does not measureLimits of these figures, and where the corpus came from
  • These are five targeted cohorts, not a random sample of the web. Per-cohort rates are the figure to quote; the pooled rate is a convenience sample.
  • Denominators count sites that produced a result. Sites that were blocked or errored are excluded rather than counted as passing.
  • Occurrence counts are floors: the engine records at most 25 occurrences of a rule per page.
  • The EU and Indian cohorts retained only the primary success criterion per finding, so a rule mapping to several criteria contributes to one of them in those two cohorts and to all of them in the other three.
Cohorts in the corpus, with sites scanned and attempted
CohortScannedAttempted
Shopify DTC stores7575
US local government158221
US healthcare providers208218
EU e-commerce107170
Indian financial services6172

Corpus generated 2026-09-18.

Check your own site

A free scan reports WCAG 2.4.7 alongside everything else, with the exact elements that fail.

Run a free scan

All accessibility rules and WCAG criteria