VOCABULARY / ENTRY
Focus Indicator
focus-indicator
When an interface element receives keyboard focus, a visible visual marker (such as an outline ring or highlight) shows where focus currently is, so keyboard users always know where their action will land.

Recognizing it
- The element with keyboard focus differs visibly from its neighbors
- The indicator stays visible while focus remains and does not fade out on its own
- The indicated area is not entirely covered by sticky headers, overlays, or other author content
Concept boundary
A focus indicator only answers where focus is now. It is not the hover, selected, or active state; it is a state style on an element rather than a separate component, and it does not decide where focus should move.
When to consider it
- The interface can be operated with a keyboard or other non-pointer input
- Buttons, links, or form controls have custom styling that overrides browser defaults
- The page has sticky headers, footers, or non-modal overlays that could cover the focused element
When to be cautious
- Do not remove the default outline for aesthetics without providing an equivalent
- Do not substitute an effect that appears only on hover or fades quickly for a persistent focus indicator
- Do not make the focus indicator identical to the selected style, leaving users unable to tell position from selection
Tradeoff
A prominent focus ring can clash with brand visuals, but showing it only for keyboard input via :focus-visible keeps keyboard access while sparing mouse users an unwanted outline.
Conditional rules · Editorial advice
Related entries
After focus is moved programmatically, a visible indicator is the only way users know they are now inside the dialog.
Visible focus is a precondition for these users to complete tasks, not a decoration.
A focus ring must keep enough contrast against the actual background; blurred translucent surfaces can weaken it.
Sources and what they support
WCAG 2.2 SC 2.4.7 (Level AA) requires that any keyboard-operable interface has a mode of operation where the keyboard focus indicator is visible; using the platform default focus indicator is one sufficient technique.
Retrieved: 2026-09-15WCAG 2.2 SC 2.4.11 (Level AA) requires that a component receiving keyboard focus is not entirely hidden by author-created content such as sticky headers, footers, or non-modal dialogs.
Retrieved: 2026-09-15WCAG 2.2 SC 2.4.13 (Level AAA) requires the focus indicator area to be at least a 2 CSS pixel thick perimeter of the component, with at least 3:1 contrast between the same pixels in focused and unfocused states.
Retrieved: 2026-09-15:focus-visible matches when an element has focus and the browser's input heuristics determine focus should be shown; use it to provide a custom indicator rather than removing focus styles with outline: none.
Retrieved: 2026-09-15 · Archived 2025-10-30Definitions reference these sources. Digital specimens, selection advice, relationships, and recipes are editorial work and have not been validated through user research.
Type extensions and implementation notes
This entry has no operable specimen yet; the illustration is an editorial sketch. When applied to a product, tab through the page with a keyboard to verify that every focusable element type shows a visible, sufficiently contrasting indicator that is not covered by fixed content.
{
"states": [
"unfocused",
"focus-visible",
"focus-hidden"
],
"a11y": [
"The focus indicator is always visible and unobscured during keyboard use",
"A custom indicator contrasts sufficiently with the background and the unfocused state",
"Focus, selected, and hover states are distinguishable"
],
"motion": "The indicator should appear immediately; any optional fade-in is omitted under reduced motion"
}Open the Agent JSON file for this entryThis file repeats every field of this entry verbatim and adds its sources, archive status, and editorial scope.