Principio 3/3.3 Assistencia en los input/3.3.2-C
De WCAG Wiki
3.3.2-C. Campos obligatorios
- Nivel: A
- Versión: 2.0
- Principio: 3_Comprensible
- Pauta: 3.3_Assistencia_en_los_input
- Grupo: Formularios
- Subgrupo: Campos_obligatorios
Discapacidades afectadas
Este criterio puede afectar a distintas personas con discapacidad. A continuación se indican las más relevantes.
-
Cognitiva –
Barrera moderada
-
Baja visión –
Barrera moderada
Enunciado del criterio (Observatorio de Accesibilidad Web)
- Se deben identificar los campos de formulario que son obligatorios.
Comprensión del criterio
Descripción resumida
Los campos obligatorios deben indicarse explícitamente mediante texto claro y, cuando sea necesario, ser complementados con atributos semánticos.
Objetivo
Evitar errores e incertidumbre informando qué campos son obligatorios antes del envío.
Importancia de cumplir el criterio
Las personas con baja visión, discapacidad cognitiva o uso de lectores de pantalla necesitan una indicación explícita para completar correctamente los formularios.
Referencias WCAG
Recursos de apoyo
Consejos
- Indicar “(obligatorio)” o “(requerido)”
- Uso de
requiredyaria-required="true" - Evitar depender solo de *
Evaluación del criterio
Tipo de evaluación
Evaluación Semiautomática
Procedimiento de evaluación
- Paso 1. Localizar los formularios existentes.
- Paso 2. Verificar que se indica qué campos de formulario son obligatorios. Si el indicador de obligatoriedad no se proporciona como texto sino mediante una marca o indicación visual (p. ej., un asterisco, negrita, etc.), comprobar que se informa sobre el significado de dicho indicador antes de su primera aparición.
Resultado esperado
Los campos obligatorios se identifican claramente para todos los usuarios.
Ejemplo ilustrativo
Campo obligatorio con texto + atributo (required)
<label for="nombre">Nombre completo (obligatorio)</label> <input id="nombre" name="nombre" required aria-required="true">
Otras herramientas de evaluación
- Inspección visual: comprobar que los campos obligatorios están claramente identificados mediante texto visible (p. ej., “(obligatorio)” o indicando que todos los campos marcados tienen esta condición). No depender solo del color o de un asterisco.
- Inspección del código: verificar que los campos obligatorios usan
requiredoaria-required="true"para que los productos de apoyo puedan interpretarlo correctamente. - Lectores de pantalla: (NVDA, JAWS, VoiceOver) confirmar que al enfocar un campo obligatorio se anuncia como tal.
- Prueba funcional: intentar enviar el formulario sin completar los campos obligatorios para comprobar que el sistema avisa correctamente y de forma accesible.
Ejemplos accesibles y no accesibles creados por alumnos
<!DOCTYPE html>
⚠️ PROBLEMA 3.3.2-C: Este formulario NO tiene etiquetas ni instrucciones claras
Reserva de Hotel
⚠️ Problemas de este formulario:
- No hay etiquetas
<label>para ningún campo - Algunos placeholders son ambiguos ("Código" - ¿qué código?)
- No se indica qué campos son obligatorios
- No hay instrucciones sobre el formato esperado
- El select dice "Selecciona" pero ¿seleccionar qué?
- Un campo no tiene ni placeholder ni etiqueta (campo de email)
- No hay indicación de formato de fecha específico
- No se explica para qué sirve cada campo
<!DOCTYPE html>
✅ ACCESIBLE 3.3.2-C: Este formulario tiene etiquetas e instrucciones claras
Reserva de Hotel
Complete el siguiente formulario para reservar su estadía
Nota: Los campos marcados con * son obligatorios
✅ Implementación correcta:
- Cada campo tiene una etiqueta
<label>clara asociada - Los campos obligatorios están claramente marcados con *
- Hay instrucciones específicas sobre formato y contenido esperado
- Los selectores tienen opciones descriptivas, no ambiguas
- Se explica el propósito de cada campo cuando no es obvio
- Se proporcionan ejemplos en los placeholders
- Hay una nota inicial explicando la convención de campos obligatorios
- Se usan atributos ARIA apropiados (aria-required, aria-describedby)
Comentarios
A continuación se muestran comentarios sobre el criterio 3.3.2-C. Campos obligatorios
Loading comments...
