Con el avance de WAI-ARIA , al usar íconos de fuentes, probablemente debería usar una combinación de los siguientes para mejorar la accesibilidad:
- La presentación de roles para eliminar la semántica de roles nativa implícita del elemento. Esto es especialmente importante si (ab) usa un elemento con una semántica nativa para proporcionar íconos, como este es el caso en su ejemplo usando el elemento i (que, de acuerdo con las especificaciones, "representa un tramo de texto en una voz alternativa o estado de ánimo [...] " ).
- Una etiqueta de aria para proporcionar un valor de cadena que etiqueta el elemento -o- un atributo de título HTML nativo si está de acuerdo con que el navegador muestre una información sobre herramientas cuando se desplaza.
- Un atributo oculto por aria para ocultar el contenido generado de las tecnologías de asistencia (ya que está utilizando una familia de fuentes de iconos, hay un carácter generado: antes de: después). Según las especificaciones:
Los autores PUEDEN, con precaución, usar aria-hidden para ocultar contenido visualmente renderizado de las tecnologías de asistencia solo si el acto de ocultar este contenido tiene como objetivo mejorar la experiencia de los usuarios de las tecnologías de asistencia al eliminar el contenido superfluo o redundante. Los autores que utilicen aria-hidden para ocultar contenido visible a los lectores de pantalla DEBEN asegurarse de que el significado y la funcionalidad idénticos o equivalentes estén expuestos a las tecnologías de asistencia.
No conozco su caso de uso exacto, así que me tomo la libertad de usar el caso más simple de proporcionar un número de teléfono. En orden de preferencia decreciente, I usaría:
<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`)
Tenga en cuenta que los atributos aria-label y title deben describir el contenido del elemento. No es el próximo elemento hermano. Entonces , siento que la siguiente solución no está de acuerdo con las especificaciones (incluso si la mayoría de las herramientas de accesibilidad realmente tuvieran el mismo comportamiento observable como si el número de teléfono estuviera realmente dentro del span
elemento):
<span class="icon-phone"
title="Our phone number"></span>+33 7 1234576
.sr-only
en un archivo<span>
.