ID de etiqueta válidos
Silktide comprueba las etiquetas de formulario que nombran su campo usando un ID y verifica que el ID exista en la página y pertenezca a un elemento que realmente pueda aceptar una etiqueta. Una etiqueta que apunta a nada, o al tipo de elemento equivocado, deja un campo sin nombre de forma silenciosa.
En , un <label> se conecta con su campo de formulario
estableciendo el atributo for de la etiqueta al id del campo. La
conexión se rompe cuando el ID se escribe mal, cuando cambia el ID del campo o
cuando el destino no es en absoluto un campo de formulario.
<!-- Problema: no existe ningún elemento con id=\"fullname\" -->
<label for=\"fullname\">Nombre completo</label>
<input type=\"text\" id=\"full-name\">
Por qué es importante
La etiqueta es la forma en que un
anuncia un campo. Cuando la referencia for está rota, la etiqueta y el
campo son dos elementos sin relación: la persona oye un "cuadro de edición" sin nombre
y tiene que adivinar qué debe introducir en él. Visualmente no cambia nada: la etiqueta
sigue junto a su campo, por lo que estas roturas pasan desapercibidas hasta que alguien
que depende de la conexión intenta usar el formulario.
Cómo solucionarlo
- Encuentra el campo al que se pretendía asociar la etiqueta y haz que el valor de
forcoincida exactamente con eliddel campo (los ID distinguen entre mayúsculas y minúsculas):
<!-- Solucionado: la referencia coincide con el id del campo -->
<label for=\"full-name\">Nombre completo</label>
<input type=\"text\" id=\"full-name\">
- Si la etiqueta apunta a algo que no puede aceptar una etiqueta —como un
<div>que actúa como control personalizado—, usa en su lugar: añade al elementoaria-labelledbyque apunte al texto que lo nombra. - Si la etiqueta es un sobrante sin campo, elimínala.
Cómo lo comprueba Silktide
- Busca en cada página cada elemento
<label>con un atributofor. - Localiza el elemento cuyo
idcoincide con el valor defor. - Marca la etiqueta si no existe tal elemento.
- Si existe, marca la etiqueta si el destino no es un elemento de formulario etiquetable — botón, input (excepto hidden), lista desplegable, área de texto, medidor, salida o barra de progreso.
Solución de problemas
El campo se añade mediante scripts
Silktide examina cada página tal y como se renderiza. Si el campo de destino solo existe en algunos estados de la página —por ejemplo, tras abrir un panel—, puede que el destino de la etiqueta no esté presente cuando se pruebe. Considera renderizar la etiqueta y su campo juntos.