Documentation menu
Accessibility

Accessibility

Accessibility is built in, not bolted on. Every draggable is operable from the keyboard, and a live region narrates the drag so screen-reader users follow the same interaction as everyone else.

You'll learn
  • How keyboard dragging works out of the box.
  • How drag progress is announced.
  • How to label drag handles for assistive tech.

Keyboard

Draggables are focusable and operable without a pointer. The keyboard sensor is active by default:

  • Space or Enter — pick up the focused item, and drop it.
  • Arrow keys — move the lifted item between positions or targets.
  • Escape — cancel the drag and return the item to its origin.

Announcements

Drag progress is announced through a polite live region. On Jaspr, mount a DndLiveRegion inside the scope; on Flutter, the adapter emits semantics announcements. Both speak the same shared DndAnnouncements contract — pick up, move, drop, and cancel.

a11y.dart
DndScope(
  // Flutter: announcements are emitted as semantics events automatically.
  child: board,
)

Handles & labels

Give every DndDragHandle a descriptive label so assistive technology announces what it moves — for example "Reorder card: Buy milk" rather than an unlabeled grip.