Доступность в случае множественных ошибок - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть угловой компонент с именем error-component. Он инициализируется каждый раз, когда служба выдает ошибку. Теперь, когда есть одна ошибка, программа чтения с экрана считывает ошибку, но в случае нескольких ошибок программа чтения с экрана читает только одну ошибку, и это последняя ошибка. Ошибки приходят со стороны сервиса. Иногда служба выдает несколько ошибок.

<div aria-live="polite" role="alert">
<error-component></error-component>
</div>

Таким образом, при наличии одной ошибки программа чтения с экрана будет читать ее, но в случае нескольких ошибок программа чтения с экрана читает только первую.

1 Ответ

0 голосов
/ 05 ноября 2018

Я упоминал об этом в начале моего ответа на ваш предыдущий вопрос относительно указания role="alert" и aria-live="polite".

В вашем примере кода указана противоречивая информация. Использование role = "alert" дает вам неявное aria-live = "assertive", но вы также указываете aria-live = "polite". Я бы порекомендовал удалить role = "alert". Достаточно иметь aria-live = "вежливый".

Таким образом, результаты неизвестны, когда вы указываете два разных значения для aria-live. Предполагая, что aria-live = "assertive" имеет приоритет, spec для assertive говорит:

Пользовательские агенты или вспомогательные технологии МОГУТ выбрать для очистки изменений в очереди при появлении утверждающего изменения.

Таким образом, если у вас есть несколько подтверждающих сообщений, предыдущее подтверждающее сообщение может быть удалено следующим подтверждающим сообщением. (Это зависит от отдельной вспомогательной технологии. Например, JAWS может удалить предыдущее сообщение, а NVDA - нет.)

Если вы сделаете свое сообщение об ошибке aria-live = "вежливым", то вы могли бы услышать все сообщения. Это зависит от того, когда страница обновляется и когда обновляется буфер программы чтения с экрана. Если вы обновите сообщение в <error-component>, а буфер программы чтения с экрана обновится, а затем снова обновите сообщение в <error-component>, а буфер программы чтения с экрана обновится, то, когда во время взаимодействия пользователя произойдет пауза, появятся сообщения об ошибках в очереди. должен быть прочитан. Но, опять же, это может быть проблемой времени.

Что происходит визуально, когда у вас есть несколько сообщений об ошибках? Вы можете видеть все сообщения одновременно или кратко видите одно сообщение, а затем оно перезаписывается следующим?

Если вы создаете несколько визуальных <error-component> элементов, чтобы вы могли видеть все сообщения одновременно И , вы делаете контейнер этих компонентов aria-live = "вежливым", тогда вам следует услышать все ошибки.

...