Operable Modalidades de entrada Nivel A WCAG 2.1, 2.2

2.5.4 Actuación por movimiento

Meta El contenido no depende de la capacidad del usuario para mover un dispositivo.
Qué hacer No confiar únicamente en el movimiento del dispositivo. Ofrecer alternativas convencionales y opción de desactivar.
Por qué importa Algunas personas no pueden sostener o mover un dispositivo con firmeza — puede estar montado en una silla de ruedas o tener temblores.

Criterio de éxito oficial

2.5.4 Actuación por movimiento Nivel A

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.

1

Alternativa de interfaz

La misma función que activa el movimiento debe poder realizarse mediante botones u otros controles convencionales accesibles.

2

Opción de desactivar

El usuario debe poder deshabilitar la respuesta al movimiento para evitar activaciones accidentales por temblores u otros movimientos involuntarios.

✗ Solo por movimiento

Si el dispositivo está montado en una silla de ruedas o el usuario tiene temblores, la función es inaccesible.

✓ Con alternativa y toggle

Botones accesibles + toggle para desactivar movimiento.

Tipos de sensores cubiertos

Acelerómetro

Detección de sacudida, golpe o inclinación del dispositivo

Giroscopio

Orientación y rotación del dispositivo en el espacio

Cá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

JavaScript
// 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

Técnicas suficientes para CE 2.5.4
CódigoTécnicaTipo
G213Proporcionar controles convencionales y un ajuste de aplicación para las respuestas al movimientoSuficiente

Errores comunes

F106: Proporcionar funcionalidad solo mediante movimiento del dispositivo sin alternativa de interfaz.
  • 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.

Criterios de éxito relacionados