form
Un punto de referencia para un formulario — un conjunto de controles de entrada que envían datos. Un elemento <form> se expone como punto de referencia de formulario ÚNICAMENTE cuando tiene un nombre accesible. Sin nombre, es simplemente un formulario, no un punto de referencia.
Cuándo utilizarlo
Para formularios sustantivos — registro, pago, contacto, edición de perfil — que merezcan ser navegados como punto de referencia. Al igual que region, el elemento <form> se promueve a punto de referencia de formulario ÚNICAMENTE cuando dispone de un nombre accesible (aria-label o aria-labelledby).
El nombre accesible del formulario debe describir su propósito: «Formulario de contacto», «Registro», «Editar perfil». Se debe evitar el genérico «Formulario», que resulta redundante con el anuncio del rol.
Si el formulario es de búsqueda, se debe usar <search> (o role="search") en su lugar, ya que el punto de referencia de búsqueda es más específico.
Un formulario de suscripción con un único campo o un cuadro de búsqueda no justifica el uso del punto de referencia de formulario. Conviene reservarlo para formularios con tres o más entradas significativas y un propósito claro.
Cuándo añadir una etiqueta
Siempre — sin nombre, el elemento <form> no se convierte en punto de referencia. Cuando una página contiene varios formularios (un formulario de comentarios Y una suscripción al boletín), cada uno DEBE tener un nombre distinto.
Se prefiere aria-labelledby apuntando a un encabezado visible frente a aria-label, ya que asocia el título visible con el anuncio del punto de referencia.
Errores frecuentes
<form>sinaria-labelniaria-labelledby. No es un punto de referencia. Los usuarios no pueden saltar a él mediante la navegación por puntos de referencia.aria-label="Formulario"— redundante.- Usar
<form role="search">y ademásaria-label="Búsqueda". El punto de referencia de búsqueda ya lo cubre; el rol de formulario generaría conflicto. - Formularios de acceso e inicio de sesión etiquetados ambos como «Iniciar sesión» — indistinguibles en el menú de puntos de referencia.
- Envolver un único campo en
<form>y etiquetarlo como punto de referencia de formulario. Uso excesivo; el punto de referencia no aporta valor.
Ejemplo
<form aria-labelledby="contactHeading">
<h2 id="contactHeading">Contáctenos</h2>
<label>Nombre <input type="text" name="name" required></label>
<label>Correo electrónico <input type="email" name="email" required></label>
<label>Mensaje <textarea name="message" required></textarea></label>
<button type="submit">Enviar</button>
</form>