[TC] Accessibility проблемы в реализации автокомплита.
Приветствую всех.
В WAI-ARIA Authoring Practices описан паттерн "Combobox"
https://www.w3.org/TR/wai-aria-1.1/#combobox, который представляет из
себя текстовое поле с всплывающим списком вариантов для авто завершения.
Там приводится несколько вариантов реализации и довольно подробно
описано как он должен работать при взаимодействии с клавиатуры, к
примеру: если отображено всплывающее окно со списком авто дополнения,
то down arrowkey перемещает фокус в это окно, после чего up/down
arrowkeys позволяют сфокусироваться на одном из вариантов, Enter -
выбрать какую-ту опцию, а escape закрыть окно не выбирая.
Но довольно часто, мне встречается, как я это называю, наивная
реализация автокомплита. Хорошим примером такой реализации может служить
"Visual Studio Code", где при появлении списка с вариантами, хотя
скринридер и озвучивает возможные опции для авто завершения, но на самом
деле, фокус никуда не перемещается. То есть когда пользователь
использует up/down arrowkeys чтобы выбирать варианты, они просто
добавляются в live-region и поэтому озвучиваются скринридером, но фокус
просто всегда находится в текстовом поле.
Вроде бы это работает, особенно хорошо с NVDA, т.к. именно в ней эта
фича и тестировалась при разработке, но по сути эта реализация довольно
странная и, к примеру, в jaws время от времени появляются всякие
неприятные проблемы: 18 версия вообще автокомплит не объявляла, а в 2019
версии фокус постоянно улетает из текстового поля, если не выключить
виртуальный курсор.
Собственно, вопрос к уважаемому собранию такой: считаете ли вы, что
такая реализация некорректна? Есть ли смысл пытаться менять её, ну хотя
бы завести соответствующий баг в репо VS Code? Можно ли сказать, что
такая реализация вызывает несоответствие с WCAG, к примеру, если взять
SC 4.1.2, который требует программно-определимых ролей? То есть роли тут
понятно есть, но какие-то не совсем те, что должны быть.
Или все это бессмысленно, автокомплит вобщем-то работает, проблемы, если
и возникают, то незначительные и недостойны внимания, WCAGне
регламентирует конкретную реализацию, примеры в authoringpracticesэто
просто примеры, не нужно стремиться к тому чтобы реализация следовала их
идеологии?
Здравствуйте, Константин!
Почитайте ещё вот здесь:
https://webaim.org/discussion/mail_thread?thread=9046
написал(а):
С уважением, Александр.