12.1 Scripts
A utilização de Javascript não é proibida desde que o mesmo não seja obstrutivo e permita completar a ação mesmo sem o Javascript.
O que seria um javascript obstrutivo?
Um exemplo é um menu de opções em que o item do menu abre um submenu popup mas o mesmo só é acionado ao passar o mouse sobre item. Sem o mouse e o "mouse over" a funcionalidade de abrir o submenu não estará presente.
12.2 Eventos do Mouse
Utilize tratamentos redundantes nos eventos do mouse.
Certifique-se de que todo evento ativado através do mouse possua um tratamento redundante, permitindo também sua ativação através do teclado.
Use "onmousedown" com "onkeydown".
Use "onmouseup" com "onkeyup"
Use "onclick" com "onkeypress"
Use "onmouseover" com "onfocus"
Use "onmouseout" com "onblur"
12.3 ARIA (Accessible Rich Internet Applications)
ARIA é um conjunto de elementos e atributos especiais para a acessibilidade que pode ser adicionado ao HTML alterando e aumentando a árvore de acessibilidade do DOM.
Os 3 principais Componentes ARIA são roles (funções/papéis), properties (propriedades) e states (estados).
"Roles" definem o que um elemento é ou faz;
"Properties" definem semânticas adicionais não suportadas no HTML padrão.
"States" são atributos que definem a condição atual de um elemento.
É importante entender que ARIA não deve ser usado para mudar a semântica do HTML, um elemento HTML padrão <input type="checkbox">
não precisa de um atributo ARIA adicional role="checkbox"
para ser anunciado corretamente.
Um exemplo consistente de aplicação de ARIA é em um menu popup que inicialmente se apresenta fechado aria-expanded=false
e ao ser selecionado item o menu será expandido aria-expadend=true
Pra saber mais sobre ARIA, acesse: