Construir un formulario

Los formularios permiten a las personas interactuar con el sistema, ingresando, editando o confirmando información. Un diseño claro y ordenado facilita la comprensión de cada paso y ayuda a completar las tareas sin fricción.


Uso

Cuándo usar

  • Para crear una cuenta o iniciar sesión.
  • Para registrarse en un servicio, programa o beneficio.
  • Para solicitar turnos o inscribirse en actividades.
  • Para completar una transacción.
  • Para configurar o modificar preferencias y datos de perfil.
  • Para responder encuestas de feedback.

Buenas prácticas

Antes de construir un formulario, es fundamental comprender quiénes lo van a usar. Para eso, se recomienda realizar investigaciones UX, como entrevistas, encuestas, análisis de soluciones similares y testeos con personas usuarias.

Seguir los lineamientos de diseño y desarrollo ayuda a garantizar formularios usables y accesibles. Además, muchos recopilan datos sensibles, por lo que es clave respetar las normas de privacidad y seguridad.

  • Sólo campos necesarios: formularios breves facilitan la carga y reducen errores.
  • Protección de datos: los formularios deben cumplir con las normativas vigentes de privacidad y protección de datos personales.
  • Sin redundancias: no pedir información que ya haya sido proporcionada. Si el dato está disponible en el sistema, puede mostrarse en modo solo lectura (read-only).
  • Autocompletado:cuando sea posible, ciertos campos pueden completarse automáticamente. Por ejemplo, cargar el código postal tras ingresar el domicilio.
  • Tipo de campo adecuado: elegir el formato correcto según el tipo de dato.
  • Orden lógico: disponer los campos de forma coherente. Por ejemplo, país antes que ciudad.

Elementos que componen un formulario

  1. Título del formulario y bajada descriptiva.
  2. Campos de entrada (Inputs).
  3. Accionables.
Anatomía de Elementos que componen un formulario

Título del formulario y bajada descriptiva

Título del formulario

Identifica al formulario y brinda información sobre la acción a realizar.

Mala práctica en patrones de formularios ejemplo 1
close

Evitar el uso de tecnicismos o siglas internas que las personas desconocen.

Buena práctica en patrones de formularios ejemplo 1
check

Indicar la acción que están realizando las personas al completar el formulario.

Bajada descriptiva

Aporta contexto y brinda instrucciones claras, ayudando a que las personas sepan qué información necesitan y cuánto tiempo estimado les llevará completar el formulario.

Buena práctica en patrones de formularios ejemplo 2
close

La bajada no orienta, ni anticipa qué se necesita o cuánto tiempo tomará.

Mala práctica en patrones de formularios ejemplo 2
check

La bajada aporta contexto, requisitos y duración estimada, usando un lenguaje claro y cercano.

Tipos de Input

Cada tipo de input tiene una funcionalidad específica. Es importante elegir el indicado según el dato que se requiera.

Para conocer más sobre usos, especificaciones de código y accesibilidad, consultar la ficha de Inputs de texto.

Text

Permite ingresar una línea de texto de pocas palabras.

Input de texto - Texto

Text Area

Permite ingresar múltiples líneas de texto.

Input de texto - Textarea

Password

Permite ingresar contraseñas y datos sensibles.

Input de texto - Password

Email

Permite ingresar un correo electrónico.

Input de texto - Email

Number

Permite ingresar números.

Input de texto - Number

Tel

Permite ingresar un número telefónico.

Input de texto - Telefono

Date

Permite ingresar una fecha.

Input de texto - Date

Time

Permite ingresar un horario.

Input de texto - Time

Para conocer más sobre usos, especificaciones de diseño y código, y accesibilidad, consultar la ficha de Search.

Search

Permite buscar información.

Input de búsqueda

Para conocer más sobre usos, especificaciones de diseño y código, y accesibilidad, consultar las fichas de Select, Radio y Checkbox.

Select

Permite seleccionar un valor único o múltiples valores dentro de una lista desplegable de opciones.

Input de selección - Select

Radio

Permite seleccionar un único valor dentro de un número limitado de opciones.

Input de selección - Radio

Checkbox

Permite seleccionar cero o múltiples valores dentro de un número limitado de opciones.

Input de selección - Checkbox

Para conocer más sobre usos, especificaciones de diseño y código, y accesibilidad, consultar la ficha de File.

File

Permite cargar uno o múltiples archivos.

Input de carga de archivo

Accionables

Se colocan al final del formulario y sirven para enviar la información ingresada, guardar, avanzar o retroceder. Para más lineamientos consultar la ficha de Botones.

Mala práctica en patrones accionables ejemplo 1
close

Evitar términos ambiguos como "Enviar" o "Aceptar".

Buena práctica en patrones accionables ejemplo 1
check

Relacionar el texto de los accionables con el contenido del formulario para mayor claridad.

Mala práctica en patrones accionables ejemplo 2
close

Evitar términos vagos como "Volver" y "Continuar" para avanzar o retroceder en un formulario multi-página.

Buena práctica en patrones accionables ejemplo 2
check

El texto de los botones debe indicar claramente que se avanza o retrocede en un mismo formulario.

Estructura

La estructura principal del formulario se organiza a partir de un contenedor que agrupa todos los elementos del formulario: campos de entrada, títulos, subtítulos y botones. Este contenedor se adapta al ancho máximo disponible según el dispositivo:

  • En desktop, se ubica dentro de 8 columnas.
  • En tablet y mobile, ocupa el 100% del ancho disponible.
Estructura de un formulario

Disposición

Organizá los campos en una sola columna, ubicándolos uno debajo del otro. Esta disposición respeta el flujo natural de lectura, facilita la comprensión del contenido y reduce la carga mental al permitir que la información se procese de forma secuencial.

El ancho de cada campo debe ser proporcional a la longitud del contenido esperado, ayudando a la persona usuaria a anticipar la cantidad y el tipo de información que debe ingresar.

Disposición de Elementos que componen un formulario

Agrupación de campos

Los campos del formulario que comparten un propósito común, como "Ciudad" y "Código postal", pueden agruparse de forma horizontal dentro de un contenedor para mejorar la comprensión visual y facilitar la navegación a las personas que utilizan tecnologías de asistencia.

Agrupacion de campos

Ejemplos de uso

Mala práctica de uso ejemplo 1
close

Evitar agrupar más de tres campos en una misma línea. Un exceso de campos en disposición horizontal dificulta la lectura, genera desalineaciones y puede afectar negativamente la accesibilidad.

Buena práctica de uso
check

Mantener un número consistente de columnas a lo largo del formulario favorece la lectura y la previsibilidad visual. En la mayoría de los casos, se recomienda no superar los dos campos por fila para mantener una estructura clara y legible.

Alineación de botones

En formularios integrados en la página, donde no se requiere continuidad o navegación progresiva, las acciones principales se alinearan a la izquierda del cuerpo de la página y al final del formulario.

Podés consultar la documentación de Botones para conocer las combinaciones y alineaciones recomendadas en dispositivos desktop, tablet y mobile.

Mala práctica de uso ejemplo 2

Espaciados

Para mantener una estructura clara, legible y alineada al sistema de grillas, recomendamos los siguientes espaciados entre campos para dispositivos desktop:

  • Espaciado vertical de 24px: Usado para separar campos dispuestos uno debajo del otro.
  • Espaciado horizontal de 16px: Entre campos relacionados ubicados en una misma fila, por ejemplo, un campo para seleccionar el tipo de documento y un campo de texto para escribir el número de documento.
Espaciados ejemplo Desktop

Para dispositivos mobile, la disposición de los campos es uno debajo de otro, y el valor de la separación entre campos es de 12px.

Espaciados de ejemplo mobile

Secciones por temas

Para reforzar la comprensión del formulario es recomendado agrupar los temas relacionados en secciones con encabezados.

  • Utilice el nivel de encabezado adecuado. Para los títulos de las secciones de un formulario utilizar el estilo de texto Encabezado/ H5/ Semibold.
  • El encabezado de la sección debe describir cómo se relacionan los campos de entrada entre si, y en relación al formulario en su totalidad. Por ejemplo, "Información personal" o "Información de pago".
  • La separación entre secciones para dispositivos desktop es de 32px. para ayudar a las personas usuarias a comprender y organizar la información de manera más rápida y eficiente. En mobile, la separación entre secciones es de 24px.
Seccion por temas

Indicador de campo requerido y opcional

Es un indicador diseñado específicamente para los formularios que indica si un campo es opcional o requerido, y es el método más explícito y transparente para garantizar que las personas usuarias no tengan que hacer suposiciones.

Etiquetas de campo requerido y opcional

Ejemplos de uso

Mala práctica en etiquetas
close

Evitar mezclar etiquetas obligatorias y opcionales; utilice solo una.

Buena práctica en etiquetas
check

Indicá únicamente las excepciones: si la mayoría de los campos son obligatorios, marcá como "opcional" aquellos que no lo son; si la mayoría son opcionales, marcá como "requerido" solo los campos obligatorios.

Navegación alternativa

El componente de enlace está construido para ser reconocido por herramientas de asistencia como la navegación por teclado o lectores por voz.

TABENTER

Utilizando el tab la persona usuaria puede navegar a través de elementos de la interfaz. Además, con el enter, puede accionar los elementos sobre los que esté posicionada como botones, enlaces, entre otros.

Accesibilidad en navegación alternativa por TAB

Consideraciones globales de accesibilidad

Dependiendo del tipo de campo puede haber lineamientos adicionales.

  • Los campos de formulario siempre deben contar con un Label identificador visible y legible por los lectores de pantalla.
  • Si la sesión expira, la persona usuaria debe poder reautenticarse y continuar desde donde estaba, sin pérdida de datos. Se recomienda mostrar el tiempo restante de la sesión y advertir con algunos minutos de anticipación antes de que expire.
  • Las personas deben poder revisar sus datos antes de enviar el formulario, especialmente en casos de formularios multipágina con información legal y/o transacciones irreversibles.
  • Evitar que los campos de formulario cambien automáticamente el contexto (como navegar a otra página o enviar datos) sin que la persona usuaria lo confirme.

Instrucciones del formulario

Antes de comenzar un formulario, agregá instrucciones claras que ayuden a las personas a completarlo con éxito. Podés indicar qué campos son obligatorios, qué tipo de información se espera y cualquier otra indicación útil. Estas instrucciones deben ir antes del formulario para que cualquier persona, incluso quien usa lector de pantalla, pueda acceder a ellas desde el principio.

Etiquetado descriptivo

Para que el formulario funcione correctamente, todos los campos deben estar dentro de la etiqueta <form>. Esto permite que el sistema pueda enviar la información ingresada y ayudar a que las personas que usan lectores de pantalla entiendan mejor la estructura del formulario y puedan recorrerlo sin problemas.

    <form>
      <div class="form-label-container">
        <label for="fullname" class="form-label">
            ...
        </label>
        <span class="badge-forms badge-optional-forms">         
            ...
         </span>
      </div>
      <div class="row">
        <input type="text" class="form-control"
         id="fullname" name="fullname"/>    
      </div>
    </form>

Criterios WCAG aplicados

Success Criterion 1.3.1 Info and Relationships (Level A)

La información, la estructura y las relaciones transmitidas a través de la presentación pueden determinarse mediante programación o están disponibles en el texto.

Success Criterion 2.2.5 Re-authenticating (Level AAA)

Cuando una sesión autenticada expira, la persona usuaria puede continuar la actividad sin pérdida de datos después de re-autenticarse.

Success Criterion 2.4.6 Headings and Labels (Level AA)

Los encabezados y las etiquetas describen el tema o el propósito.

Success Criterion 3.2.2 On Input (Level A)

El cambio de la configuración de cualquier componente de la interfaz no provoca automáticamente un cambio de contexto a menos que la persona usuaria haya sido informada del comportamiento antes de utilizar el componente.

Success Criterion Labels or Instructions (Level A)

Se proporcionan etiquetas o instrucciones cuando el contenido requiere la entrada de la persona usuaria.

Success Criterion 4.1.2 Name, Role, Value (Level A)

Para todos los componentes de la interfaz de usuario (incluidos, entre otros: elementos de formulario, enlaces y componentes generados por scripts), el nombre y la función se pueden determinar mediante programación; los estados, propiedades y valores que puede establecer el usuario se pueden configurar mediante programación; y la notificación de cambios en estos elementos está disponible para los agentes de usuario, incluidas las tecnologías de asistencia.

G98: Proporcionar la posibilidad de revisar y corregir las respuestas antes de enviarlas

Antes de que se produzca el paso final que compromete la transacción, se proporcionan instrucciones para solicitar que la persona usuaria revise los datos ingresados y confirme. Una vez que la persona confirma, la transacción se completa.

Navegación de pie de página