NVDA не читает несколько тегов aria-live на одной веб-странице. - PullRequest
0 голосов
/ 07 мая 2018

Я использую несколько тегов aria-live на веб-странице, и когда на веб-странице отображается сообщение об ошибке, NVDA читает только первое сообщение об ошибке, а не все. У меня есть пользователь aria-live = "assertive", также пытался с aria-live = "вежливым", но не работает, может кто-нибудь предложить какое-то решение для этого. ниже мой код:

<div>
        <input type="text" name="username" tabIndex="0"/>
        <span class="usernameerr" role="alert" aria-live="assertive">Enter User Name</span>
    </div>
    <div>
        <input type="passowrd" name="password" tabIndex="0"/>
        <span class="passworderr" role="alert" aria-live="assertive">Enter Password</span>
    </div>
    <div>
        <input type="text" name="repassword" tabIndex="0"/>
        <span class="repassworderr" role="alert" aria-live="assertive">Renter Password</span>
    </div>
    <div>
        <input type="submit" tabIndex="0"/>
    </div>

Помощь будет оценена.

1 Ответ

0 голосов
/ 08 мая 2018

Если у вас есть role=alert, это означает aria-live=assertive. При наличии aria-live=assertive программа чтения с экрана может очистить очередь ожидающих сообщений. Так что если у вас есть три напористых области, они могут наступить друг на друга и очистить другие сообщения Последний, вероятно, выигрывает.

См. https://www.w3.org/TR/wai-aria-1.1/#aria-live. Там написано: «Агенты пользователей или вспомогательные технологии МОГУТ выбрать очистку изменений в очереди при появлении подтверждающих изменений».

Так что вы можете услышать проблему с одной программой чтения с экрана, а не с другой. Вы можете проверить это, удалив role=alert и , изменив aria-live на polite. (Вы сказали, что пробовали это с aria-live=polite, но если бы вы не удалили роль alert, тогда все равно было бы assertive.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...