Cancelación del puntero
Las funciones activadas por un único puntero deben dispararse en el evento de liberación, no en el de presión, de modo que los usuarios puedan arrastrarse fuera del objetivo para cancelar. Debe estar disponible la posibilidad de abortar o deshacer la acción, salvo que la activación instantánea sea esencial.
Qué exige este criterio
Cuando un usuario inicia una pulsación o clic y se da cuenta de que está sobre el objetivo equivocado, debe poder deslizar el dedo fuera antes de levantarlo o soltar el ratón, y la acción no debe ejecutarse. Esto significa que la activación debe producirse en pointerup / click —el comportamiento estándar del navegador— y no en pointerdown / mousedown.
El criterio exige una de estas cuatro garantías:
- El evento de presión no activa la función, o
- La finalización ocurre en el evento de liberación sobre el mismo objetivo, con la posibilidad de cancelar desplazándose fuera, o
- Existe una opción de «deshacer» tras la activación, o
- La inversa de la función revierte el resultado (alternancia).
Las activaciones esenciales —como la pulsación en la tecla de un piano en una aplicación de música— quedan exentas.
Cómo cumplirlo
- Usar escuchas de
click, no demousedown/touchstart. El navegador ya implementa el comportamiento correcto de cancelación al arrastrar. - Para componentes personalizados que gestionan eventos de puntero manualmente, disparar en
pointerupy verificar que el objetivo sigue siendo el mismo elemento bajo el cursor. - Para acciones destructivas (eliminar, enviar), acompañar con un paso de confirmación o un aviso de deshacer.
- Para botones de alternancia (silenciar, marcar como favorito, estado presionado), una segunda pulsación revierte el cambio, lo que también cumple el criterio.
Fallos habituales
- Botones conectados con
onmousedownque se disparan en el momento en que el puntero presiona. Arrastrar fuera no tiene efecto. - Controles de arrastre personalizados que interpretan
pointerdowncomo un evento de «selección». - Tarjetas de aspecto nativo que navegan a una página de detalle en
touchstart: el usuario no puede desplazarse por encima sin activarlas accidentalmente. - Menús desplegables que se cierran en
mousedownexterno en lugar declick, consumiendo el clic.
Por qué es importante
Arrastrar fuera para cancelar es el mecanismo mediante el cual los usuarios con temblores, discapacidades motoras o señalización imprecisa (lápiz óptico en un tren en movimiento) se recuperan de una pulsación errónea. Disparar en el evento de presión elimina esa vía de escape: en cuanto el dedo toca la pantalla, la acción queda comprometida. Supone además una penalización de usabilidad para todos: incluso los usuarios sin discapacidad recurren habitualmente al arrastre fuera cuando su pulsación aterriza en el objetivo equivocado.