Formularios básicos en HTML: label, input y validación nativa

Construye formularios claros, accesibles y funcionales con HTML puro.

Un formulario bueno empieza con etiquetas claras y tipos de input correctos.

Cada input debe tener su label asociado con `for` e `id`.

La validación nativa (`required`, `minlength`, `type=email`) cubre muchos casos sin JavaScript.

Placeholder ayuda como ejemplo, pero no sustituye al label.

  • Si el usuario duda qué escribir, el formulario está mal diseñado. ✍️
  • Elige `type` según dato real: `email`, `password`, `tel`, `number`... Esto mejora teclado móvil y validación.
  • Agrupa campos relacionados con `fieldset` y `legend` cuando la forma tenga varias partes.
  • Simple, claro y mantenible.
  • No uses solo placeholder como etiqueta.

Fundamentos de un formulario usable

Si el usuario duda qué escribir, el formulario está mal diseñado. ✍️

Elige `type` según dato real: `email`, `password`, `tel`, `number`... Esto mejora teclado móvil y validación.

Agrupa campos relacionados con `fieldset` y `legend` cuando la forma tenga varias partes.

Patrón base que deberías repetir

Simple, claro y mantenible.

  • No uses solo placeholder como etiqueta.
  • Define `name` en controles que se van a enviar.
  • Mantén labels cortos y concretos.

Errores que debes evitar desde ya

Son fallos pequeños que rompen conversiones.

  • Inputs sin label asociado.
  • Usar `type="text"` para email o teléfono.
  • No marcar obligatorios los campos críticos.
  • Botón sin `type="submit"` en formularios simples.
HTML
11

Formularios básicos en HTML: label, input y validación nativa

Construye formularios claros, accesibles y funcionales con HTML puro.

Código del tema: <form> | <label for> | <input type> | required

📘 Teoría

Fundamentos de un formulario usable

Si el usuario duda qué escribir, el formulario está mal diseñado. ✍️

Elige `type` según dato real: `email`, `password`, `tel`, `number`... Esto mejora teclado móvil y validación.

Agrupa campos relacionados con `fieldset` y `legend` cuando la forma tenga varias partes.

1

label + for

Conecta texto y control de forma explícita.

2

type correcto

Ahorra errores y mejora UX.

3

required

Evita envíos vacíos de forma nativa.

Patrón base que deberías repetir

Simple, claro y mantenible.

  • No uses solo placeholder como etiqueta.
  • Define `name` en controles que se van a enviar.
  • Mantén labels cortos y concretos.

Errores que debes evitar desde ya

Son fallos pequeños que rompen conversiones.

  • Inputs sin label asociado.
  • Usar `type="text"` para email o teléfono.
  • No marcar obligatorios los campos críticos.
  • Botón sin `type="submit"` en formularios simples.

🧪 Aprende probando

Ejemplo Ejemplo guiado: mini registro Formulario corto con validación nativa y estructura correcta.
Ejemplo Demo interactiva: estructura nativa con fieldset, legend y optgroup Explora una base profesional de formulario con agrupación semántica y controles clave.
Ejemplo Demo interactiva: laboratorio de formulario nativo Cambia label, tipo, ayuda y validación para ver cómo mejora un campo real sin usar JavaScript.

🏁 Retos

Reto Reto: vuelve obligatorio el nombre Añade la validación mínima para evitar envíos vacíos.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre HTML.

Test de HTML
CodePen: Clean Registration Form
Abrir en CodePen

¿Qué es esto?

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

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com