Нашёл в Ride The Lightning проблему из WCAG 4.1.3: динамические сообщения появлялись на экране, но не всегда объявлялись скринридером.
Было: пользователь вводит пароль, получает ошибку входа или видит состояние загрузки. Визуально сообщение есть, но для незрячего пользователя оно могло пройти мимо — приходилось вручную искать, что изменилось.
Что мешало: ошибки формы и статус загрузки не были оформлены как live regions/status messages. Скринридер не обязан автоматически озвучивать такие изменения, если интерфейс явно не сообщает их ассистивным технологиям.
Что изменили: добавил семантику для объявлений:
• загрузка RTL теперь имеет
role="status", aria-live="polite" и понятное имя для спиннера;• ошибки пароля в login/auth формах теперь объявляются как
role="alert";• сообщение об ошибке входа объявляется сразу, а logout/session-сообщение — в более спокойном polite-режиме.
Стало: пользователь со скринридером получает обратную связь в момент, когда она появилась: «пароль обязателен», «ошибка входа», «идёт загрузка». Это меньше неопределённости и меньше лишней навигации по странице.
Такие кейсы я разбираю с помощью Accessibility Auditor Skill: он помогает быстро пройтись по потоку, найти место, где интерфейс визуально работает, но программно молчит, и довести это до небольшого безопасного PR.
Доказательство:
Issue: Ride-The-Lightning/RTL#1561
PR: Ride-The-Lightning/RTL#1603