Вебсправочник
Справочник CSS

Псевдокласс :focus-visible: заметный фокус

Как выделять активный элемент для пользователя клавиатуры и не убирать стандартную обводку без замены.

Как это работает

:focus-visible применяется, когда браузер считает, что фокус нужно показать визуально. Часто это происходит при переходе клавишей Tab, но поведение зависит от элемента и способа взаимодействия. Псевдокласс позволяет оформить фокус без собственного отслеживания клавиатуры.

Сделайте контур хорошо различимым на фоне кнопки и окружающей поверхности. Outline не занимает место в раскладке, а outline-offset отделяет его от края. Проверьте, что родитель с overflow не обрезает обводку.

Пример в интерфейсе

a { display: inline-block; padding: 12px 18px; background: #eaf4ee; color: #11694e; }
a:focus-visible { outline: 3px solid #b87912; outline-offset: 4px; }

Значения и поведение

Значение или правило Результат
:focus-visible Фокус с учётом браузерных эвристик.
outline Обводка без изменения размеров.
outline-offset Расстояние от края до обводки.
:focus Любой фокус независимо от способа его появления.

На что обратить внимание

Правило outline: none без равноценной замены лишает пользователя клавиатуры информации о текущем положении на странице.

Проверьте на практике

Перейдите к ссылке клавишей Tab, затем нажмите Enter. Сравните фокус с наведением мыши и проверьте видимость на светлом и тёмном фоне.

Связанные темы: selectors, border.

Попробуйте сами

HTML + CSS песочница
РЕЗУЛЬТАТ · ИЗОЛИРОВАННЫЙ ПРЕДПРОСМОТР
Измените код и нажмите «Запустить». JavaScript и внешние запросы отключены.
Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.