Addaw, ir a inicio Donar

Técnica Técnicas generales WCAG 2.2

G224Tener en cuenta la sangría significativa del texto y el reajuste (reflow)

En resumen

En listas anidadas o en fragmentos de código, la sangría forma parte del significado y no puede eliminarse sin más al reducir la ventana a 320 píxeles CSS. Esta técnica muestra cómo ajustar con CSS (puntos de ruptura, tamaño de tabulación, anchuras mínimas) la sangría para que el contenido siga siendo legible con el mínimo desplazamiento horizontal posible. Beneficia a quienes amplían mucho la página o usan pantallas estrechas, y es útil en documentación técnica.

Aplicabilidad

Todas las tecnologías que admitan el cambio de estilos

Descripción

Puede haber casos en los que la sangría del texto se considere importante para la presentación y la comprensión del contenido textual. Si se eliminaran las sangrías, el significado o la funcionalidad podrían verse perjudicados. Por ejemplo, el anidamiento de listas no ordenadas puede ser más difícil de apreciar si se eliminan las sangrías. Además, mantener las sangrías puede ser importante para ayudar a entender los patrones del código, cuando no imprescindible para que el código funcione.

Dado que mantener la sangría es importante en estos casos de texto, podría ser necesario el desplazamiento en dos dimensiones de estas secciones concretas del contenido. No obstante, siguen existiendo modificaciones de estilo que pueden realizarse para ayudar a garantizar que la sangría se conserve y que, al mismo tiempo, se muestre la mayor cantidad de texto posible dentro de la ventana gráfica (viewport). Realizar estos ajustes puede limitar, cuando no evitar, el desplazamiento en dos dimensiones, lo que facilita la lectura del contenido.

Ejemplos

Un sitio web transmite información en forma de lista anidada. La comprensión de la jerarquía de la lista se apoya en la sangría de su contenido. Aunque es importante que el texto de cada elemento de la lista se reajuste, la jerarquía de la lista se vería perjudicada si se aplanara para que todo el contenido cupiera en una ventana gráfica de 320 píxeles CSS de ancho.

La siguiente lista de ejemplo contiene listas anidadas adicionales que aportan más contexto al texto de cada elemento de la lista padre. Para mantener la jerarquía visual, la sangría de cada nivel de la lista se conserva, pero se modifica cuando se alcanza un punto de ruptura (breakpoint) CSS definido por el autor. Se establecen estilos adicionales para distintos puntos de ruptura con el fin de mitigar la posibilidad de que el contenido se extienda más allá de una ventana gráfica de 320 píxeles de ancho, teniendo en cuenta a la vez el espaciado visual respecto a los bordes de la ventana gráfica para intentar que el contenido no resulte apretado. En el punto de ruptura más pequeño, el contenido de los elementos de la lista recibe una anchura mínima para mitigar el posible «aplastamiento» de las listas con muchos niveles anidados. En este punto de ruptura, cada nivel de lista anidada puede llevarse a la vista mediante desplazamiento horizontal y, una vez que una lista anidada es visible dentro de la ventana gráfica, solo será necesario el desplazamiento vertical para leer el contenido de sus elementos.


<div class="example">
	<ul>
		<li>
			<p>Make a list using one of the HTML list elements, or even an ARIA <code>role=list</code> container.</p>
			<ul>
				<li>
					<p>There are three types of lists in HTML which can contain list items (<code>li</code> elements).</p>
					<ul>
						<li><p>the <code>ul</code> element</li>
						<li><p>the <code>ol</code> element</li>
						<li><p>the <code>menu</code> element</li>
					</ul>
				</li>
				<li>
					<p>Another type of list, description lists, exist as well - but they do not contain list items (<code>li</code> elements).</p>
				</li>
        ...
			</ul>
		</li>
		<li>
			<p>Neither the start or end tags of any of the HTML list elements are omissible.</p>
			<ul>
				<li><p>The end tags of <code>li</code> elements can be omitted if the <code>li</code> element is immeditely followed by another <code>li</code> element or there is no more content in the parent list element.</p>
				</li>
				...
			</ul>
		</li>
		...
	</ul>
</div>

*, *::before, *::after {
    box-sizing: border-box;
}
body, html {
    font-family: arial;
}
@media screen and ( max-width: 640px ) {
    .example {
        overflow: auto;
        max-width: 640px;
    }
    ul {
        padding-inline-start: 1.25em;
    }
    li p {
        padding: .25em;
        margin: .5em 0 .5em -.25em;
        max-width: 300px; /* saftey net for max-width */
    }
}
@media screen and ( max-width: 400px ) {
    ul { padding-inline-start: 1em; }
    li p { min-width: 300px } {
        min-width: 300px;
    }
}

Un ejemplo práctico de una lista cuyos niveles anidados pueden leerse en una ventana gráfica de 320 píxeles de ancho.

Un sitio web que ofrece fragmentos de código necesita mantener la sangría de las líneas, ya que las sangrías son significativas no solo para la estructura del código, sino que en algunos lenguajes, como Python, son obligatorias para definir bloques de código.

A medida que el usuario amplía la página web, el CSS de la sangría puede ajustarse para mantener esta estructura necesaria y permitir, al mismo tiempo, que se vea más texto en una sola línea.

Lo siguiente representa un ejemplo de código en Python. La sangría de cada línea de texto es necesaria para crear un grupo de sentencias que se ejecutan como un bloque.


def complex_function(x):
    if x > 0:
        for i in range(x):
            if i % 2 == 0:
                print(f"{i} is even")
                for a in range(i):
                    if a % 5 == 0:
                        print(f"  {a} can be divided by 5")
                    else:
                        print(f"  {a} cannot be divided by 5")
            else:
                print(f"{i} is odd")
                for a in range(i):
                    if a % 2 == 0:
                        print(f"  {a} is even")
                    else:
                        print(f"  {a} is odd")
    else:
        print("x is not a positive number")

El siguiente ejemplo de código muestra el uso de la sangría para transmitir el anidamiento de los elementos en un documento HTML:


<html lang=en>
	<head>...</head>
	<body>
		<div>
			<!-- ... keep indenting as necessary  -->
		</div>
	</body>
</html>

La sangría de bloques de código como estos podría ajustarse para distintos tamaños de ventana gráfica mediante una consulta de medios (media query) CSS.


@media screen and ( min-width: 320px ) {
	pre {
		tab-size: 8px;
	}
}
@media screen and ( min-width: 640px ) {
	pre {
		tab-size: 16px;
	}
}
@media screen and ( min-width: 1280px ) {
	pre {
		tab-size: 32px;
	}
}

Un ejemplo práctico de fragmentos de código que usan CSS para modificar la anchura de la sangría en distintos puntos de ruptura.

Pruebas

Procedimiento para el ejemplo de la lista

  1. Mostrar la página web en un agente de usuario en el que la página pueda ampliarse o el agente de usuario pueda cambiar de tamaño.
  2. Ampliar o cambiar el tamaño de la ventana del navegador de modo que la ventana gráfica equivalga a 320 píxeles CSS de ancho.
  3. El contenido de la lista cabe en esa anchura, de modo que solo es necesario desplazarse verticalmente para leer la lista.
  4. O bien, cada lista anidada puede llevarse a la vista mediante desplazamiento horizontal. Solo es necesario el desplazamiento vertical para leer el contenido de los elementos de la lista dentro de cada nivel concreto de lista anidada.

Resultados esperados

  • La comprobación n.º 3 o la n.º 4 es verdadera.

Procedimiento para los fragmentos de código

  1. Mostrar la página web en un agente de usuario en el que la página pueda ampliarse o el agente de usuario pueda cambiar de tamaño.
  2. Ampliar o cambiar el tamaño de la ventana del navegador de modo que la ventana gráfica equivalga a 320 píxeles CSS de ancho.
  3. Los fragmentos de código caben en esa anchura, de modo que solo es necesario desplazarse verticalmente para leer cada línea de código.
  4. O bien, cuando no sea esencial que las líneas no se ajusten, el código se ajusta a la línea o se proporciona un mecanismo que permite el ajuste de línea.
  5. O bien, la sangría y los saltos de línea son significativos para el lenguaje del código.

Resultados esperados

  • La comprobación n.º 3, la n.º 4 o la n.º 5 es verdadera.

Cómo lo comprobamos en ADDAW

En las auditorías de accesibilidad de ADDAW revisamos cada criterio de conformidad siguiendo este catálogo de técnicas: comprobamos si la web aplica una técnica suficiente y documentamos cada fallo común con capturas y el código afectado, para que el equipo de desarrollo sepa exactamente qué corregir. Los informes siguen la metodología del Observatorio de Accesibilidad y la norma UNE-EN 301 549.

Solicitar una auditoría

Fuente y licencia

Traducción al español, no oficial, realizada por ADDAW a partir de la técnica G224 del documento «Techniques for WCAG 2.2» del W3C (versión del repositorio público del W3C a 22/10/2026). Copyright © W3C® (MIT, ERCIM, Keio, Beihang). Se publica conforme a la licencia de documentos del W3C. El texto normativo de referencia es el original en inglés; si detecta un error en la traducción, escríbanos.

Financiado por la unión europea Gobierno de españa red.es Plan de recuperación transformación y resilencia kit digital