- Success Criterion 2.5.7
- Conformance level AA
Diagram Editor Where Nodes Connect Only by Dragging
2.5.7 — Dragging Movements
Scenario
Setting
A food-delivery app's order-tracking screen
What’s wrong
Drag-to-connect diagram/node editors with no click-source-then-target alternative (where dragging isn't essential).
Example
sourceNode.addEventListener('pointerdown', startConnectionDrag);
targetNode.addEventListener('pointerup', completeConnection);
// there is no click-source-then-click-target mode Why it matters
A restaurant admin who can't hold a precise drag between two nodes can't wire up their custom order-status flow at all.
How to test
Try connecting nodes in a diagram/flow editor via click-source-then-click-target instead of dragging: if drag is the only method (and isn't essential to the function), it fails.
How to fix
Add a click-to-select-source, click-to-select-target mode as a drag-free way to connect nodes.
sourceNode.addEventListener('click', () => selectAsSource(sourceNode));
targetNode.addEventListener('click', () => {
if (selectedSource) connectNodes(selectedSource, targetNode);
}); Outcome
An admin clicks one status node, then the next, and the connection appears without dragging.
Who is affected
People with tremor and limited fine motor control who can't sustain a pointer-drag between two small targets.
Learn more
- Understanding Understanding document (opens in a new tab)