Avançar para o conteúdo
SilktideAjuda

Função ARIA conflitante

A Silktide verifica os elementos que declaram uma função explícita em relação ao significado que já têm em HTML. Ela comunica funções que não são permitidas nesse elemento e funções que apenas repetem o significado que o elemento já tem.

<!-- Problema: um elemento nav não pode ser um botão -->
<nav role="button">…</nav>

<!-- Problema: redundante; nav já tem esta função -->
<nav role="navigation">…</nav>

<!-- Correção: deixe o elemento falar por si só -->
<nav>…</nav>

Por que isso é importante

Cada elemento tem um significado incorporado do qual a depende. Uma função que entra em conflito com esse significado cria um elemento que parece uma coisa, mas se anuncia como outra — uma pessoa que usa um pode ouvir “link” em algo que se comporta como um botão, com atalhos de teclado e expectativas que já não correspondem. Funções redundantes são menos prejudiciais, mas acrescentam ruído, favorecem erros futuros e indicam que ARIA está a ser usada onde não é necessária.

Como corrigir

  1. Para uma função conflitante, remova a função ou mude para um elemento que tenha genuinamente o significado pretendido — se deve funcionar como um botão, use <button>.
  2. Para uma função redundante, como <nav role="navigation"> ou <button role="button">, elimine o atributo role. O elemento já expõe essa função por si só.

Como a Silktide testa isto

  1. Encontra todos os elementos da página com um atributo role, ignorando funções desconhecidas ou abstratas (essas são comunicadas por Função ARIA inválida).
  2. Compara a função com as combinações que a especificação ARIA in HTML permite para esse elemento e comunica as funções que o elemento não permite.
  3. Comunica as funções que duplicam a função implícita do próprio elemento.
  4. Quando um atributo de função lista várias funções, apenas a primeira é considerada.

As descobertas distinguem os dois casos, para que possa dar prioridade aos conflitos em relação à redundância.

Resolução de problemas

A função redundante existe para navegadores mais antigos

As funções explícitas de pontos de referência, como role="navigation", eram recomendadas como medida de segurança para tecnologias assistivas antigas. O suporte para os elementos nativos é universal há anos, e a função duplicada agora custa mais em manutenção do que traz de benefícios. Remova-a ou a descoberta se a sua política de suporte exigir que ela seja mantida.

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

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?