Drag-start thresholds prevent a click from becoming a drag
Aliases: drag threshold · touch slop · drag hysteresis
What it is
A drag initiation threshold is the distance, speed, or dwell time required after a press before the system commits to a drag state. It separates the small, unintended movement that naturally occurs during a click from a genuinely intended drag, preventing a plain selection from being misread as "the person wants to move this object." Touch systems commonly call this tolerance zone touch slop.
Why it happens
The instant of pressing down always carries a small, unintended shift — a hand is not a robot arm, the force of pressing itself introduces a bit of wobble, and sensor sampling noise adds on top of that. Within the tolerance zone the system still treats the action as a click candidate; only once movement crosses the threshold does it commit to drag, with no way back to a click. A smaller threshold makes the system respond faster to a real drag intention but produces more false drags; a larger one cuts false drags but makes an intentional drag feel sluggish, since more travel is needed before anything responds — a straight either/or tradeoff with no single value optimal for everyone.
Studying it
Systematically vary threshold size, the size of the object being manipulated, device type (mouse, trackpad, finger on touch, stylus), and hand posture; record the false-drag rate, the time from press to actually entering drag state, click success rate, drag cancellations, and retries. The test design must include both stationary selections and short-distance drags — testing only long-distance drags completely hides a threshold set too high, because a long drag clears any threshold regardless of its size.
Where it stops holding
Pressure-sensitive pens and digitiser input can identify drag intent directly from tip pressure or hover/contact state, and need not adopt the same distance-based threshold as finger touch — they have an extra signal dimension available. People with motor-control impairments or hand tremor have unintended micro-movement that is inherently larger than typical: a small fixed threshold will keep misclassifying their ordinary clicks as drags, while enlarging the threshold enough to accommodate them makes fine, short-distance reordering — nudging something by a pixel or two in a dense list — sluggish or even impossible. The two needs are hard to reconcile with one fixed number.
Applying it
- For any object that supports both click and drag, use a stable initiation threshold that can be adjusted by platform or assistive settings rather than a hard-coded value chosen by feel.
- Give explicit pickup feedback the moment the threshold is crossed and drag state is entered, so people notice right away that the action was read as a drag and can cancel immediately if that wasn't intended.
- Test micro-movement clicks and short drags as separate scenarios, tracking both the false-drag count and how much extra travel occurred before drag actually started, and use those two numbers rather than a single success rate to tune the threshold.
Related
- Same group: C1.08.1 Drag and drop has three phases: pickup, transport, and drop · C1.08.3 Valid drop targets must be explicit during drag · C1.08.4 Auto-scroll when dragging to an edge · C1.08.5 Drag and drop can be cancelled and returned to origin · C1.08.6 Drag and drop needs a non-drag equivalent
- Nearby: C1.07 Single and double click · C1.05 Cursor hotspots and hit testing
- Search terms:
drag threshold·touch slop·gesture disambiguation