Не похоже, что вы используете aria-live
правильно.Он не должен читаться при загрузке страницы .Если есть некоторые комбинации браузера и программы чтения с экрана, где означает , то эта комбинация не соответствует спецификациям html и aria.
И просто уточнить, если вы используете role="alert"
,это дает вам неявное aria-live="assertive"
.Таким образом, этот вопрос действительно о aria-live
.
aria-live
область должна только автоматически считываться программой чтения с экрана, если вы измените содержимое этой области,Если вы вставите текст в свой регион или добавите новые элементы DOM в этот регион, они будут прочитаны после внесения изменений.Вы можете контролировать, какие типы изменений считываются с aria-relevant
.Изменения текста и дополнения DOM по умолчанию.Вы также можете контролировать объем информации, читаемой в текущем регионе, с помощью aria-atomic
.
@ Рой говорит в разделе комментариев, что может быть повторен вопрос.Это не тот же вопрос, потому что другой вопрос правильно использует aria-live
.
Что вы действительно хотите сделать, так это создать на своей странице существующий регион, например
<div role="alert" id="someID"></div>
итогда <span>
, который возвращается вам с сервера, не нужен role="alert"
.Он может просто вернуть <span>
с содержащимся в нем сообщением об ошибке
<span>this is an alert</span>
, а затем вам нужно вставить это сообщение в <div>
<div role="alert" id="someID">
<span>this is an alert</span>
</div>
Сейчас вы услышите "это предупреждение", прочитанное программой чтения с экрана.