Avançar para o conteúdo
SilktideAjuda

Cancelamento do ponteiro

A Silktide deteta botões e links que atuam no momento em que são premidos, em vez de quando a pressão é libertada. Atuar após a libertação dá às pessoas a oportunidade de corrigir o acionamento da opção errada, deslizando para fora antes de soltar.

Por que isto é importante

Toda a gente prime ocasionalmente o botão errado, mas as pessoas com tremores, destreza limitada ou baixa visão fazem-no com muito mais frequência. O gesto universal de recuperação consiste em continuar a premir, arrastar para fora do controlo e soltar — o que funciona porque os botões e links normalmente atuam quando são libertados. Um controlo configurado para reagir à pressão inicial retira essa possibilidade de escape: a ação é executada imediatamente, sem forma de a cancelar. Num botão de envio de formulário ou de eliminação, um deslize transforma-se num erro irreversível.

Este é o critério de sucesso 2.5.2 (Cancelamento do ponteiro) das , um requisito de — parte do nível de conformidade mais básico.

Como corrigir

  1. Acione as ações a partir do evento click, que é disparado ao soltar, em vez de mousedown, pointerdown ou touchstart.
  2. Se um controlo precisar genuinamente de responder à pressão inicial — por exemplo, uma tecla de piano numa aplicação de música — certifique-se de que soltá-lo fora do controlo reverte ou cancela a ação, ou disponibilize uma opção para anular.
  3. Se o listener sinalizado não acionar realmente uma ação (pode apenas adicionar um efeito visual de pressão), pode o resultado.
// Problema: é disparado imediatamente ao premir e não pode ser cancelado
button.addEventListener('mousedown', submitForm);

// Correção: é disparado ao soltar, por isso arrastar para fora cancela
button.addEventListener('click', submitForm);

Como a Silktide faz esta verificação

  1. Carrega cada página num navegador real e regista os listeners de eventos de que esta regista.
  2. Procura listeners para os eventos de pressão: mousedown, pointerdown e touchstart.
  3. Sinaliza um listener quando este está associado a um controlo normalmente ativado ao soltar: um botão, link, campo de envio ou reposição, ou um elemento com uma função , como button, link, menuitem, tab ou switch.
  4. Ignora listeners associados à página inteira que não estejam ligados a um controlo específico, pois normalmente dizem respeito à deslocação ou ao comportamento de arrastar e largar, e não à ativação.
  5. Como a Silktide não consegue determinar o que o código do listener faz, os resultados são sinalizados para sua confirmação, em vez de serem contados como falhas confirmadas.

Resolução de problemas

O listener não ativa nada

Os listeners de eventos de pressão são frequentemente usados para efeitos inofensivos: um estilo de elemento premido, uma animação de ondulação ou a gestão do foco, enquanto a ação real continua a ocorrer em click. Isto satisfaz o critério; aprove o resultado.

O controlo é um cursor deslizante ou uma pega de arrastamento

Os cursores deslizantes, as pegas de arrastamento e widgets semelhantes acompanham legitimamente a pressão inicial. As WCAG consideram o evento de pressão essencial para estas interações; aprove o resultado.

Saiba mais

Última atualização

Esta página foi útil?