атрибут aria-label не читается при навигации с помощью клавиатуры - PullRequest
0 голосов
/ 10 сентября 2018
<span class="phone" aria-label="phone number 9 4 9 . 5 5 5 . 1 2 3 4">949.555.1234</span>

Распечатывает номер телефона на странице. щелчок по номеру телефона, как и ожидалось, будет читать метку арии, однако, если я перейду к номеру телефона с помощью стрелки на клавиатуре, он прочитает любой текст, выведенный на странице («девятьсот сорок девять периодов пятьсот» ... ) в этом случае метка ария не соблюдается.

с использованием ChromeVox

Также стоит упомянуть, что тег span не получает фокуса при использовании клавиш со стрелками. т.е. $("span").focus(function(){ // never gets here })

1 Ответ

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

Можете ли вы уточнить, что вы подразумеваете под "навигацией с помощью клавиатуры"?

Используете ли вы TAB , чтобы получить номер телефона, а затем программа чтения с экрана не читает ваш aria-label? (У вас нет tabindex="0" на вашем <span>, поэтому я предполагаю, что вы не , используя клавишу TAB .)

Или вы используете клавиатуру, используя клавиши чтения с экрана, такие как клавиши вверх / вниз, которые проходят по DOM (или, точнее, обходят дерево доступности, которое похоже на DOM).

Если выполнить последнее, то многие браузеры не будут отображать aria-label элемента в дереве доступности, если этот элемент не имеет роли . Элементы <span> не имеют никакого семантического значения, поэтому вам также необходимо добавить атрибут role. Является ли это правильное поведение спорным, поскольку в aria-label spec конкретно не говорится, что роль также должна быть указана.

Существуют рекомендации ARIA о том, как поддерживается aria-label, которые объясняют (вроде), почему aria-label можно игнорировать на <span>.

Так что, если вы действительно хотите прочитать aria-label, вам придется решить, какую роль дать <span>. Трудно сказать, просто используя небольшой фрагмент кода, но является ли номер телефона частью другой информации, такой как имя и адрес? Если да, отображается ли другая информация (имя, адрес и т. Д.) В списке или таблице, или это просто текст?

Однако, как примечание, когда вы указываете aria-label с целью заставить программу чтения с экрана читать текст определенным образом, это обычно , а не рекомендуемая практика. Услышать, что номер телефона читается как реальный номер, а не как одна цифра, определенно не идеален для пользователя программы чтения с экрана, но он привык к нему и может перемещаться по цифрам за раз, если они того пожелают. В какой-то момент, когда атрибут autocomplete будет более широко поддерживаться программами чтения с экрана, то, надеюсь, эта проблема будет решена. Между тем, когда вы заставляете текст для программы чтения с экрана, это может иметь пагубные последствия для пользователей Брайля. В вашем примере телефона, как пользователь Брайля, мое устройство Брайля покажет мне «девять пробелов четыре пробела девять пробел пробел пять пробел пять пробел пять пробел [и т.д.]». Это много символов Брайля для пробела, через который я должен прополоть.

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