Técnicas para as WCAG 2.0

Ir para o conteúdo (Pressione a tecla Enter)

-

F37: Falha do Critério de Sucesso 3.2.2 devido àapresentação de uma nova janela sem aviso prévio quando o estado de um botão de opção, caixa de verificação ou lista de selecção é alterado

Aplicabilidade

HTML e XHTML.

Esta falha está relacionada com:

Notas de Apoio para o Agente de Utilizador e para a Tecnologia de Apoio

O Internet Explorer 6 também acciona o evento onclick quando um botão de opção com onclick recebe o foco; adicionar outros processadores de eventos (atributos onxxx) para evitar isto não funciona.

Descrição

Este documento descreve uma falha que ocorre quando a alteração do estado de um botão de opção, caixa de verificação ou lista de selecção faz com que se abra uma nova janela. É possível utilizar scripting para criar um elemento input que provoca a alteração de contexto (submeter o formulário, abrir uma nova página, uma nova janela) quando o elemento é seleccionado. Em vez disso, os programadores podem utilizar um botão Submeter (consulte G80: Fornecer um botão Submeter para iniciar uma alteração de contexto) ou indicar claramente a acção esperada.

Exemplos

Exemplo de Falha 1:

O exemplo abaixo não cumpre o Critério de Sucesso porque processa o formulário quando um botão de opção é seleccionado, em vez de utilizar um botão Submeter.

Código Exemplo:

                                  
<script type="text/JavaScript"> 
  function goToMirror(theInput) {
   var mirrorSite = "http://download." + theInput.value + "/"; 
   window.open(mirrorSite); 
  }
</script>
  …
<form name="mirror_form" id="mirror_form" action="" method="get">
       <p>Please select a mirror download site:</p> 
       <p> 
       <input type="radio" onclick="goToMirror(this);" name="mirror" 
       id="mirror_belnet" value="belnet.be" /> 
       <label for="mirror_belnet">belnet (<abbr>BE</abbr>)</label><br /> 
       <input type="radio" onclick="goToMirror(this);" name="mirror" 
       id="mirror_surfnet" value="surfnet.nl" /> 
       <label for="mirror_surfnet">surfnet (<abbr>NL</abbr>)</label><br /> 
       <input type="radio" onclick="goToMirror(this);" name="mirror" 
       id="mirror_puzzle" value="puzzle.ch" /> 
       <label for="mirror_puzzle">puzzle (<abbr>CH</abbr>)</label><br /> 
       <input type="radio" onclick="goToMirror(this);" name="mirror" 
       id="mirror_voxel" value="voxel.com" /> 
       <label for="mirror_voxel">voxel (<abbr>US</abbr>)</label><br /> 
       </p> 
</form>

Recursos

Não existem recursos disponíveis para esta técnica.

(actualmente, não existe nenhuma indicada)

Testes

Procedimento

  1. Localize cada formulário numa página.

  2. Para cada controlo de formulário que seja um botão de opção, uma caixa de verificação ou um item numa lista de selecção, verifique se alterar o estado do controlo abre uma nova janela.

  3. Para cada nova janela resultante do passo 2, verifique se o utilizador é avisado previamente.

Resultados Esperados

Se o passo 3 for falso, aplica-se esta condição de falha e o conteúdo não cumpre este Critério de Sucesso.