Disambiguation order by direction, speed, finger count, and duration
Aliases: feature order · recognizer arbitration · gesture split
What it is
Disambiguation is not a stew of every feature at once. It cuts candidates in a fixed order using direction, speed, finger count, and duration. Count is often observable first (a second finger lands), direction needs some travel, speed needs a time window, and duration expires last. Reverse that order—wait out a long-press before reading direction—and the whole interaction is stalled by the slowest feature.
Why it happens
The four features arrive on different clocks. A second finger can kill a one-finger swipe immediately; a dozen pixels of heading can kill the orthogonal gesture; speed still needs a short window to split pan from swipe; a long-press clock may run for hundreds of milliseconds. The stable pattern is: veto with hard features that are already in, and let slow features work only among survivors. iOS failure-requirement chains and the pairing of a scale detector with tap detection on Android are schedules, not magic thresholds.
Studying it
Build a minimal clash set (vertical scroll × horizontal swipe-action × long-press menu × pinch) and permute the order of feature tests. Measure decision time, each error class, and reports that a gesture was “eaten.” The independent variable is order, not a single cutoff. Logs should stamp the first time each feature crosses its threshold, so an ordering bug is not mistaken for a threshold bug.
Where it stops holding
A region with one live gesture needs no such order. Pressure, a stylus button, or a driver that already splits finger count will change which feature is earliest. Joint speed–distance classifiers are a different machine; this ordering does not calibrate them. If a system gesture finishes the split before the app sees events, an elegant in-app order never runs.
Applying it
- List the features each recognizer on the screen depends on, and the earliest time they can be read; wire failure dependencies in arrival order.
- Let count and direction veto; let duration decide long-press only. Do not park scrolling behind a long-press clock.
- A/B the same ambiguous gestures with shuffled orders, and watch whether “meant to scroll, got a menu” falls when duration is last.
Related
- Same group: C3.19.1 Multiple gestures compete for the same onset · C3.19.3 No irreversible commit during the discrimination window · C3.19.4 Touch-ownership rules for nested scrollers
- Adjacent: C3.28 Gesture direction locking · C3.29 Gesture velocity thresholds
- Search:
disambiguation order·finger count·failure requirement