Índice:
- Página 1: Antevisão da Criação de JavaScript Acessível
- Página 2: Manipulação de Eventos em JavaScript
- Página 3: Outros Temas
- Página 4: Alternativas ao JavaScript
- Página actual: Página 5 - Resumo do tutorial JavaScript Acessível.
Antevisão
O JavaScript permite a quem desenvolve conteúdos Web adicionar características que aumentam a capacidade de interacção, características de processamento de informação, e controlo sobre os conteúdos de base Web. O JavaScript pode também causar problemas de acessibilidade ao limitar a navegação através do teclado ou através das tecnologias de apoio, apresentando conteúdo ou funcionalidades não acessíveis a tecnologias de apoio, limitando o controlo do utilizador a conteúdo que é alterado automaticamente, e modificando o normal funcionamento de um navegador Web. Quando se deparar com questões de acessibilidade relacionadas com JavaScript, faça uma de duas coisas:
- Verifique se o JavaScript é directamente acessível
- Forneça uma alternativa, não-JavaScript, acessível
O JavaScript é frequentemente utilizado para fazer efeitos meramente cosméticos ou outras alteranções de conteúdo que não interferem com a acessibilidade. O conteúdo escrito numa página através de JavaScript é acessível se:
- Forem utilizados manipuladores de evento dispositivo-independentes.
- Perante JavaScript activo, o conteúdo e a funcionalidade, por si só, forem acessíveis às tecnologias de apoio, manipuláveis nomeadamente com rato e teclado.
- Os elementos e as páginas programáveis forem navegáveis através do teclado.
- O normal funcionamento do navegador não tenha sido modificado de uma forma que gere confusão ou inacessibilidade.
- Existir uma alternativa acessível quando o JavaScript não possa ser tornado nativamente acessível.
Manipuladores de evento JavaScript
Existem dois tipos de manipuladores de evento JavaScript - dispositivo-dependentes e dispositivo-independentes. Quando se implementam manipuladores de evento, deve-se usar um manipulador de evento dispositivo-independente ou usar múltiplos manipuladores de evento dispositivo-dependentes de forma a ir ao encontro das necessidades de todos os utilizadores. Encontra-se abaixo uma lista dos manipuladores de evento mais usuais, ao que se associa um conjunto de questões de acessibilidade.
onMouseOvereonMouseOut.- Dispositivo-dependente (requer a utilização do rato).
- Certifique-se de que estes manipuladores de evento não estão a
introduzir um conteúdo ou uma funcionalidade importante. Use-os em conjugação com os manipuladores de evento
onFocuseonBlurpara permitir acessibilidade via teclado. Providencie uma alternativa acessível caso o conteúdo ou a funcionalidade não possam ser tornados nativamente acessíveis. onFocuseonBlur.- Dispositivo-independente (funciona quer com o teclado quer com o rato).
- Teste para verificar que a acessibilidade não se encontra afectada.
onClickeonDblClick- Dispositivo-dependente (requer o uso do rato).
onClické activado por teclado quando utilizado em links e elementos de formulário. Não existe dispositivo-independente ou equivalentes acessíveis ao teclado para estes manipuladores de evento. A funcionalidade e o conteúdo fornecido pelo manipulador de eventoonClickdeve ser também tornado acessível.onChangeeonSelect- Dispositivo-independent (trabalha quer com teclado quer com rato).
- A funcionalidade e o conteúdo fornecido pelos manipuladores de evento
onChangeeonSelectdeve ser também tornado acessível. Os itens dos menus de navegação do tipo drop-down accionados comonChangenão são totalmente acessíveis via teclado.
HTML Dinâmico e Acessibilidade
O HTML Dinâmico (DHTML) é uma combinação de JavaScript e Cascading Style Sheets (CSS). Pela sua própria natureza, o DHTML pode produzir, dinamicamente, alterações ao conteúdo. O DHTML é muitas vezes accionado pela interacção do utilizador, como seja o caso da movimentação do rato. Ao implementar DHTML, dever-se-á verificar que o DHTML pode ser accionado de uma forma dispositivo-independente e que o conteúdo e a funcionalidade disponibilizados pelo DHTML são também acessíveis.
O JavaScript pode também ser utilizado para escrever conteúdo dinâmico na página web. Na maioria dos casos, este conteúdo é acessível, a não ser que esteja constantemente a ser alterado ou que, de alguma maneira, interfira com a acessibilidade da página.
Janelas pop-up
O comportamento por defeito de um navegador Web ou de certos elementos HTML podem ser afectados por acção de JavaScript. As janelas pop-up podem ser accionadas por acção directa do JavaScript ou por acção dos manipuladores de evento de JavaScript. Se o utilizador não é alertado para o facto de ter sido aberta uma janela pop-up (uma janela que se sobrepõe à actual), pode ficar confuso ou desorientado uma vez que o navegador se comportou de forma anormal. Produzir mais modificações nas janelas do navegador como sejam: retirar as barras de deslocação, as barras de estado, as barras de menu, ou as barras de ferramentas, pode igualmente causar problemas de acessibilidade. Use janelas pop-up com cautela e, caso as utilize, nunca deixe de alertar o utilizador para a sua presença. O utilizador deve também ser alertado sempre que utilize JavaScript para executar automaticamente funções do navegador, tais como: redireccionamentos, reinicializações, ou deslocações automáticas. Em todos os casos, testes com utilizadores e testes com tecnologias de apoio podem trazer valioso retorno no que diz respeito à acessibilidade de implementações específicas de JavaScript.
Alternativas a JavaScript
Existem várias formas de fornecer alternativas às construções com
JavaScript. As versões mais recentes de CSS permitem que muitas das
operações outrora feitas com JavaScript possam ser replicadas apenas com
CSS. Menus drop-down,
barras de navegação, e as imagens interactivas podem ser, todas elas,
desenvolvidas sem estarem assentes em JavaScript. Todavia, a implementação de
CSS não é transversal a todos os navegadores e a todas as tecnologias de
apoio. Antes pelo contrário, é variada e problemática. Quando o JavaScript,
ele próprio, não pode ser tornado nativamente acessível é necessário
disponibilizar uma alternativa acessível. Isto pode ser feito replicando ou
substituindo o comportamento do JavaScript por um processamento do lado do
servidor. Também pode disponibilizar conteúdo em <noscript>, o qual será acessível quando o
JavaScript estiver desactivado ou indisponível ao utilizador final.
Directrizes e Normas
As directrizes e as normas que se seguem aplicam-se a JavaScript:
Secção 508 da Rehabilitation Act §1194.22:
- (l): Sempre que as páginas utilizem linguagens de script para mostrar conteúdo, ou para criar elementos de interface, a informação fornecida pelo script deve ser identificada com texto funcional que possa ser lido através de tecnologias de apoio.
- (n) Quando se concebem formulários electrónicos para serem preenchidos on-line, estes devem permitir que as pessoas que usam tecnologias de apoio acedam à informação, aos campos de edição, às funcionalidades necessárias para preencher e submeter o formulário, incluíndo todas as sugestões e direcções.
- (p) Quando a resposta é temporizada, o utilizador deve ser alertado para isso e deve ser-lhe dado tempo para indicar que necessita de mais tempo.
Directrizes de Acessibilidade para o Conteúdo da Web (WCAG) 1.0 do W3C:
- 6.3 (Prioridade 1): Certifique-se que as páginas são usáveis quando scripts, applets, ou outros objectos programáveis se encontram desactivados ou não são suportados. Se isto não for possível, forneça informação equivalente numa página alternativa acessível.
- 6.4 (Prioridade 2): Para os scripts e applets, assegure que os manipuladores de evento são accionados independemente dos dispositivo de entrada.
- 6.5 (Prioridade 2): Certifique-se que o conteúdo dinâmico é acessível ou forneça uma apresentação ou página alternativa.
- 7.4 (Prioridade 2): Até que os agentes de utilizador permitam interromper uma reinicialização, não crie páginas que se auto-reinicializam periodicamente.
- 7.5 (Prioridade 2): Até que os agentes de utilizador permitam interromper um auto-redireccionamento, não use código de marcação para redireccionar páginas automaticamente. Em vez disso, configure o servidor para efectuar o redireccionamento.
- 8.1 (Prioridade 2): Produza elementos programáveis tais como scripts e applets directamente acessíveis ou compatíveis com as tecnologias de apoio.
- 10.1 (Prioridade 2): Até que os agentes de utilizador permitam ao utilizador desabilitar a modifcação de janelas, não provoque o aparecimento de janelas sobrepostas (pop-up) ou outras, e não proceda a modificações da janela actualmente activa sem informar o utilizador.
Veja também:
- Técnicas W3C: Acessibilidade directa dos scripts - (link externo)
- Panorâmica sobre o JavaScript feita por Jim Thatcher - (link externo)
- Guia das Normas da Secção 508 sobre JavaScript do Access Board - (link externo)
- Técnicas de substituição de imagens feitas em CSS - (link externo)
- Menus drop-down que fazem uso apenas de CSS - (link externo) e Menus Pull Down em CSS - (link externo)
- Discussão sobre técnicas de substituição de imagens com CSS - (link externo)
Tutorial Original WebAIM com o título: Creating Accessible JavaScript
Tradução e adaptação para português: Jorge Fernandes