Как сообщать скринридеру об изменениях на странице через 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 заранее.