Wraz z postępem WAI-ARIA , podczas korzystania z ikon czcionek, prawdopodobnie powinieneś użyć kombinacji poniższych, aby poprawić dostępność:
- Prezentacja roli w celu usunięcia niejawnej natywnej semantyki roli elementu. Jest to szczególnie ważne, jeśli (ab) używasz elementu z natywną semantyczną do dostarczania ikon, tak jak to ma miejsce w twoim przykładzie przy użyciu elementu i (który zgodnie ze specyfikacją "reprezentuje zakres tekstu w alternatywnym głosie czy nastrój [...] ” ).
- Aria-label , aby zapewnić, że wartość ciągu Etykiety elementu -lub- native HTML tytuł atrybutu, jeśli jesteś OK z przeglądarką wyświetlanie podpowiedzi po najechaniu.
- Aria ukryty atrybut aby ukryć treści generowanej z wykorzystaniem technologii wspomagających (jak używasz rodzinę czcionek ikona, jest generowany znak: przed z: after). Zgodnie ze specyfikacją:
Autorzy MOGĄ, zachowując ostrożność, używać ukrytej arii w celu ukrycia widocznie renderowanych treści przed technologiami wspomagającymi tylko wtedy, gdy czynność ukrycia tych treści ma na celu poprawę doświadczenia użytkowników technologii wspomagających poprzez usunięcie zbędnych lub obcych treści. Autorzy używający ukrytej arii w celu ukrycia widocznych treści przed czytnikami ekranu MUSZĄ zapewnić, że identyczne lub równoważne znaczenie i funkcjonalność jest widoczne dla technologii wspomagających.
Nie znam twojego dokładnego przypadku użycia, więc pozwolę sobie skorzystać z prostszego przypadku, podając numer telefonu. W preferowanej kolejności malejącej, że użyłby:
<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`)
Należy pamiętać, że atrybuty aria-label i title powinny opisywać zawartość elementu. Nie następny element rodzeństwa. Więc mam ochoty następujące rozwiązanie jest nie zgodne z specyfikacją (nawet jeśli większość narzędzi ułatwień dostępu rzeczywiście mają takie samo zachowanie zaobserwowania jak numer telefonu były faktycznie wewnątrz span
elementu):
<span class="icon-phone"
title="Our phone number"></span>+33 7 1234576
.sr-only
osobnego<span>
.