PassFront
  1. PassFront
  2. База знаний
  3. Accessibility, a11y

Как сообщать скринридеру об изменениях на странице через aria-live?

Accessibility, a11y

`aria-live` — атрибут региона, содержимое которого скринридер зачитывает при изменении, даже если фокус находится в другом месте.

Значения

  • polite — сообщить, когда пользователь закончит текущее действие. Подходит для статусов и уведомлений.
  • assertive — прервать и прочитать сразу. Только для срочных ошибок.
  • off — не озвучивать.

Готовые роли: role="status" (аналог polite) и role="alert" (аналог assertive).

<div role="status" aria-live="polite">
  Сохранено
</div>

<p role="alert">Не удалось отправить форму</p>

Практические правила

  • Регион должен существовать в DOM до изменения; вставка вместе с текстом может не озвучиться.
  • Сообщения короткие: «Добавлено в корзину: 3 товара».
  • Не стоит озвучивать каждое мелкое обновление (например, секундомер), иначе скринридер превратится в шум.

Коротко для собеседования

aria-live озвучивает изменения содержимого. polite для статусов, assertive для критичных ошибок, регион должен быть в DOM заранее.

Другие вопросы раздела