Можете ли вы уточнить, что вы подразумеваете под "навигацией с помощью клавиатуры"?
Используете ли вы 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
будет более широко поддерживаться программами чтения с экрана, то, надеюсь, эта проблема будет решена. Между тем, когда вы заставляете текст для программы чтения с экрана, это может иметь пагубные последствия для пользователей Брайля. В вашем примере телефона, как пользователь Брайля, мое устройство Брайля покажет мне «девять пробелов четыре пробела девять пробел пробел пять пробел пять пробел пять пробел [и т.д.]». Это много символов Брайля для пробела, через который я должен прополоть.