С развитием WAI-ARIA при использовании значков шрифтов вам, вероятно, следует использовать комбинацию следующего для улучшения доступности:
- Роль презентация , чтобы удалить неявную нативную роль семантику элемента. Это особенно важно, если вы (ab) используете элемент с собственной семантикой для предоставления значков, как это имеет место в вашем примере с использованием элемента i (который, согласно спецификациям, «представляет собой отрезок текста альтернативным голосом. или настроение [...] " ).
- Ария метки , чтобы обеспечить строковое значение , которое помечает элемент -или- нативного HTML заголовка атрибута , если вы хорошо с браузером отображаются подсказки при наведении указателя мыши.
- Ария-скрытый атрибут , чтобы скрыть генерируемое содержимое из вспомогательных технологий (как вы используете семейство шрифтов значка, есть сгенерированный характер: перед тем из: после). Согласно спецификациям:
Авторы МОГУТ с осторожностью использовать aria-hidden, чтобы скрыть визуально отображаемый контент от вспомогательных технологий, только если действие сокрытия этого контента предназначено для улучшения работы пользователей вспомогательных технологий путем удаления избыточного или постороннего контента. Авторы, использующие aria-hidden для сокрытия видимого содержимого от программ чтения с экрана, ДОЛЖНЫ гарантировать, что идентичное или эквивалентное значение и функции доступны вспомогательным технологиям.
Я не знаю вашего точного варианта использования, поэтому беру на себя смелость использовать более простой случай предоставления номера телефона. В порядке убывания предпочтения я бы использовал:
<span aria-label="Our phone number">
<span class="icon-phone" aria-hidden="true"></span>
+33 7 1234576
</span>
(or any variation implying:
- an `i` element with a `role` presentation attribute
instead of the inner `span` element
- a `title` attribute instead of an `aria-label` attribute)
<span class="icon-phone"
aria-label="Our phone number">+33 7 1234576</span>
(or any variation using `title` instead of `aria-label`)
<i class="icon-phone" role="presentation"
aria-label="Our phone number">+33 7 1234576</i>
(or any variation using `title` instead of `aria-label`)
Обратите внимание, что атрибуты aria-label и title должны описывать содержимое элемента. Не следующий родственный элемент. Поэтому я чувствую, что следующее решение не соответствует спецификациям (даже если большинство инструментов обеспечения доступности фактически будут иметь такое же наблюдаемое поведение, как если бы номер телефона действительно находился внутри span
элемента):
<span class="icon-phone"
title="Our phone number"></span>+33 7 1234576
.sr-only
отдельный<span>
.