Другой способ сделать это:
<p><span aria-label="something else" role="img">Lorem</span>ipsum blah blah</p>
... NVDA объявляет это как "graphi c something else ipsum blah blah" .
Роль img
указывает AT не заглядывать внутрь элемента в поисках дополнительных доступных имен, что в чем-то похоже на aria-hidden
, поэтому особенно полезно для доступной маркировки 'dingbat' типовые глифы и эмодзи (например, значки 'graphi c', представленные как 'текстовые' символы), или , когда последовательность символов может интерпретироваться (особенно с помощью синтезатора речи) несколькими способами или не объявляться вообще. Это позволит вам придерживаться единой интерпретации.
Пример: символ одинарной кавычки ' может означать минут или футов , в зависимости от контекст. NVDA вообще не объявляет об этом, если в параметрах не включена пунктуация.
Теперь, в отличие от диапазона без семанти c по умолчанию, роль img
позволяет обрабатывать произвольные последовательности символов как graphi c, и используют aria-label
.
Недостатком является то, что роль объявляется (например, как «graphi c» или «image "), и элемент появится в любом пользовательском интерфейсе списка изображений, предлагаемом вашим AT.
Вы можете быть довольны или не удовлетворены объявлением роли. (В данном случае это вообще не граф c). Вы можете настроить это с помощью aria-roledescription
, таким образом:
<p>You turned over the 5<span aria-label="hearts" role="img" aria-roledescription="suit">♥</span></p>
... NVDA объявляет это как «Вы перевернули 5 сердечек масти» .
Не идеально, но это закрепляет символ масти карты «сердца», а не (произносит) слово «любовь» (как в «I ♥ NY»). В вашей ситуации могут быть более подходящими другие имена для особых ролей. Обратите внимание, что пустые атрибуты aria-roledescription
являются не действительными в ARIA, поэтому вы не можете полностью избавиться от них с помощью этой техники, и вы не можете точно предсказать, как разные AT будут вставлять объявление роли в речевой поток. Поэтому используйте атрибут aria-roledescription
с особой осторожностью.
И предостережения Грэма остаются важными. Допустимые варианты использования такого подхода - это когда контент только для AT будет излишним или мешающим для зрячих пользователей. Эти случаи встречаются реже, чем вы думаете.
Учтите также, что некоторые пользователи программ чтения с экрана не обладают слабым зрением - например, у них может быть дислексия c.
Еще один менее чем очевидный Дело в том, что не все AT являются программами чтения с экрана!
Некоторые «творческие» решения для текстовых вариантов могут хорошо работать с программами чтения с экрана, но плохо работать (скажем) с устройствами Брайля. Это особенно верно, если вы пытаетесь «догадаться», как программа чтения с экрана произносит что-то, и испытываете соблазн предоставить какой-то хакерский c phoneti, который пользователям Брайля будет сложно понять *. 1060 *
Как правило, следует избегать сокрытия информации от AT или предложения вещей только для AT.
Если вам это абсолютно необходимо, подумайте о пользователях программ чтения с экрана dyslexi c, пользователях устройств Брайля, и (желательно) получить второе мнение о вашей реализации от сообщества специальных возможностей или некоторых репрезентативных пользователей, предоставив достаточно контекста (то есть не только lorem ipsum), чтобы ваша реализация могла быть оценена должным образом.