Поддержка iOS Voiceover для виджетов со списком - PullRequest
0 голосов
/ 18 сентября 2018

Обычно виджет со списком - это поле ввода, которое запускает соответствующее всплывающее окно с кучей предложений во всплывающем окне. В настольных браузерах, использующих клавиатуру, в то время как фокус остается на поле ввода, нажимая клавиши со стрелками вверх / вниз, выбор во всплывающем окне можно изменить. Нажатие клавиши ENTER заполняет поле ввода текущим выбором во всплывающем окне и закрывает всплывающее окно.

В целях доступности поле ввода помечено role="combobox", всплывающее окно связано с полем ввода через aria-owns. В AT указывается текущий выбор через aria-activedescendant.

Хотя эта установка прекрасно работает в браузерах настольных компьютеров с такими инструментами, как JAWS / NVDA и т. Д., Похоже, существует серьезная проблема с передачей голоса в iOS. При проведении пальцем виртуальный курсор перемещается к следующему элементу на странице из поля ввода, хотя я ожидаю, что при установленном aria-owns фокус переместится на первый элемент предложения или во всплывающее окно.

Какие-либо предложения о том, как сделать такой виджет со списком, можно сделать доступным в iOS с наложением голоса?

PS: Всплывающее окно и поле ввода не являются родственными элементами в порядке DOM.

1 Ответ

0 голосов
/ 19 сентября 2018

Звучит так, будто вы создаете пользовательский комбинированный список.Если вы используете нативные элементы <select>/<option>, комбинированный список корректно работает на ios / voiceover.Если вы создаете свой собственный, следуйте инструкциям на https://www.w3.org/TR/wai-aria-practices/#combobox.. Вы упомянули несколько атрибутов ARIA, поэтому, возможно, вы уже следуете рекомендациям на этой странице.следующий элемент в DOM.Если ваш раскрывающийся список скрыт, то фокус не будет перемещен на него.Двойное нажатие на <input> должно отобразить выпадающий список.

...