Description
I need clarification on how mandatory
strictness interacts with visibility requirement for validity of snap position.
Relevant spec text
If specified on a scroll container, the scroll container is required to be snapped to a snap position when there are no active scrolling operations. If a reachable snap position exists then the scroll container must snap at the termination of a scroll (if none exist then no snapping occurs).
This is followed by a note which in particular explains this situation:
if authors assign mandatory snapping to non-adjacent siblings, content in between can become inaccessible in cases where it is longer than the screen.
Later in the specification i.e., Scoping Valid Snap Positions to Visible Boxes, limits valid snap positions from snap areas that at least some part of it is within the snapport.
My Understanding
Here is how I understand a generic algorithm that implements this will work:
- Compute a set of valid snap position only including positions contributed from snap areas that are considered visible
- If the above set is empty, we should not snap even with
mandatory
strictness - Otherwise, we should choose a snap position and snap.
Issue
If this is the right understanding, I think the none normative text is confusing and incorrect. In particular, larger than snapport content between two adjacent snap points does not become inaccessible even when with mandatory
strictness. This is because if user scroll ends in that area, those snap positions are outside snapports and thus not valid, therefore we do not snap.
Perhaps I am missing something.
Activity