Cabeçalhos de células
O Silktide verifica as células de tabela que identificam os respetivos cabeçalhos usando o atributo headers e confirma que cada ID referenciado existe de facto. Uma referência a um ID inexistente interrompe silenciosamente a ligação entre uma célula e o respetivo cabeçalho.
Em tabelas complexas, cada célula de dados pode incluir um atributo headers com uma lista dos valores id das células de cabeçalho que se aplicam a ela. Se um ID estiver mal escrito, ou se o cabeçalho para o qual apontava tiver sido renomeado ou removido, a associação deixa de funcionar silenciosamente.
<!-- Problema: não existe nenhum elemento com id="prise" (erro de digitação de "price") -->
<td headers="prise">$40</td>
Porque isto é importante
Um usa as associações headers para anunciar os cabeçalhos corretos antes de cada valor. É assim que uma pessoa que não consegue ver a tabela acompanha o significado de cada número. Quando uma referência não aponta para nada, a célula é anunciada sem o respetivo contexto e o ouvinte não tem como saber que algo está em falta — a tabela simplesmente se torna mais difícil ou impossível de acompanhar.
As referências quebradas geralmente surgem com o tempo: o id de um cabeçalho é renomeado, uma coluna é eliminada ou um regenera os IDs. Como nada muda visualmente, sem uma verificação automatizada ninguém percebe.
Como corrigir
- Encontre o atributo
headersda célula e compare cada ID listado com os atributosiddas células de cabeçalho da tabela. - Corrija os erros de digitação ou atualize a lista com o
idatual do cabeçalho. - Se um cabeçalho referenciado já não existir, remova o ID desatualizado da lista.
- Se a tabela for simples — com uma única linha ou coluna de cabeçalhos — considere eliminar completamente as associações
headerse usar células<th>com atributosscope, que não podem falhar desta forma.
<!-- Corrigido: a referência corresponde a um cabeçalho real -->
<th id="price">Price</th>
...
<td headers="price">$40</td>
Como o Silktide testa isto
- Encontra todas as células de tabela com um atributo
headersem cada página. - Divide o valor do atributo em IDs individuais.
- Procura cada ID em qualquer parte da página.
- Comunica cada célula que referencia pelo menos um ID inexistente.
Resolução de problemas
O ID existe, mas a célula continua a ser comunicada
Verifique se existem problemas de correspondência exata: os IDs diferenciam maiúsculas de minúsculas, por isso Price e price são IDs diferentes. Confirme também que a lista está separada apenas por espaços — vírgulas ou outra pontuação passam a fazer parte do ID e interrompem a pesquisa.