Técnica CSS WCAG 2.2
C28Medir los contenedores de texto en unidades em
Nombre oficial en el W3C: Especificar el tamaño de los contenedores de texto en unidades em
En pocas palabras
El ancho y el alto de las cajas que contienen texto, y de los campos de formulario, se indican en em o rem. Estas unidades dependen del tamaño de la letra. Así, cuando alguien amplía el texto, la caja crece con él y el texto no se corta.
Por qué es importante
Un menú lateral de 150 píxeles o un campo de 20 píxeles de alto no cambian al ampliar la letra. El texto ampliado ya no cabe. Queda cortado, se sale de la caja o se monta sobre otros elementos.
Esto afecta a personas con baja visión que necesitan la letra al 200 %. También a quien aumenta el espaciado entre líneas o letras para leer mejor.
Cómo se hace
- Indique en
emoremel ancho y el alto de menús, barras laterales y cajas de texto. - Haga lo mismo con los campos de formulario:
input,selectytextarea. - Use también
emorempara el tamaño de la letra de esos elementos. - Siempre que pueda, prefiera
min-heighta unheightfijo. Así la caja crece si el texto lo necesita.
Cómo comprobarlo
- Con las herramientas del navegador (tecla F12), revise las medidas de las cajas con texto y de los campos. Deben estar en
emorem. - Amplíe el texto al 200 %.
- Compruebe que los menús, las cajas y los campos crecen con el texto.
- Compruebe que ningún texto queda cortado ni montado sobre otro.
Ejemplo
Menú lateral y campo de búsqueda medidos en em.
#menu-lateral {
width: 12em;
font-size: 1em;
}
#buscador input {
width: 20em;
min-height: 2em;
font-size: 1em;
}
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 C28 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
CSS
Descripción
El objetivo de esta técnica es especificar en unidades em la anchura y/o la altura de los contenedores que incluyen texto o que admiten la entrada de texto. Esto permitirá a los agentes de usuario compatibles con el cambio de tamaño del texto redimensionar los contenedores de texto en consonancia con los cambios en la configuración del tamaño del texto.
La anchura y/o la altura de los contenedores de texto que se han especificado con otras unidades corren el riesgo de que el texto se recorte, porque queda fuera de los límites del contenedor cuando se ha aumentado el tamaño del texto.
Los contenedores controlan por lo general la colocación del texto dentro de la página web y pueden incluir elementos de maquetación, elementos estructurales y controles de formulario.
Esta técnica utiliza unidades em, pero usar en su lugar unidades rem tendría el mismo efecto.
Ejemplos
Unidades em para los tamaños de un contenedor de maquetación que incluye texto
En este ejemplo, un elemento div, con el valor de id "nav_menu", se usa para situar el menú de navegación a lo largo del lado izquierdo del área de contenido principal de la página web. El menú de navegación consiste en una lista de enlaces de texto, con el valor de id "nav_list". El tamaño del texto de los enlaces de navegación y la anchura del contenedor se especifican en unidades em.
#nav_menu { width: 20em; height: 100em; }
#nav_list { font-size: 100%; }
Unidades em para controles de formulario de texto
En este ejemplo, a los elementos input que contienen texto o que aceptan la entrada de texto por parte del usuario se les ha asignado class="form1". Se usan reglas CSS para definir el tamaño de fuente de estos elementos en porcentaje y su anchura en unidades em. Esto permitirá que el texto del control de formulario cambie de tamaño en respuesta a los cambios en la configuración del tamaño del texto sin quedar recortado (porque la anchura del propio control de formulario también cambia de tamaño según el tamaño de la fuente).
input.form1 { font-size: 100%; width: 15em; }
Unidades em en listas desplegables
En este ejemplo, a los elementos select se les ha asignado class="pick". Se usan reglas CSS para definir el tamaño de fuente en porcentaje y la anchura en unidades em. Esto permitirá que el texto del control de formulario cambie de tamaño en respuesta a los cambios en la configuración del tamaño del texto sin quedar recortado.
select.pick { font-size: 100%; width: 10em; }
Unidades em para controles de formulario que no son de texto
En este ejemplo, a los elementos input que definen casillas de verificación o botones de opción se les ha asignado el nombre de clase "choose". Se usan reglas CSS para definir la anchura y la altura de estos elementos en unidades em. Esto permitirá que el control de formulario cambie de tamaño en respuesta a los cambios en la configuración del tamaño del texto.
input.choose { width: 1.2em; height: 1.2em; }
Pruebas
Procedimiento
- Identificar los contenedores que incluyen texto o que permiten la entrada de texto.
- Comprobar que la anchura y/o la altura del contenedor están especificadas en unidades
em.
Resultados esperados
- La comprobación n.º 2 es verdadera.
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 C28 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.