IDs de rótulos válidos para fragmentos
A Silktide verifica rótulos de formulários que fazem referência a outro elemento por ID e informa os rótulos cujo ID não existe em nenhum lugar da página. Um rótulo que não aponta para nada não pode nomear nada.
Em , um elemento <label> nomeia um campo de formulário definindo o atributo for como o id do campo. Esta verificação confirma apenas que o ID referenciado existe em algum lugar da página — uma verificação complementar, IDs de rótulos válidos, vai além e confirma que o destino é um campo de formulário que pode receber um rótulo.
<!-- Problema: nenhum elemento da página tem id="food" -->
<label for="food">Comida favorita</label>
Por que isso é importante
Um rótulo com uma referência inválida não faz nada: um não consegue associá-lo a nenhum campo. Assim, o campo que o rótulo deveria identificar é anunciado sem um nome, e clicar no rótulo deixa de colocar o foco nele. Como a página permanece visualmente inalterada, essas falhas costumam surgir silenciosamente quando os IDs são renomeados ou a marcação é reestruturada, e somente uma verificação automatizada consegue detectá-las.
Como corrigir
- Encontre o elemento que o rótulo deveria descrever e defina o valor de
fordo rótulo como oidexato desse elemento (os IDs diferenciam maiúsculas de minúsculas):
<!-- Corrigido: o rótulo aponta para um ID existente -->
<label for="food">Comida favorita</label>
<input type="text" id="food">
- Se o elemento de destino não tiver um
id, adicione um. - Se o rótulo for um remanescente que já não descreve nada, remova-o.
Como a Silktide faz esta verificação
- Encontra todos os elementos
<label>com um atributofornão vazio em cada página. - Procura em qualquer lugar da página um elemento cujo
idcorresponda. - Informa o rótulo se esse elemento não existir.