Técnica CSS WCAG 2.2
C38Usar width, max-width y flexbox de CSS para ajustar las etiquetas y los campos de entrada
En resumen
Esta técnica explica cómo combinar las propiedades CSS width y max-width con flexbox para que las etiquetas y los campos de los formularios se recoloquen y cambien de tamaño según el espacio disponible, sin provocar desplazamiento horizontal a 320 píxeles CSS ni con zoom al 400 %. Es útil en formularios de diseños adaptables y beneficia a quienes usan zoom o móviles (criterio 1.4.10 Reajuste de elementos).
Aplicabilidad
CSS y HTML.
Descripción
El objetivo de esta técnica es poder presentar etiquetas y campos de entrada sin introducir una barra de desplazamiento horizontal a una anchura equivalente a 320 píxeles CSS en el caso de contenido pensado para desplazarse verticalmente. Cuando el espacio de la ventana gráfica es limitado y la etiqueta y el campo de entrada no pueden situarse uno junto al otro en horizontal, pasan a alinearse en vertical. Para ello se utilizan las propiedades CSS width, max-width y flexbox, que se adaptan al espacio disponible.
Los diseños adaptables pueden añadir o quitar columnas o bloques de la disposición, y cada parte de la disposición puede ser más ancha o más estrecha en distintos puntos. Esta técnica garantiza que las etiquetas y los campos de entrada no se salgan de su área de disposición, incluso en diseños de una sola columna, donde provocarían desplazamiento horizontal.
El planteamiento básico para ajustar las etiquetas y los campos de entrada consiste en:
- Definir el tamaño de las regiones de la disposición mediante propiedades de flexbox y consultas de medios (media queries) para tamaños concretos de la ventana gráfica, de modo que se agranden, se reduzcan o se ajusten en varias líneas según el espacio disponible y respondan a los niveles de zoom;
- Colocar las regiones de la disposición dentro del contenedor flexbox como una fila de elementos flexbox adyacentes, que pueden pasar a nuevas filas cuando sea necesario, de forma muy parecida a como se ajustan las palabras de un párrafo.
- Definir las propiedades width y max-width de las etiquetas y los campos de entrada, de modo que se agranden o se reduzcan en el espacio disponible y respondan a los niveles de zoom.
Todas las etiquetas y campos de entrada requieren cierto cuidado en el diseño: hay que asegurarse de que el tamaño original se ajusta al mayor de los espacios disponibles para obtener buenos resultados visuales en una amplia gama de tamaños de ventana gráfica y niveles de zoom. Para obtener ayuda sobre flexbox, consulte el artículo de MDN sobre Flexbox.
Ejemplos
Ajustar etiquetas, campos de entrada y disposición flexbox con HTML y CSS.
El siguiente ejemplo utiliza HTML y CSS para ajustar etiquetas y campos de entrada dentro de contenedores de distintas anchuras, incluida la ventana gráfica. Las regiones de la disposición cambian de tamaño cuando se modifica la ventana gráfica. A continuación, las etiquetas y los campos de entrada ajustan su tamaño para caber dentro de los contenedores de las regiones de la disposición.
El nivel de zoom puede aumentarse hasta el 400 % sin que haga falta desplazamiento horizontal. Este ejemplo concreto utiliza un tamaño en porcentaje para width y max-width en las etiquetas y los campos de entrada. Se aplica max-width para corregir, de forma compatible con todos los navegadores, que los elementos se salgan de la rejilla, ya que los elementos reemplazados, como select, tienen un dimensionado intrínseco.
<style>
/* Fitting Inputs Styling */
.form-group {
display: flex;
flex-flow: row wrap;
margin: 0 -1rem 1rem -1rem;
}
[class*="form-col"] {
flex: 0 1 100%;
padding: 0 1rem;
}
@media (min-width: 576px) {
.form-col-4 {
flex: 0 0 33.33333%;
max-width: 33.33333%;
}
.form-col-8 {
flex: 0 0 66.66667%;
max-width: 66.66667%;
}
.offset-form-col-4 {
margin-left: 33.33333%;
}
}
input {
display: block;
width: 100%;
}
label, select {
display: block;
width: 100%;
max-width: 100%;
}
</style>
<div class="form-group">
<div class="form-col-4">
<label for="fname">First Name</label>
</div>
<div class="form-col-8">
<input type="text" id="fname" autocomplete="given-name">
</div>
</div>
<div class="form-group">
<div class="form-col-4">
<label for="lname">Last Name</label>
</div>
<div class="form-col-8">
<input type="text" id="lname" autocomplete="family-name">
</div>
</div>
<div class="form-group">
<div class="form-col-4">
<label for="favorite-fruit">Favorite fruit</label>
</div>
<div class="form-col-8">
<select id="favorite-fruit">
<option>Banana</option>
<option>Pineapple</option>
<option>Strawberry</option>
</select>
</div>
</div>
<div class="form-group">
<div class="offset-form-col-4 form-col-8">
<button type="submit">Submit</button>
</div>
</div>
Ejemplo práctico: Usar etiquetas y campos de entrada ajustables para el reajuste (reflow)
Pruebas
Procedimiento
- Mostrar la página web en un agente de usuario capaz de hacer zoom al 400 % y establecer las dimensiones de la ventana gráfica (en píxeles CSS) en 1280 de ancho y 1024 de alto.
- Ampliar con zoom al 400 %.
- Para el contenido que se desplaza verticalmente, todas las etiquetas y campos de entrada caben en su espacio disponible sin desplazamiento horizontal.
Nota: si el navegador no es capaz de ampliar al 400 %, puede reducir la anchura del navegador proporcionalmente. Por ejemplo, con un zoom del 300 %, la ventana gráfica debería tener 960 px de ancho.
Resultados esperados
La comprobación n.º 3 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.
Fuente y licencia
Traducción al español, no oficial, realizada por ADDAW a partir de la técnica C38 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.