Função filha ARIA ausente
A Silktide verifica widgets de contêiner criados com funções ARIA, como barras de abas, menus e caixas de listagem, e confirma que cada um contém o tipo de item que deve conter. Uma barra de abas sem abas, ou um menu sem itens de menu, é anunciado como um widget, mas não oferece nada para operar.
<!-- Problema: uma tablist deve conter elementos com role="tab" -->
<div role="tablist">
<button>Visão geral</button>
</div>
<!-- Correção: atribua aos elementos filhos a função necessária -->
<div role="tablist">
<button role="tab">Visão geral</button>
</div>
Por que isso é importante
As funções compostas de descrevem um widget como um todo: tablist promete abas, listbox promete opções e menu promete itens de menu. Os ativam uma navegação especializada para esses widgets, esperando encontrar os elementos filhos prometidos. Quando os elementos filhos não têm suas funções, o widget é anunciado e depois se comporta como uma estrutura vazia — os usuários conseguem acessá-lo, mas não encontram nada dentro dele, enquanto os usuários que enxergam veem um controle totalmente funcional.
Como corrigir
- Adicione a função necessária a cada item dentro do contêiner — por exemplo,
role="tab"a cada controle dentro de umrole="tablist". - Se os itens precisarem ficar em outra parte do código, conecte-os com
aria-ownsno contêiner. - Se o contêiner não for realmente esse tipo de widget, remova ou corrija sua função.
Combinações comuns: tablist precisa de tab; listbox precisa de option; menu e menubar precisam de menuitem (ou de suas variantes checkbox e radio); radiogroup precisa de radio; tree precisa de treeitem; grid e table precisam de row; row precisa de células ou cabeçalhos.
Como a Silktide faz essa verificação
- Encontra todos os elementos cuja função ARIA exige funções filhas específicas.
- Pesquisa nos descendentes, incluindo os elementos adotados com
aria-owns, pelo menos um elemento com uma função filha necessária. - Relata os contêineres em que nenhum é encontrado.
Solução de problemas
Os itens são carregados posteriormente por um script
A Silktide testa a página enquanto ela é carregada. Se uma caixa de listagem ou um menu for preenchido somente quando necessário, será anunciado como vazio até esse momento; sempre que possível, renderize pelo menos os itens iniciais junto com a página.
Esta verificação não relata nada, embora eu espere encontrar resultados
Os testes de ARIA podem ser desativados por site. Verifique as configurações avançadas do site.