aria-hidden aninhado
A Silktide verifica se há conteúdo marcado como visível para dentro de um contêiner marcado como oculto para elas. O estado oculto prevalece: a marcação interna não tem efeito, e o conteúdo permanece oculto.
<!-- Problema: o parágrafo permanece oculto apesar de aria-hidden="false" -->
<div aria-hidden="true">
<p aria-hidden="false">Conteúdo importante</p>
</div>
Por que isso é importante
Quando um elemento tem aria-hidden="true", tudo o que está dentro dele é removido da . O padrão não oferece uma maneira para que um descendente volte a ser incluído — aria-hidden="false" dentro de um contêiner oculto simplesmente não faz nada. Autores que usam esse padrão acreditam ter tornado o conteúdo interno acessível novamente. O resultado é um conteúdo que usuários que enxergam podem ver, mas que usuários de não conseguem alcançar, sem que ninguém perceba essa lacuna.
Como corrigir
- Reestruture a marcação para que o conteúdo que deve ser exposto não fique dentro do contêiner oculto — mova-o para fora, tornando-o irmão em vez de descendente.
- Se tudo dentro do contêiner realmente deve estar disponível, remova
aria-hidden="true"do ancestral. - Nunca dependa de
aria-hidden="false"para desfazer o estado oculto de um ancestral; depois que a correção for feita, o atributo interno geralmente também poderá ser excluído.
Como a Silktide testa isso
- Encontra todos os elementos da página com
aria-hidden="false". - Percorre os ancestrais em busca de qualquer elemento com
aria-hidden="true". - Emite um relatório para cada elemento cujo
aria-hidden="false"esteja preso dentro de um ancestral oculto.
Solução de problemas
Um script alterna o aria-hidden do ancestral
A Silktide testa a página enquanto ela é carregada. Se o estado oculto existir apenas momentaneamente, antes de um script removê-lo, a descoberta refletirá esse estado inicial — mas observe que usuários de tecnologias assistivas em conexões lentas também vivenciam esse estado, e o aria-hidden="false" aninhado continua sem efeito enquanto ele durar.
Esta verificação não emite nenhum resultado, embora eu espere descobertas
Os testes de ARIA podem ser desativados por site. Verifique as configurações avançadas do site.