Encabezados de celda
Silktide comprueba las celdas de las tablas que indican sus encabezados mediante el atributo headers, y verifica que cada ID al que hacen referencia exista realmente. Una referencia a un ID inexistente rompe en silencio la conexión entre una celda y su encabezado.
En tablas complejas, cada celda de datos puede llevar un atributo headers que enumera los valores id de las celdas de encabezado que se le aplican. Si un ID está mal escrito, o el encabezado al que apuntaba se ha renombrado o eliminado, la asociación deja de funcionar sin dar señales.
<!-- Problema: no existe ningún elemento con id="prise" (errata de "price") -->
<td headers="prise">$40</td>
Por qué es importante
Un utiliza las asociaciones con headers para anunciar los encabezados correctos antes de cada valor; así es como una persona que no puede ver la tabla sabe qué significa cada número. Cuando una referencia no apunta a nada, la celda se anuncia sin su contexto y la persona que escucha no tiene forma de saber que falta algo: la tabla simplemente se vuelve más difícil o imposible de seguir.
Las referencias rotas suelen colarse con el tiempo: se cambia el id de un encabezado, se elimina una columna o un regenera los ID. Visualmente no cambia nada, así que sin una comprobación automatizada nadie se da cuenta.
Cómo solucionarlo
- Busca el atributo
headersde la celda y compara cada ID listado con los atributosidde las celdas de encabezado de la tabla. - Corrige cualquier errata o actualiza la lista al
idactual del encabezado. - Si un encabezado referenciado ya no existe, elimina el ID obsoleto de la lista.
- Si la tabla es sencilla —una fila o columna de encabezados— plantéate prescindir por completo de las asociaciones con
headersy usar en su lugar celdas<th>con atributosscope, que no pueden romperse de esta forma.
<!-- Corregido: la referencia coincide con un encabezado real -->
<th id="price">Precio</th>
...
<td headers="price">$40</td>
Cómo lo comprueba Silktide
- Encuentra cada celda de tabla con un atributo
headersen cada página. - Divide el valor del atributo en ID individuales.
- Busca cada ID en cualquier parte de la página.
- Informa de cada celda que haga referencia al menos a un ID que no existe.
Solución de problemas
El ID existe pero la celda sigue apareciendo en el informe
Comprueba si hay problemas de coincidencia exacta: los ID distinguen entre mayúsculas y minúsculas, por lo que Price y price son ID diferentes. Además, confirma que la lista esté separada solo por espacios: las comas u otros signos de puntuación pasan a formar parte del ID y estropean la búsqueda.