Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про HTML: accessibility, screen reader, hidden elements, aria-hidden, visibility

Как скрытые элементы влияют на скринридеры?

Проверяет понимание того, как различные способы скрытия элементов влияют на доступность для скринридеров.

Короткий ответ

Скрытые элементы могут по-разному восприниматься скринридерами. Использование CSS-свойства `display: none` или атрибута `hidden` полностью удаляет элемент из DOM-дерева доступности, и скринридер его игнорирует. Свойство `visibility: hidden` также скрывает элемент визуально и от скринридера. Однако, если элемент скрыт с помощью `opacity: 0` или `clip`, он может оставаться доступным для скринридера, что может запутать пользователя. Для семантического скрытия от скринридеров используется атрибут `aria-hidden="true"`.

Длинный ответ

Влияние скрытых элементов на скринридеры

Скринридеры (программы чтения с экрана) полагаются на DOM-дерево доступности (Accessibility Tree), которое браузер строит на основе HTML-кода. Способ скрытия элемента напрямую влияет на то, будет ли он включен в это дерево и, следовательно, озвучен пользователю.

Основные способы скрытия и их эффект

  • display: none и атрибут hidden: Полностью удаляют элемент из Accessibility Tree. Скринридер не видит и не озвучивает его. Это правильный способ скрыть контент, который не должен быть доступен никому.
  • visibility: hidden: Аналогично, элемент скрывается и из визуального представления, и из дерева доступности.
  • opacity: 0 и clip: Элемент визуально невидим, но остается в Accessibility Tree. Скринридер может его прочитать, что может дезориентировать пользователя, так как он не видит элемент на экране.
  • aria-hidden="true": Этот атрибут явно указывает скринридеру игнорировать элемент, независимо от его визуального состояния. Он не удаляет элемент из DOM, но исключает его из Accessibility Tree.

Пример кода

<!-- Элемент полностью скрыт от всех -->
<div style="display: none;">Этот текст не увидят и не услышат</div>

<!-- Элемент визуально скрыт, но доступен скринридеру (плохая практика) -->
<div style="opacity: 0;">Этот текст услышат, но не увидят</div>

<!-- Элемент визуально видим, но скрыт от скринридера -->
<div aria-hidden="true">Этот текст увидят, но не услышат</div>

Вывод

Для обеспечения доступности важно выбирать правильный способ скрытия элементов. Используйте display: none или hidden для контента, который не должен быть доступен никому. Применяйте aria-hidden="true" для декоративных элементов или контента, который визуально присутствует, но не несет смысловой нагрузки для пользователей скринридеров. Избегайте использования opacity: 0 для скрытия контента, который не должен быть озвучен.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • HTML

    HTML

  • CSS

    CSS

Ключевые слова

#accessibility

#screen reader

#hidden elements

#aria-hidden

#visibility

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию