Técnica CSS WCAG 2.2
C22Dar estilo al texto con CSS en lugar de usar imágenes de texto
Nombre oficial en el W3C: Usar CSS para controlar la presentación visual del texto
En pocas palabras
Los titulares, botones y textos destacados se escriben como texto real. Su aspecto (tipo de letra, tamaño, color, sombras) se consigue con CSS. Así la persona puede ampliar el texto, cambiar sus colores o usar alto contraste, cosa que no puede hacer con una imagen.
Por qué es importante
El texto metido en una imagen se pixela al ampliarlo. Tampoco cambia de color cuando la persona activa el alto contraste o sus propios colores en el navegador.
Un lector de pantalla tampoco puede leerlo si la imagen no tiene texto alternativo. Y nadie puede copiarlo, traducirlo ni buscarlo. Con texto real y CSS, el diseño se mantiene y todos esos problemas desaparecen.
Cómo se hace
- Escriba los textos en el HTML con su etiqueta adecuada:
h1para el título,buttonpara un botón,empara un énfasis. - Dé el aspecto con CSS:
font-family,font-size,font-weight,color,backgroundotext-shadow. - Use fuentes web (
@font-face) si necesita la tipografía de la marca. - Indique los tamaños en
em,remo porcentaje para que crezcan al ampliar. - Reserve las imágenes de texto para los logotipos o casos en que el aspecto exacto sea imprescindible.
Cómo comprobarlo
- Busque titulares, botones o rótulos que parezcan imágenes. Intente seleccionar su texto con el ratón.
- Amplíe la página al 200 %. El texto real se ve nítido; el de una imagen se ve borroso.
- Active el alto contraste del sistema operativo. El texto debe cambiar de color como el resto.
- Si encuentra imágenes de texto, compruebe si podrían sustituirse por texto con CSS.
Ejemplo
Titular destacado hecho con texto y CSS en vez de con una imagen.
<style>
.destacado {
font: bold 2rem Georgia, serif;
color: #fff;
background: #00539f;
padding: 0.5em;
}
</style>
<h2 class="destacado">Rebajas de otoño</h2>
Para saber más, en nuestro blog
-
Tipografías accesibles para personas con dislexiaDescubre las tipografías más recomendadas para personas con dislexia. Aprende cómo elegir fuentes accesibles que mejoren la lectura
Ver el texto completo del W3C (traducción al español)
Esta es una traducción no oficial al español de la técnica C22 de Techniques for WCAG 2.2, del W3C. Puede contener errores. El único documento oficial y normativo es la versión original en inglés, publicada en el sitio web del W3C.
Aplicabilidad
Todas las tecnologías compatibles con CSS.
Descripción
El objetivo de esta técnica es demostrar cómo puede usarse CSS para controlar la presentación visual del texto. Esto permitirá a los usuarios modificar, a través del agente de usuario, las características visuales del texto para adaptarlas a sus necesidades. Las características del texto incluyen aspectos como el tamaño, el color, la familia tipográfica y la posición relativa.
CSS beneficia a la accesibilidad principalmente al separar la estructura del documento de su presentación. Las hojas de estilo se diseñaron para permitir un control preciso, fuera del marcado, del espaciado entre caracteres, la alineación del texto, la posición de los objetos en la página, la salida de audio y voz, las características de las fuentes, etc. Al separar el estilo del marcado, los autores pueden simplificar y limpiar el marcado de su contenido, haciéndolo al mismo tiempo más accesible.
El texto dentro de las imágenes presenta varios problemas de accesibilidad, entre ellos la imposibilidad de:
- escalarse según la configuración del navegador
- mostrarse en los colores especificados en la configuración del navegador o en las reglas de las hojas de estilo definidas por el usuario
- respetar la configuración del sistema operativo, como el alto contraste
Es mejor usar texto real para la parte textual de estos elementos, y una combinación de marcado semántico y hojas de estilo para crear la presentación visual adecuada. Para que esto funcione bien, elija fuentes que probablemente estén disponibles en el sistema del usuario y defina fuentes alternativas para los usuarios que quizá no tengan la primera fuente especificada. Los equipos y agentes de usuario más modernos suelen suavizar o aplicar antialiasing a todo el texto, por lo que es probable que sus encabezados y botones se vean bien en estos sistemas sin necesidad de recurrir a imágenes de texto.
Las siguientes propiedades CSS son útiles para dar estilo al texto y evitar la necesidad de incluir texto en imágenes:
- La propiedad
font-familyse usa para mostrar la parte de código en una familia tipográfica monoespaciada. - La propiedad
text-alignse usa para mostrar el texto a la derecha de la ventana gráfica. - La propiedad
font-sizese usa para mostrar el texto en un tamaño mayor. - La propiedad
font-stylese usa para mostrar el texto en cursiva. - La propiedad
font-weightse usa para establecer el grosor con que deben mostrarse los caracteres del texto. - La propiedad
colorse usa para mostrar el color del texto o de los contenedores de texto. - La propiedad
line-heightse usa para mostrar la altura de línea de un bloque de texto. - La propiedad
text-transformse usa para controlar si las letras del texto van en mayúsculas o minúsculas. - La propiedad
letter-spacingse usa para controlar el espaciado entre las letras del texto. - La propiedad
background-imagepuede usarse para mostrar texto sobre un fondo no textual. - El pseudoelemento
::first-linepuede usarse para modificar la presentación de la primera línea de un bloque de texto. - El pseudoelemento
::first-letterpuede usarse para modificar la presentación de la primera letra de un bloque de texto. - Los pseudoelementos
::beforey::afterpueden usarse para insertar contenido no textual decorativo antes o después de los bloques de texto.
Ejemplos
Usar font-family de CSS para controlar la familia tipográfica del texto
El componente HTML
<p>The JavaScript method to convert a string to uppercase is <code>toUpperCase()</code>.</p>
El componente CSS
code { font-family:"Courier New", Courier, monospace }
Usar text-align de CSS para controlar la posición (alineación) del texto
El componente HTML
<p class="right">This text should be to the right of the viewport.</p>
El componente CSS
.right { text-align: right; }
Usar font-size de CSS para controlar el tamaño del texto
El componente HTML
<p>09 <strong class="largersize">March</strong> 2008</p>
El componente CSS
strong.largersize { font-size: 1.5em; }
Usar color de CSS para controlar el color del texto
El estilo utilizado en este ejemplo no se emplea para transmitir información, estructura ni relaciones.
El componente HTML
<p>09 <em class="highlight">March</em> 2008</p>
El componente CSS
.highlight{ color: red; }
Usar font-style de CSS para poner el texto en cursiva
El estilo utilizado en este ejemplo no se emplea para transmitir información, estructura ni relaciones.
El componente HTML
<p>The article is available in the
<a href="https://www.example.com" class="featuredsite">Endocrinology Blog</a>.
</p>
El componente CSS
.featuredsite{ font-style:italic; }
Usar font-weight de CSS para controlar el grosor de la fuente del texto
El estilo utilizado en este ejemplo no se emplea para transmitir información, estructura ni relaciones.
El componente HTML
<p>This deal is available <span class="highlight">now!</span></p>
El componente CSS
.highlight { font-weight:bold; color:#990000; }
Usar text-transform de CSS para controlar las mayúsculas y minúsculas del texto
El estilo utilizado en este ejemplo no se emplea para transmitir información, estructura ni relaciones.
El componente HTML
<p>09 <span class="caps">March</span> 2008</p>
El componente CSS
.caps { text-transform:uppercase; }
Usar line-height de CSS para controlar el espaciado entre las líneas de texto
La propiedad line-height de CSS se usa para mostrar el párrafo con una altura de línea equivalente al doble de la altura de la fuente.
El componente HTML
<p>Concern for man and his fate must always form the chief interest of all technical
endeavors. Never forget this in the midst of your diagrams and equations.</p>
El componente CSS
p { line-height:2; }
La propiedad line-height de CSS se usa para mostrar el texto con una altura de línea inferior a la altura de la fuente. La segunda línea de texto se sitúa después de la primera y visualmente parece formar parte de ella, aunque ligeramente desplazada hacia abajo.
El componente HTML
<h1 class="overlap"><span class="upper">News</span>
<span class="byline">today</span>
</h1>
El componente CSS
.overlap { line-height:0.2;}
.upper { text-transform:uppercase; }
.byline {
color:red;
font-style:italic;
font-weight:bold;
padding-left:3em;
}
Usar letter-spacing de CSS para espaciar el texto
La propiedad letter-spacing de CSS se usa para mostrar las letras del encabezado más separadas entre sí.
El componente HTML
<h1 class="overlap"><span class="upper">News</span><br>
<span class="byline">today</span>
</h1>
El componente CSS
.overlap { line-height:0.2em; }
.upper { text-transform:uppercase; }
.byline {
color:red;
font-style:italic;
font-weight:bold;
padding-left:3em;
letter-spacing:-0.1em;
}
La propiedad letter-spacing de CSS se usa para mostrar las letras de la segunda línea de texto más juntas entre sí.
El componente HTML
<h1 class="upper2">News</h1>
El componente CSS
.upper2 { text-transform:uppercase; letter-spacing:1em; }
Usar background-image de CSS para superponer texto e imágenes
La propiedad font-style de CSS se usa para mostrar el componente textual de un banner y la propiedad background-image se usa para mostrar una imagen detrás del texto.
El componente HTML
<div id="banner"><span id="bannerstyle1">Welcome</span>
<span id="bannerstyle2">to your local city council</span>
</div>
El componente CSS
#banner {
color:white;
background-image:url(banner-bg.gif);
background-repeat:no-repeat;
background-color:#003399;
width:29em;
}
#bannerstyle1 {
text-transform:uppercase;
font-weight:bold;
font-size:2.5em;
}
#bannerstyle2 {
font-style:italic;
font-weight:bold;
letter-spacing:-0.1em;
font-size:1.5em;
}
Usar ::first-line de CSS para controlar la presentación de la primera línea de texto
El pseudoelemento ::first-line de CSS se usa para mostrar la primera línea de texto con una fuente más grande y de color rojo.
El componente HTML
<p class="startline">Once upon a time...<br />
...in a land far, far away...</p>
El componente CSS
.startline::first-line { font-size:2em; color:#990000; }
Usar ::first-letter de CSS para controlar la presentación de la primera letra del texto
El pseudoelemento ::first-letter de CSS se usa para mostrar la primera letra con un tamaño de fuente mayor, en rojo y alineada verticalmente en el centro.
El componente HTML
<p class="startletter">Once upon a time...</p>
El componente CSS
.startletter::first-letter { font-size:2em; color:#990000; vertical-align:middle; }
Pruebas
Procedimiento
- Comprobar si se han usado propiedades CSS para controlar la presentación visual del texto.
Resultados esperados
- La comprobación n.º 1 es verdadera.
Recursos
Cómo lo comprobamos en ADDAW
En cada auditoría de ADDAW revisamos esta técnica página a página y le entregamos los errores con capturas y la forma de corregirlos.
Basado en la técnica C22 del W3C (WCAG 2.2). Explicación y ejemplos: ADDAW. Traducción no oficial del texto del W3C © W3C, licencia de documentos del W3C. ¿Ha visto un error? Escríbanos.