ARIA — пропуск чтения входного значения в программе чтения с экрана (NVDA/Windows)

Я пытаюсь найти способ заставить программы чтения с экрана, такие как NVDA или Windows Narrator, перестать читать входное значение и вместо этого читать только aria-describedby.

Вот случай, у меня есть веб-компонент, который представляет собой поле ввода маски. Допустим, он настроен с маской телефона, установленной на (___) ___-____, где подчеркивание может быть только цифрой. Прямо сейчас средство чтения с экрана будет читать left parens, 3 lines, right parens, space... и так далее, а затем читать то, что я установил как значение aria-describedby, которое будет чем-то вроде «Номер телефона, 1231231234», которое использует немаскированное значение моего компонента.

Я бы хотел, чтобы средство чтения с экрана произносило только «Номер телефона, 1231231234», что является моим значением aria-describedby, и пропускало остальное, чтобы оно было коротким и не говорило вещей, которые могут сбить с толку слабоумного пользователя.

Немного предыстории, возможно, это может немного изменить ответ, мой компонент создан с помощью Aurelia, я использую систему привязки для обновления значения.

Это что-то возможно? Есть несколько альтернатив? Я совершенно не понимаю, чего я пытаюсь достичь?

Спасибо!


person Marc-Andre R.    schedule 09.06.2017    source источник


Ответы (1)


При таком подходе мало что можно сделать для обеспечения доступности. Для программы чтения с экрана очень важно считывать содержимое поля ввода, в противном случае, когда пользователь вводит число, оно не скажет ему, что это за число, а также, если он решит вернуться на символ назад или вперед, value будет читать метку, а не то, что они ввели. Я предполагаю, что маска ввода, которую вы используете, использует javascript для замены замаскированного символа пользователем, отправленным при нажатии клавиши?

Как правило, рекомендуется указать требуемый формат ввода в метке или в описательном тексте, связанном с меткой. Это позволит зрячим пользователям легко сопоставлять требуемый формат, а также позволит пользователям с нарушениями зрения использовать свою клавиатуру для навигации по входному значению с полным пониманием желаемого формата. Я собрал быстрый пример этого.

<label for="textInput">Phone Number</label>
<span id="phoneDesc">Please use the following format: (xxx)xxx-xxxx</span>
<input id="textInput" type="text" aria-describedby="phoneDesc" />

Также может быть полезно изучить общее удобство использования масок ввода — многие люди склонны находить их хлопотными. https://www.nngroup.com/articles/stop-password-masking/< /а>

Если вы полны решимости использовать их и не возражаете против подхода, отличного от вашего подхода, основанного на «линии», возможно, попробуйте вежливое пространство (я не пробовал это, но, возможно, стоит оценить для ваших нужд) https://github.com/filamentgroup/politespace

person Skerrvy    schedule 09.06.2017
comment
Что, если входное значение контролируется в другом месте? В моем случае выбор даты сортов. И вместо чтения 01.01.2020 я хочу, чтобы программа чтения с экрана читала понедельник, 1 января 2020 года? - person Pants; 05.12.2019
comment
@Pants Я бы рекомендовал начать новый вопрос с примера кода. Трудно дать какую-либо ценную информацию, не имея более полного понимания ваших требований. В этом случае вы хотите отобразить 01.01.2020, но указать «понедельник, 1 января 2020» только для программ чтения с экрана? У меня есть еще вопросы, но комментарии оставляют мало места. Пожалуйста, начните новый вопрос и предоставьте немного больше деталей, и я буду рад помочь! - person Skerrvy; 06.12.2019