я добавил следующий фрагмент кода, чтобы сделать чтение с экрана читать предупредительное сообщение:роль = «тревога» работает только в первый раз
<aside aria-live="assertive" aria-atomic="true" role="alert" ng-show="login.hasWarning();" translate="{{message}}"></aside>
<form>
<!--form content-->
</form>
Он работает идеально для первый раз, однако, когда я снова совершаю ошибку, он не читает обновленное сообщение об ошибке снова. Что мне не хватает?
Заранее спасибо.
HI Juli, спасибо за ваш ответ. –
У вас есть идеи, почему все основные устройства чтения с экрана (JAWS/VoiceOver/NVDA) предпочитают это делать? И есть ли какая-нибудь работа вокруг, скажем, как добавление случайных пустых пространств в конце сообщения и т. Д., Чтобы читатели экрана снова читали его? –
Потому что это спецификация WAI-ARIA. (https://www.w3.org/TR/wai-aria/states_and_properties#aria-live) SR читает изменения в живой области. Если ваше обновление не является изменением, SR не читает его. Добавление пустых пространств в начало и конец сообщения может работать с VoiceOver и, вероятно, не будет работать с JAWS. Если вам удобнее JAWS, возможно, что вместо «Ошибка 101» вместо «Ошибка 101» можно указать «пустая ошибка 101», запустив $ («[aria-live]»). Text (""); $ («[aria-live]»). текст («Ошибка 101»); будет, по крайней мере, прочитан. – Juli