HTML e XHTML.
Esta falha está relacionada com:
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.
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.
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>
Não existem recursos disponíveis para esta técnica.
(actualmente, não existe nenhuma indicada)
Localize cada formulário numa página.
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.
Para cada nova janela resultante do passo 2, verifique se o utilizador é avisado previamente.
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.