Dragging selection handles versus scrolling needs handle hit priority
Aliases: selection grabber · handle versus scroll · loupe drag
What it is
The circular handles at the ends of a selection are tiny. A finger that downs on a handle and moves produces the same event stream as page scrolling. If the scroller claims first, the handle slips away and the selection is carried off with the page. The rule is: a handle hit makes the handle exclusive for movement until lift; only a down outside the handle hotspot may scroll. That is hit priority, not nested-scroll handoff.
Why it happens
The handle’s visual radius is often smaller than the contact, so hit-testing needs an expanded hotspot. The hotspot still sits inside a scrollable parent, so two recognizers see moved. If scrolling does not fail when the handle is dragging, the parent rolls the selection off-screen and the user thinks they are stretching it. A magnifier and offset drawing (the point above the fingertip) fix occlusion; they do not replace hit priority—without it the magnifier scrolls away too. When a handle reaches the viewport edge, the document should autoscroll inside selection mode, not give the touch back to outer navigation scrolling.
Studying it
On a long article with an existing selection, drag from handle centre, handle edge, and a few millimetres outside. Record the owner (handle / scroll) and whether the endpoint followed. Vary hotspot size. Measures include accidental scrolls and endpoint error. The task must be “stretch the selection to this word,” not a tap on the handle with no move.
Where it stops holding
Mouse drag-select has no circular handles; press-and-sweep is a different machine. A short read that fits on one screen barely competes with scroll. Custom-drawn handles that do not match the system widget may be invisible to system hit-testing. This leaf does not cover how long-press enters selection, only who eats moved afterwards.
Applying it
- Give handles a hotspot larger than their ink, and make the scroll recognizer fail while a handle drag is active.
- When a handle hits the edge, scroll the document to reveal more text, not the outer container’s navigation scroll.
- Start a drag 2–3 mm outside the handle ink: the endpoint should move from the hotspot, and the page should scroll only from outside it. If those are swapped, priority is reversed.
Related
- Same group: C3.30.1 Long-press to select text and long-press for a menu share an onset · C3.30.3 Double-tap select versus double-tap zoom must drop one in text · C3.30.4 While selection is active, other gestures should yield
- Adjacent: C3.23 Nested scroll touch capture · C6.13 Text selection and caret placement
- Search:
selection handle·hit testing·scroll steal