C3.23.3Nested orthogonal scroll discriminationdesignresearch

Direction discrimination for a horizontal rail in a vertical list

Aliases: orthogonal scroll · card rail · horizontal-in-vertical

What it is

When a horizontal card rail sits inside a vertical feed, the system must decide, from a short onset, whether this travel is the rail’s horizontal scroll or the list’s vertical scroll. Diagonal onsets misfire most: a slightly off vertical is eaten by the cards and the page never moves; a slightly off horizontal is eaten by the list and the rail never moves. This is orthogonal discrimination inside a nest, not general axis locking, and not finished at the onset owner vote—the wrong locked axis sends the entire remainder of the gesture to the wrong layer.

Why it happens

The onset vector’s angle to the horizontal is compared with a fan threshold. Inside the horizontal fan, the inner view locks X and drops later Y; inside the vertical fan, the outer view locks Y and the inner view stops following. A skinny fan lets tremor hop between layers; a fat one treats a slightly diagonal vertical intent as browsing cards. Unlike ordinary direction lock, the two winners are not the same view: locking an axis selects a layer. Once locked, reclassification usually waits for lift-off, or the rail and the list tear.

Studying it

From mid-card, play straight strokes at known angles (0°, 15°, 30°, 45°, 90°). Record which layer scrolled, pixels before lock, and whether the layer changed mid-stroke. Measures include target-layer hit rate and displacement on the wrong layer (“dirty” pixels). Tasks must include both “next card” and “next story,” or only one intent is ever measured.

Where it stops holding

If the rail and the list share an axis (both vertical), there is no orthogonal decision, only handoff. A full-width pager (onboarding) should often freeze the outer list. A pointer hovering the rail and using a wheel is another channel and never enters this touch fan. The pixel window of a direction lock belongs with axis locking; here the question is which layer a wrong lock enters.

Applying it

  • Give the rail a clear horizontal fan (often about ±20–30°); outside it, give the whole gesture to the outer list—do not let both layers nibble.
  • After lock, ignore the orthogonal component until lift-off; do not let the list seep while the card is tracking.
  • Script an angle ladder: 15° should still browse cards, 45° should scroll the list; treat wrong-layer travel as the defect, not only where the view finally stopped.

Related

  • Same group: C3.23.1 The inner scroller hands off to the outer after hitting an edge · C3.23.2 Badly timed handoff feels like a stutter
  • Adjacent: C3.28 Gesture direction locking · C3.19 Gesture conflicts and disambiguation
  • Search: orthogonal scroll · nested carousel · direction discrimination

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/C3.23.3