Utilizo font-awesome y muestro sus fuentes así:
<i class="icon-lock"></i>
Esto mostrará un bonito símbolo de candado. Para que el usuario supiera qué significa eso exactamente, intenté agregar atributos como título y alt, pero fue en vano.
¿Hay algún atributo que pueda usar para la <i>
etiqueta que ejecute la misma tarea que alt para imágenes y título para enlaces?
html
tags
font-awesome
Weltschmerz
fuente
fuente
.sr-only
en un archivo<span>
.Respuestas:
Puede usar el
title
atributo en uni
elemento, como cualquier elemento, por ejemplo<i class="icon-lock" title="This symbolizes your being locked inside"></i>
Si ayuda es un tema más difícil. Los navegadores suelen mostrar el
title
valor del atributo como una "información sobre herramientas" al pasar el mouse por encima, pero ¿por qué el usuario pasa el mouse sobre el ícono? Y tales descripciones emergentes son de poca usabilidad; la información sobre herramientas CSS suele funcionar mejor.Los lectores de pantalla pueden dar al usuario acceso opcional a los
title
atributos, pero no estoy seguro de qué hacen con los elementos con contenido vacío.fuente
title
generalmente se lee, incluso sin contenido, siempre que el elemento en sí sea seleccionable<i>
etiquetas generalmente no se pueden seleccionar, a menos que les agregue un tabIndex.title
atributo funcione, o tal vez no, ¿quién sabe?" " fue considerado lo suficientemente bueno para votar por 120 personas ilustra el esfuerzo superficial que el soporte del lector de pantalla recibe de la mayoría de los desarrolladores web (yo incluido, lo admito). Como profesión, debemos descubrir cómo abordar estos problemas de manera más rigurosa que esto.title
un texto visualmente oculto (por ejemplo, una.sr-only
clase en Bootstrap). Vea buenos ejemplos aquí: fontawesome.com/how-to-use/on-the-web/other-topics/…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:
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
fuente
Deberías usar
<span>
o algo parecido en su lugar. Puede usar eltitle=""
atributo para dar texto al pasar el mouse, si eso es lo que está buscando. En cuanto a proporcionar accesibilidad a los lectores de pantalla o valor SEO, puede agregar el siguiente CSS:.icon-lock{ text-indent:-99999px; }
Y luego escribe tu marcado así:
<span class="icon-lock">What I want the screen reader to say</span>
fuente
<i>
no estaba en desuso en HTML 4.01.<u>
y<s>
estábamos, siempre me encuentro pensando<b>
y<i>
estábamos también, especialmente desde que lo han hecho<em>
y<strong>
, pero tienes toda la razón.<i>
Las etiquetas son para marcar texto. Está cambiando el significado semántico de esta etiqueta a algo que no tiene nada que ver con el uso de cursiva (e incluso la etiqueta en cursiva es una mala idea). Deberías usar unSPAN
en su lugar.Los elementos en cursiva no admiten
alt
atributos, losIMG
elementos sí. Si quieres unALT
atributo, usa una imagen.fuente
<i>
, así que probablemente deberías decir qué va a salir mal si lo haces de esa manera. Usar algo (en este caso<i>
) de una manera que no se pretendía originalmente tiene riesgos, pero en este caso ese riesgo se ha mitigado por el hecho de que miles de sitios de buena reputación con cientos de millones de usuarios ya están usando font-awesome.Creo que la función de las fuentes que actúan como imágenes debería reservarse para role = "img". Esto luego se puede usar con aria-label = "alt-text". Funciona gracias al algoritmo ARIA Accessible Name. Ver: Técnicas de Aria usando Img Role .
fuente