З розвитком WAI-ARIA , використовуючи піктограми шрифтів, ви, мабуть, повинні використовувати комбінацію з наведеного нижче для покращення доступності:
- Роль презентація , щоб видалити неявну нативную роль семантику елемента. Це особливо важливо, якщо ви (ab) використовуєте елемент із власною семантикою для надання піктограм, як це відбувається у вашому прикладі з використанням елемента i (який, відповідно до специфікацій, "представляє простір тексту в альтернативному голосі або настрій [...] " ).
- Арія мітки , щоб забезпечити строкове значення , яке позначає елемент -або- нативного HTML заголовка атрибута , якщо ви добре з браузером відображаються підказки при наведенні покажчика миші.
- Арія-прихований атрибут , щоб приховати генерується вміст з допоміжних технологій (як ви використовуєте сімейство шрифтів значка, є згенерований характер: перед тим з: після). Відповідно до специфікацій:
Автори МОЖУТЬ із обережністю використовувати прихований за допомогою aria приховування видимо відтвореного вмісту від допоміжних технологій лише в тому випадку, якщо приховування цього вмісту має на меті покращити роботу користувачів допоміжних технологій шляхом видалення зайвого або стороннього вмісту. Автори, які використовують 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>
.