Re: [csswg-drafts] [css-scroll-snap-1] Compat between webkit and blink/gecko regarding "implicit" scroll boundary snap positions (#4037)

Hi @jonjohnjohnson - My main concern is finding a solution that won't break virtual scrolling implementations. An implicit scrollmin snap position breaks virtual scrolling lists when the user is scrolling backwards, so I wouldn't support standardizing the WebKit behavior (even just for scrollmin) unless there were some way to turn it off so that virtual scrolling would work OK.

The gecko behavior is definitely weird the way it scrolls all the way to the end and snaps all the way back. That should definitely be fixed. But I think the "fix" could just match the blink behavior where scrolls are not allowed to escape the first/last snap-aligned child element.  I'm not saying it's good UX to be unable to return to the initial on-loaded scroll position, but I'm also not sure that this is a common-enough use case to be worth worrying about.

Other than virtual scrolling, what are common use-cases that would combine scroll snapping with needing to navigate beyond the first/last snapped element?  If we think that developers making mistakes in CSS is a common reason we'd see this, then I'd also support a solution that would auto-scroll to the first snap position instead of starting from zero.  This would eliminate the "can't go back home" problem and would make CSS bugs easier to find and fix because the bad UX would show up immediately on load instead of requiring user interaction. Doing this might be expensive to implement or expensive at runtime though; I'm not familiar enough to know.

If there are common use-cases (not just developer errors) where users need to scroll to empty space in a container or to un-snap-aligned child elements, then I'd support an option to enable the WebKit implicit scroll positions, as long as there's a way for virtual scrolling implementations to turn them off.


-- 
GitHub Notification of comment by justingrant
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/4037#issuecomment-511249068 using your GitHub account

Received on Monday, 15 July 2019 00:44:24 UTC