El control que el sistema no enviaba y que un consumidor se escribió a mano — 907 líneas, sin teclado y sin vía sin arrastre. Aquí el arrastre es UNA de tres vías, no la vía.
El control que el sistema no enviaba y que una app de la flota se escribió a mano (907 líneas). Lo que cambia aquí no es el arrastre: es que hay tres vías para el mismo movimiento — arrastrando, sin arrastrar y con el teclado — porque WCAG 2.2 SC 2.5.7 pide la segunda y SC 2.1.1 la tercera.
Pruébalas todas y mira el registro de abajo: (1) arrastra por la manija de la izquierda; (2) abre el menú «⋮» y usa «Move to…», «Move up» o «Move down», sin arrastrar ni una vez; (3) pon el foco en la manija con Tab, pulsa Enter para levantar, Tab para recorrer los destinos, Enter para soltar y Escape para cancelar. Las tres emiten el mismo BoardMove.
Todavía nada. Mueve una tarjeta con el ratón, con el menú «⋮» y con el teclado.
Mientras hay una tarjeta en el aire pasan dos cosas a la vez, y son dos respuestas a dos preguntas distintas: la columna de destino se resalta («¿dónde va a caer?») y se abre un hueco con la silueta de la tarjeta entre las dos vecinas («¿en qué posición?»). En una columna larga, saber solo la columna no sirve de nada. 🔑 Las dos se encienden igual con el teclado, no solo arrastrando — si no, quien no usa ratón se queda sin saber dónde va a caer.
La columna L3 escalation está vacía a propósito: una columna sin tarjetas sigue siendo una zona de destino de verdad, con alto mínimo, porque es justo donde más falta hace poder soltar.
En el caso real las columnas son estados y soltar es una transición que el servidor autoriza por tarjeta. Con allowedColumnIds el tablero apaga las columnas que rechazarían la tarjeta, en las tres vías: el arrastre no las acepta, el menú no las ofrece y el Tab no las visita. La tercera tarjeta lleva busy y no se puede agarrar.
Todavía nada. Mueve una tarjeta con el ratón, con el menú «⋮» y con el teclado.