Avançar para o conteúdo
SilktideAjuda

Valor inválido de atributo ARIA

A Silktide verifica o valor de cada atributo ARIA nas suas páginas em relação aos valores permitidos pela norma. Um atributo com um valor incorreto, como o estado de uma caixa de seleção definido como "yes" em vez de "true", é ignorado pelos navegadores, por isso o estado que descreve nunca é anunciado.

<!-- Problema: "yes" não é um valor válido, por isso o estado é descartado -->
<div role="checkbox" aria-checked="yes">Subscribe</div>

<!-- Correção: use o token definido -->
<div role="checkbox" aria-checked="true">Subscribe</div>

Por que isso é importante

Cada atributo define exatamente quais valores aceita, e os navegadores descartam qualquer outro valor em vez de tentar adivinhar. Os erros normalmente são valores aparentemente intuitivos — aria-expanded="1", aria-checked="yes", aria-level="0" — que passam em todos os testes visuais, enquanto as pessoas que usam se deparam com um controle cujo estado não é anunciado: um menu que nunca diz se está aberto, uma caixa de seleção que nunca diz se está marcada.

Como corrigir

  1. Substitua valores informais pelos tokens definidos pelo atributo: true e false, em vez de yes, no, 1 ou 0.
  2. Verifique os atributos numéricos: atributos de contagem, como aria-level e aria-rowindex, começam em 1, não em 0.
  3. Remova atributos deixados vazios, como aria-checked="" — se não houver nenhum estado a transmitir, o atributo não deve estar presente.

Os valores exatos permitidos por cada atributo estão listados na referência de atributos ARIA da MDN.

Como a Silktide faz esta verificação

  1. Encontra todos os elementos da página que têm pelo menos um atributo aria-.
  2. Verifica o valor de cada atributo em relação ao tipo definido pela ARIA 1.2: atributos true/false, atributos de três estados, como aria-checked (true, false, mixed), números e números inteiros, além de atributos com listas fixas de palavras, como aria-live e aria-current.
  3. Comunica cada valor que não está em conformidade, indicando o que era esperado.

Os atributos que fazem referência a IDs de elementos são testados pelas suas próprias verificações, como ID de aria-controls ausente, e os atributos de texto livre, como aria-label, aceitam qualquer texto.

Resolução de problemas

O valor é definido por um framework

As bibliotecas de componentes ocasionalmente serializam os estados de forma incorreta — por exemplo, gerando aria-expanded="undefined". O resultado aponta para o elemento, mas a correção normalmente está na forma como o componente é configurado ou numa atualização da biblioteca.

Esta verificação não comunica nada, embora eu espere resultados

Os testes de ARIA podem ser desativados por website. Verifique as definições avançadas do website.

Saiba mais

Última atualização

Esta página foi útil?