Поведение управления фокусом во вкладке и режиме виртуального курсора - PullRequest
0 голосов
/ 06 мая 2019

У меня есть приложение, которое имеет основной раздел и нижний колонтитул. В главном разделе есть tabIndex = "- 1". В нижнем колонтитуле хранится информация об авторском праве. Основной раздел также содержит некоторые виджеты, в которых находятся кнопки в списке. Когда страница загружается, программа чтения с экрана сообщает о загрузке страницы. Тело является активным элементом по умолчанию. На вкладке фокус перемещается к первой кнопке в главном разделе. Это ожидаемое поведение. Но я не вижу такого поведения в режиме виртуального курсора. Таким образом, страница загружается, текущее выражение в chrome показывает тело в качестве активного элемента. когда я нажимаю стрелку вниз, программа чтения с экрана начинает читать нижний колонтитул, а не обходить доменный снизу вверх. Он полностью пропускает основной раздел. Не уверен, в чем проблема. Я не могу поделиться кодом, поскольку он является собственностью.

Я попытался установить индекс вкладки контейнера основного раздела на 0.

Ожидается: программа чтения с экрана (в режиме виртуального курсора / режиме просмотра) NVDA + Chrome должна читать структуру dom сверху и не пропускать основной раздел. Фактически: пропускает основной раздел и непосредственно читает нижний колонтитул.

1 Ответ

0 голосов
/ 06 мая 2019

Я полагаю, вы используете роли или семантические элементы HTML? Они оказывают глубокое влияние на поведение программы чтения с экрана.

Вы упомянули, что в «main» есть кнопки - это может привести к тому, что программа чтения с экрана переходит в режим форм, так что программа чтения с экрана ничего не «читает», кроме меток кнопок, которые вы получаете с помощью вкладок. В режиме форм любое «похожее на документ» содержимое будет игнорироваться, если только оно не упомянуто в атрибуте aria-describedby.

Вы должны использовать tabindex="-1" экономно - только в тех случаях, когда вы собираетесь позвонить focus() по этому элементу. Не ясно, делаете ли вы это. Что происходит, когда вы полностью удаляете атрибут tabindex из main?

Также попробуйте отделить часть документа «main» от части кнопок с разными ролями для каждого (например, «документ» и «приложение», но есть другие , которые вы можете попробовать).

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