Bug 90: Drag-Drop With No Keyboard Alternative (F55)

WCAG 2.1.1 (Keyboard) | Drag-drop interface unavailable to keyboard users.

Failure F55: Mouse-Only Drag-Drop

Left zone: Drag items to right zone (mouse only)

Available Items

Item 1
Item 2
Item 3

Drag to right zone →

Selected Items

Drop here

Issues:

  • Drag-drop only functional with mouse
  • No role="listbox" or selection list alternative
  • No aria-grabbed or aria-dropeffect
  • No button to move items (e.g., "Add", "Move Right")
  • Keyboard users completely blocked
Failure F55: Reordering Without Keyboard

Drag to reorder (no keyboard alternative):

▣ Priority Item 1
▣ Priority Item 2
▣ Priority Item 3

Grab handle and drag to reorder

Issue: No "Move Up", "Move Down", "Move to Top" buttons for keyboard users.

Better Approach (For Reference)

Provide both:

  • Drag-drop for mouse users
  • Keyboard alternative (buttons or select + buttons)

Example keyboard alternative:

  • Select item from list
  • Use buttons: "Add", "Remove", "Move Up", "Move Down"
  • Or arrow key navigation with Enter to select destination
HAL Fixes: HAL detects drag-drop interfaces and adds/ensures keyboard alternative exists (buttons or select + controls). HAL adds ARIA (role="listbox", aria-grabbed, aria-dropeffect). HAL implements keyboard handlers (arrow keys, Enter, Space). HAL ensures both methods work in parallel.