Объявление для скринридера
Условие
makeAnnouncer(container): возвращает announce(text). Создаёт один узел с role="status" и aria-live="polite" и меняет его текст. Повторное объявление того же текста тоже должно быть услышано.
Что проверяют тесты
создаёт живую область
объявляет текст
повтор того же текста меняет содержимое
узел один на всех
Как подойти
aria-live - единственный способ сообщить незрячему пользователю о том, что произошло без его участия: товар добавлен в корзину, форма сохранена, найдено N результатов. Два правила, которые нарушают чаще всего: узел создаётся заранее и никогда не пересоздаётся, а повторный одинаковый текст надо сделать отличающимся (невидимый символ или сброс через пустую строку). polite ждёт паузы, assertive перебивает - второе только для ошибок.
Подсказки: 2
- Живая область должна существовать в документе заранее - вставленная вместе с текстом не прочитается.
- Скринридер реагирует на изменение содержимого; одинаковый текст подряд изменением не считается.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.