missing-focus-indication
Web validation
Keyboard users and many people with low vision depend on a visible focus indicator to know which interactive element is currently active. Without it, they can lose track of their position and be unable to operate links, buttons, or form controls. If your styles remove or hide the browser's default focus indicator, provide a clear custom indicator that stays visible and is not obscured by other content. A focus indicator that is present but too faint is a separate issue, covered by the related low-focus-contrast validation.
Pass Patterns
Default browser focus indicator
No CSS removes the outline, so every interactive element keeps the browser's focus indicator.
<a href="/products">View products</a>
<button type="submit">Submit</button>Custom indicator with :focus-visible
The button defines a strong custom focus indicator instead of removing it.
<button class="primary-action">Continue</button>
<style>
.primary-action:focus-visible {
outline: 3px solid #000;
outline-offset: 3px;
}
</style>Fail Patterns
Focus indicator removed with outline: none
The CSS removes the outline on focus and adds nothing in its place, so a keyboard user cannot see when the button is focused.
<button class="icon-button">
<span aria-hidden="true">search</span>
<span class="sr-only">Search</span>
</button>
<style>
.icon-button:focus { outline: none; }
</style>WCAG techniques
Sufficient techniques
- G149: Using user interface components that are highlighted by the user agent when they receive focus
- G195: Using an author-supplied, visible focus indicator
- C45: Using CSS :focus-visible to provide keyboard focus indication
- C40: Creating a two-color focus indicator to ensure sufficient contrast with all components
Failure techniques
- F55: Failure of Success Criteria 2.1.1, 2.4.7, 2.4.13, and 3.2.1 due to using script to remove focus when focus is received
- F78: Failure of Success Criterion 1.4.11, 2.4.7 and 2.4.13 due to styling element outlines and borders in a way that removes or renders non-visible the visual focus indicator
ACT Rules
Try It Yourself
Using a keyboard
- Open the page in a browser.
- Use the Tab key to move through links, buttons, and form fields.
- Use Shift+Tab to move backwards through the same elements.
- Watch whether each focused element shows a clear visual indicator.
Expected results: Every interactive element shows a visible focus indicator when it receives keyboard focus, from the browser or from custom CSS.
Actual results: Some elements receive focus but show no visible change.
FAQ
How does this issue relate to 2.4.7 Focus Visible?
SC 2.4.7 requires any keyboard operable interface to have a mode where the focus indicator is visible. When styles remove or hide the indicator for interactive elements, users cannot see which element has focus, so the page does not meet the criterion.
Why is this issue marked as Serious?
Without a visible focus indicator, sighted keyboard users cannot tell which element is active, which can make links, buttons, and forms effectively unusable for them. The elements remain operable by assistive technology, but the loss of visual tracking is a significant barrier, so it is rated serious.
Standards and Regulations
| Standard | Success Criterion | Reference |
|---|---|---|
| WCAG 2.2 | 2.4.7 Focus Visible (AA) | Any keyboard-operable user interface has a mode of operation where the keyboard focus indicator is visible. |
| EN 301 549 | 9.2.4.7 Focus Visible | Same as the WCAG text. |
| Section 508 | 1194.21(c) | A well-defined on-screen indication of the current focus shall be provided that moves among interactive interface elements as the input focus changes. The focus shall be programmatically exposed so that assistive technology can track focus and focus changes. |
| 508 Trusted Tester | 2.4.7-focus-visible, 4.D | A visible indication of focus is provided when focus is on the interface component. |