Atributo scope obsoleto
O Silktide verifica a presença de atributos scope em células comuns de dados de tabelas. O atributo scope descreve a que se aplica um cabeçalho, por isso deve ser usado apenas em células de cabeçalho; em uma célula de dados, ele é obsoleto e pode induzir a tecnologia assistiva em erro.
Em , scope é definido para células de cabeçalho <th>. Colocá-lo em uma célula de dados <td> geralmente significa uma de duas coisas: a célula é, na verdade, um cabeçalho e deveria ser um <th>, ou o atributo foi deixado por uma marcação antiga e deve ser removido.
<!-- Problema: scope em uma célula de dados -->
<td scope="col">Nome</td>
Por que isso é importante
Um constrói sua representação de uma tabela a partir da marcação. Um atributo scope em uma célula de dados é um sinal contraditório: o elemento diz "Eu sou um dado", enquanto o atributo diz "Eu identifico outras células". Diferentes resolvem essa contradição de maneiras diferentes — algumas ignoram o atributo, enquanto outras tratam a célula como um cabeçalho —, portanto a tabela pode ser anunciada com cabeçalhos incorretos ou inconsistentes, dependendo do software usado pelo visitante.
Como corrigir
Decida o que a célula realmente representa:
- Se ela funciona como um cabeçalho, altere-a para
<th>e mantenha um valorscopeválido (row,col,rowgroupoucolgroup):
<!-- Corrigido: o cabeçalho é uma célula de cabeçalho verdadeira -->
<th scope="col">Nome</th>
- Se ela contém dados comuns, remova completamente o atributo
scope:
<!-- Corrigido: célula de dados comum -->
<td>Nome</td>
Como o Silktide faz essa verificação
- Encontra todas as células de tabelas em cada página.
- Relata cada célula de dados
<td>que contém um atributoscope, qualquer que seja o seu valor.