Почему aria-labelled не извлекает значения для div вне его? - PullRequest
0 голосов
/ 18 июня 2019

Итак, я пытаюсь получить доступ к метке для div, который можно сфокусировать через tabIndex.Однако по какой-то причине (поскольку метка находится вне div), метка не извлекается.

Однако метка извлекается для входа, который имеет тот же aria-labelledby.Любая идея, как я могу заставить свой div извлекать извне себя, похожий на ввод?

Очевидно, что если я добавлю метку в div, это сработает.

Код можно посмотреть здесь: https://jsfiddle.net/b1ca7tm9/1/

Я хочу, чтобы div также извлекал метки вне себя.

К вашему сведению: вы можете просматривать / слышать прочитанную метку/ отображается для ввода, но не для дел.Вы можете проверить это через голос за кадром на Mac или NVDA на Windows.

1 Ответ

0 голосов
/ 19 июня 2019

Исходя из предоставленного вами кода, наиболее вероятная проблема заключается в том, что даже если вы сделали фокусировку на div с помощью tabindex, его роль по-прежнему остается div, который не является интерактивным элементом.

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

Если элемент получает фокус, он, скорее всего, предназначен для интерактивного взаимодействия, поэтому исправлением будет присвоение ему роли арии , которая соответствует его предполагаемой функциональности (например, кнопка). Если он действительно неинтерактивный, вероятно, он не должен быть в порядке табуляции. Если вы предоставите больше контекста о цели div, я мог бы дать несколько более подробных советов о том, какая роль будет лучше

С другой стороны, tabindex = "0" обычно лучше, чем объявление определенной позиции в порядке табуляции. Tabindex = "0" позволит элементу получать фокус, но не заставляет определенную позицию (он будет просто вписываться в порядок вкладок, где бы он ни был, если бы он был изначально ориентирован на фокус). Таким образом, вам не нужно добавлять табличные индексы к каждому интерактивному элементу на странице

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