2.5.4 Actuación por movimiento
Criterio de éxito oficial
La funcionalidad que se puede operar mediante el movimiento del dispositivo o el movimiento del usuario también se puede operar mediante componentes de la interfaz de usuario y la respuesta al movimiento se puede deshabilitar para evitar la activación accidental, excepto cuando el movimiento sea esencial o cuando el movimiento lo detecte una interfaz compatible con accesibilidad.
Alcance del criterio
Se aplica al movimiento detectado por sensores del dispositivo (acelerómetro, giroscopio) o por la cámara (seguimiento de gestos del cuerpo). No se aplica al movimiento detectado por el ratón o el teclado, que son dispositivos de entrada convencionales.
¿Qué es?
Algunas aplicaciones usan el movimiento físico del dispositivo (agitar, inclinar) o del usuario (gestos detectados por cámara) para activar funciones. Este criterio exige dos cosas: que exista una alternativa de interfaz convencional, y que el usuario pueda desactivar la respuesta al movimiento.
Alternativa de interfaz
La misma función que activa el movimiento debe poder realizarse mediante botones u otros controles convencionales accesibles.
Opción de desactivar
El usuario debe poder deshabilitar la respuesta al movimiento para evitar activaciones accidentales por temblores u otros movimientos involuntarios.
Si el dispositivo está montado en una silla de ruedas o el usuario tiene temblores, la función es inaccesible.
Botones accesibles + toggle para desactivar movimiento.
Tipos de sensores cubiertos
Acelerómetro
Detección de sacudida, golpe o inclinación del dispositivoGiroscopio
Orientación y rotación del dispositivo en el espacioCámara
Seguimiento de gestos, expresiones faciales o movimiento corporal¿Por qué es importante?
Un usuario en silla de ruedas cuyo dispositivo está montado en un soporte no puede agitar el teléfono. Una persona con temblores puede activar accidentalmente funciones de movimiento sin querer. Un usuario que opera el dispositivo sin usar las manos (con un puntero de cabeza, por ejemplo) tampoco puede generar movimientos deliberados del dispositivo.
La función de desactivar es clave: permite a las personas con movimientos involuntarios evitar activaciones accidentales, sin eliminar la función para quienes sí la usan.
¿Quién se ve afectado?
Usuarios en sillas de ruedas: Si el dispositivo está montado en la silla, no pueden inclinarlo o agitarlo para activar funciones basadas en movimiento.
Personas con temblores: Los movimientos involuntarios pueden activar accidentalmente funciones de movimiento. Necesitan la opción de desactivar estas respuestas.
Cómo implementar 2.5.4
Alternativa de interfaz de usuario
Para cada función activada por movimiento, proporciona un control equivalente accesible por teclado y ratón: botones, menús contextuales o campos de entrada.
Opción de desactivar
Añade un toggle, preferencia o configuración que permita al usuario desactivar la respuesta al movimiento. Esta configuración debe persistir entre sesiones.
Respetar la configuración del sistema operativo
Algunos sistemas operativos tienen configuraciones de accesibilidad para reducir el movimiento (prefers-reduced-motion). Respétalas: si el usuario ha desactivado el movimiento a nivel de sistema, tu aplicación no debe ignorar esa preferencia.
Detectar soporte antes de activar
// Comprobar soporte y respetar preferencias del usuario
const motionEnabled = localStorage.getItem('motionEnabled') !== 'false';
if (motionEnabled && window.DeviceMotionEvent) {
window.addEventListener('devicemotion', handleShake);
}
// Botón siempre disponible como alternativa
document.getElementById('undoBtn').addEventListener('click', handleUndo); Ejemplos prácticos
Correcto Agitar para deshacer con botón alternativo
Una app permite agitar el dispositivo para deshacer la última acción. También tiene botones «Deshacer» y «Rehacer» en la barra de herramientas, y en Ajustes hay un toggle para desactivar la respuesta al movimiento.
Correcto Inclinación para panorámica con controles de flechas
Una app de realidad aumentada usa la inclinación del dispositivo para mover la vista. También incluye botones de flecha accesibles, y la función de inclinación puede desactivarse en los ajustes de accesibilidad.
Esencial Aplicación de nivel de burbuja
Una aplicación de nivel de burbuja (para comprobar si una superficie es horizontal) depende completamente del acelerómetro. Esta función es intrínsecamente dependiente del movimiento y está exenta.
Fallo Agitar para borrar sin alternativa
Una app de notas solo permite borrar el texto agitando el dispositivo. No hay botón de borrar ni opción de desactivar el gesto. Un usuario con el teléfono montado en soporte no puede usar esta función.
Técnicas recomendadas
| Código | Técnica | Tipo |
|---|---|---|
| G213 | Proporcionar controles convencionales y un ajuste de aplicación para las respuestas al movimiento | Suficiente |
Errores comunes
- Funciones de «agitar para refrescar» o «agitar para deshacer» sin botón equivalente.
- Panorámicas o navegación controladas solo por inclinación del dispositivo.
- Sin opción para desactivar la respuesta al movimiento en la configuración.
- Ignorar la preferencia del sistema operativo
prefers-reduced-motion.