PSA: Potential feature detection issue regarding scroll-snap-stop

16 views
Skip to first unread message

Majid Valipour

unread,
May 23, 2019, 11:32:23 AM5/23/19
to embedd...@chromium.org, blink-api-ow...@chromium.org
Hi embedders,

We have recently discovered that one of scroll snap features, scroll-snap-stop was inadvertently exposed to the web when css scroll snap was initially shipped in M69. The feature was actually implemented in M74 for the first time while the css property controlling it was shipped in M69. See below table for more detailed information:

| Chrome Version | scroll-snap-stop property |
|----------------------------|------------------------------------------------------------|
| 68 and before | Does not exist |
| 69 - 73 | Property exists [1] but not functional |
| 74 and after | Property exists and functional [2] |


In practice this means that it is not possible to reliably feature detect this via the standard `CSS.supports()` facility between M69 - M73. So if a web developer uses this method to feature detect scroll snap stop in that range their website may behave in an unintended fashion. See this issue for more detail.

Some mitigating factors:
  1. This feature is mostly used as a progressive enhancement. So if it is used and we don't support it the user can simply bypass the intended scroll snap stop. This is not going to break UX in a major way.
  2. We have been in contact with large known early adopters and have been providing them with guidance and an alternative more reliable way to feature detect it.
  3. At the moment the usage is fairly low (0.005%) and it will take time for it to grow which allows the fix to propagate.
Based on the above, our current evaluation is that this should not cause any major issues but we will continue to monitor incoming bug reports. Please feel free to reach out to me or comment on this issue if you have questions or concerns.

Thanks
Majid

[1] CSS.supports('scroll-snap-stop:always') returns true but the property is not honored.
[2] In 74 we honor scroll-snap-stop but there is a bug (
fixed in M75) where it is possible to sometimes escape it in particular on diagonal swipe gestures.



Reply all
Reply to author
Forward
0 new messages