Formularios accesibles: labels, ayudas y errores

Diseño e implementación de formularios que se entienden, se completan y se corrigen sin fricción.

Un formulario accesible reduce abandonos porque guía bien antes, durante y después del envío.

Etiqueta, ayuda contextual y validación deben formar un mismo sistema, no piezas sueltas.

Los errores deben ser específicos, ubicables y anunciados sin romper el flujo de teclado.

Si una persona no sabe qué falló o cómo corregirlo, el formulario está mal diseñado.

  • Patrones de formulario que funcionan en producto real, no solo en demos.
  • Cómo auditar formularios existentes y priorizar correcciones útiles.
  • Empieza por formularios de alta conversión: registro, pago, contacto y recuperación.
  • Prueba con entradas vacías, formato erróneo y navegación solo con teclado.
  • Mide antes y después: tiempo de completado, errores por campo y abandono del flujo.

Claves teóricas

Patrones de formulario que funcionan en producto real, no solo en demos.

Aplicación en proyectos reales

Cómo auditar formularios existentes y priorizar correcciones útiles.

Empieza por formularios de alta conversión: registro, pago, contacto y recuperación.

Prueba con entradas vacías, formato erróneo y navegación solo con teclado.

Mide antes y después: tiempo de completado, errores por campo y abandono del flujo.

  • Define criterios mínimos de accesibilidad para cualquier formulario nuevo.
  • Unifica componentes de input, error y ayuda para todo el proyecto.
  • Evita validaciones sorpresivas que cambian foco sin contexto.
  • Registra casos de error frecuentes y ajusta microcopy según datos reales.

Patrón de código

Base de campo con etiqueta, ayuda y región de error preparada para anuncio.

Accesibilidad Web
06

Formularios accesibles: labels, ayudas y errores

Diseño e implementación de formularios que se entienden, se completan y se corrigen sin fricción.

Código del tema: accessible forms

📘 Teoría

Claves teóricas

Patrones de formulario que funcionan en producto real, no solo en demos.

1

Etiqueta siempre visible

No dependas de placeholder como sustituto de label.

2

Ayuda previa

Indica formato o restricciones antes del error, con `aria-describedby`.

3

Error accionable

Explica exactamente qué está mal y cómo resolverlo.

4

Estado inválido

Sincroniza mensaje y control usando `aria-invalid`.

5

Orden de foco

Al enviar, mueve foco al primer error o al resumen de errores.

6

Éxito claro

Confirma guardado/envío con mensaje visible y anunciado.

Aplicación en proyectos reales

Cómo auditar formularios existentes y priorizar correcciones útiles.

Empieza por formularios de alta conversión: registro, pago, contacto y recuperación.

Prueba con entradas vacías, formato erróneo y navegación solo con teclado.

Mide antes y después: tiempo de completado, errores por campo y abandono del flujo.

  • Define criterios mínimos de accesibilidad para cualquier formulario nuevo.
  • Unifica componentes de input, error y ayuda para todo el proyecto.
  • Evita validaciones sorpresivas que cambian foco sin contexto.
  • Registra casos de error frecuentes y ajusta microcopy según datos reales.

Patrón de código

Base de campo con etiqueta, ayuda y región de error preparada para anuncio.

Campo accesible completo
<label for="telefono">Teléfono</label>
<input id="telefono" type="tel" aria-describedby="ayuda-telefono error-telefono" />
<p id="ayuda-telefono">Formato: +34 600 000 000</p>
<p id="error-telefono" role="alert"></p>

🧪 Aprende probando

Ejemplo Demo guiada Valida un formulario con feedback claro sin romper foco.

🏁 Retos

Reto Reto práctico Añade estado inválido y error anunciado a un campo sin feedback.

🧰 Recursos

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .