LGTM3

On 9/17/25 11:36 a.m., Daniel Bratell wrote:

LGTM2 for the plan Philip outlined below.

/Daniel

On 2025-09-17 17:28, Philip Jägenstedt wrote:
We discussed this at the API owners meeting today. (Present: Daniel, Yoav, Alex, Chris, Mike, Dan, Vlad, me.)

LGTM1

Based on the use counter (8%) and the number of sites checked (10) we don't have high confidence that this won't break something. However, we also don't have a concrete way to further reduce the uncertainty beyond manually checking hundreds of sites and making a judgment call about whether each is improved or not, which does not feel reasonable.

Instead, to shake out as much breakage as we can, we'd like to let this bake at 100% on beta for ~4 weeks (one extra milestone) and monitor for bugs. If there's nothing concerning, then launch at 100% on stable, while being prepared to revert if there are reports at that point.

If you could report back here before going to stable that would be great, but no further approvals needed if things are looking good.

On Wed, Sep 17, 2025 at 5:11 PM Alex Russell <slightly...@chromium.org> wrote:

    Thanks. I'm pinging people. Hopefully folks can weigh in here
    quickly.

    On Tuesday, September 16, 2025 at 7:11:54 AM UTC-7 Robert Flack
    wrote:

        I completely agree, the point here isn't to follow the spec.
        The reason I think we should follow the spec in this case is
        that it is more ergonomic and predictable when applying
        overscroll-behavior doesn't just work sometimes. I think that
        developers are rightfully confused by those cases where it
        doesn't work which is why we have had several bugs filed
        about it.

        I have reached out to a few web developers. If you know
        anyone who might have thoughts on this please loop them in as
        well.

        On Mon, Sep 15, 2025 at 2:00 PM Alex Russell
        <slightly...@chromium.org> wrote:

            I'd love for web developers who have been paying close
            attention to scroll behaviour to weigh in here. This has
            been a deep well of sadness in a cross-browser sense, and
            they might have opinions as to the benefits and costs we
            aren't able to easily see. Spec compliance can either be
            great or pointless, and it would be helpful to get a
            sense from folks building complex UIs which this is.

            Best,

            Alex

            On Friday, September 12, 2025 at 10:53:50 AM UTC-7 Robert
            Flack wrote:

                > is there any plausible pattern where web developers
                could depend on the current behavior intentionally?

                The change in behavior comes in roughly three patterns:

                 1. overscroll-behavior: contain | none is specified
                    on an element with overflow: hidden. In these
                    cases the overscroll-behavior used to have no
                    effect, scrolls would propagate past the element
                    to ancestor scrollers. In practice, when a
                    developer has specified this they likely intended
                    to prevent scroll propagation, however due to the
                    implementation it had no effect. Authors
                    typically try to do this to prevent scrolling
                    while a modal dialog is open from scrolling the
                    content behind it, e.g. as in the example posted
                    to the bug
                    <https://issues.chromium.org/issues/41371072>
                    https://codepen.io/rctneil/pen/rJYONj.
                 2. The author specified overscroll-behavior: contain
                    | none but on an element with overflow-y: scroll
                    | auto (but implicit overflow-x: hidden). In this
                    case, they may have accidentally applied
                    overscroll-behavior to both axes and not realized
                    that by spec this prevents overscroll propagation
                    in both axes. I observed this on
                    https://lichess.org/ though blocking horizontal
                    scrolls on the open menu would not break using
                    the site.
                 3. The author specified overscroll-behavior: contain
                    | none on an element with overflow: scroll |
                    auto. In this case, we have the unpredictable
                    behavior that when you have overflow it prevents
                    propagation, but if your containing element is
                    large enough for its content then we don't. This
                    is the common case for things like scrolling in a
                    chat widget (demo
                    <https://output.jsbin.com/helovikizu>, bug
                    <https://issues.chromium.org/issues/40748098>) or
                    in an embedded frame (bug
                    <https://issues.chromium.org/issues/40736788>).

                Case 1 and 2 are sort of the same, overflow: hidden
                now preventing scroll propagation, but in case 1 it
                never did anything before so it feels similar to an
                author using a property that doesn't work yet.

                If we want to be conservative, we could only change
                the behavior for cases where it is currently layout
                dependent, i.e. case 3 overflow: auto | scroll. This
                would be an improvement however it wouldn't help with
                case 1 where you want to prevent scrolling from your
                component without risking that containing element
                becoming scrollable. Cases 1 and 2 are possible that
                developers are relying on this being incorrectly
                ignored and not preventing scroll propagation on
                overflow: hidden, similar to for example ignoring
                left or top on position: static.

                That said, I do think it would be more useful and
                predictable for it to apply to all scroll containers
                as it is spec'd.

                On Fri, Sep 12, 2025 at 4:15 AM Philip Jägenstedt
                <foo...@chromium.org> wrote:

                    Hey Rob,

                    Since the use counter is 8%, looking at 10 random
                    popular sites doesn't reduce the upper bound of
                    breakage by a whole lot. Using the rule of three
                    <https://en.wikipedia.org/wiki/Rule_of_three_(statistics)> 
gives
                    95% confidence that the rate of breakage is
                    between 0 and 30%. But 30% of 8% is still a huge
                    number when it comes to potential breakage.
                    (Reducing this to a reasonable number with more
                    random sampling isn't really feasible either,
                    you'd need to test 800 sites with only negatives
                    to get down to 0.03% if my math is right.)

                    The fact that the change seems to make things
                    work better and aligns with apparent developer
                    intention is great. But is there any plausible
                    pattern where web developers could depend on the
                    current behavior intentionally?

                    In a situation like this I think we should also
                    consider how many sites we fix and not just how
                    many we break. If we have high confidence that
                    many sites will be improved but can't find any
                    that would regress, then that seems like a good
                    trade even if some regressions do surface.

                    If other vendors are interested in making the
                    same change and there's clear developer demand, I
                    think we should try it, with a Finch kill switch
                    in place.

                    Best regards,
                    Philip

                    On Thu, Sep 11, 2025 at 10:13 PM Robert Flack
                    <fla...@chromium.org> wrote:

                        Note that this is a repost of
                        
https://groups.google.com/a/chromium.org/g/blink-dev/c/p2edIq4J-eQ/m/5MxPnuT8AwAJ
                        as an I2S instead of PSA as I am seeking and
                        will await LGTMs considering the potential
                        compat risk.

                        On the associated bug I have looked at a
                        sampling of 10 popular sites affected by the
                        overscroll-behavior change on httparchive
                        <https://issues.chromium.org/issues/41371072#comment45>
                        and found it to either not impact them or be
                        beneficial:
                        1. https://lichess.org/
                        <https://lichess.org/> On smaller screens the
                        `#topnav` element opens in a menu. The
                        application of overscroll behavior seems to
                        be there to prevent scrolling the content and
                        so this site will be improved by the change.
                        2. https://cardgames.io/
                        <https://cardgames.io/> Seems to just be the
                        body element that has overscrollBehavior set.
                        This shouldn't be affected.
                        3. https://open.spotify.com/
                        <https://open.spotify.com/> The body and
                        "your library" panel fit into this case. I
                        think this change would apply the intended
                        behavior as they do not seem to intend for
                        the scroll to propagate.
                        4. https://www.accuweather.com/
                        <https://www.accuweather.com/> Only the body
                        has overscroll behavior specified.
                        5. https://www.ikea.com/
                        <https://www.ikea.com/> Their mobile menu
                        `#top-mobile-menu` has overscroll-behavior on
                        it. This is presumably to prevent accidental
                        pull to refresh while scrolling through the
                        menu and would be fixed by this change.
                        6. https://www.tiktok.com/explore
                        <https://www.tiktok.com/explore> The side nav
                        has contain overscroll-behavior. With this
                        change you would no longer be able to scroll
                        the main page by scrolling on top of the
                        sidebar. This seems to be the intention but
                        is not currently being honored.
                        7. https://x.com/ <https://x.com/> Only the
                        root element seems to have
                        overscroll-behavior defined.
                        8. https://store.epicgames.com/
                        <https://store.epicgames.com/> I'm unable to
                        find the affected element
                        9. https://www.airbnb.com/
                        <https://www.airbnb.com/> There are several
                        scrolling containers with overscroll-behavior
                        defined however I think these are only "not
                        scrollable" while the page is loading. By the
                        time the user interacts with them they have
                        scrollable overflow and so are unaffected.
                        The usage also seems to indicate they would
                        not want scroll to chain past those containers.
                        10. https://www.expedia.com/
                        <https://www.expedia.com/> I'm not able to
                        find where the property is used.

                        In terms of developer demand, there are many
                        bugs that have been duped into
                        https://issues.chromium.org/issues/41371072
                        all concerned that the incorrect behavior
                        currently implemented in all browsers
                        prevents using it for the intended purposes.
                        In particular, developers want to be able to
                        use overscroll-behavior without the
                        unpredictability of whether it applies
                        depending on the layout of their scrolling
                        content.

                        Common uses for this include,
                        1. Preventing scrolling in inner widgets from
                        chaining to document scrolls
                        2. Preventing scrolling on a dialog covering
                        the page from chaining to and scrolling the page
                        3. Preventing scrolling on a menu  from
                        chaining to and scrolling the page.

                        Right now, authors have to carefully ensure
                        that they have overflow: auto and some
                        scrolling content and then presumably hide
                        the scrollbar in cases where they are only
                        adding overflow: auto; to allow
                        overscroll-behavior to apply.

                        On Thu, Sep 11, 2025 at 4:06 PM Robert Flack
                        <fla...@chromium.org> wrote:


                                    Contact emails

                            fla...@chromium.org, perryuw...@gmail.com


                                    Specification

                            
https://www.w3.org/TR/css-overscroll-1/#propdef-overscroll-behavior


                                    Summary

                            The overscroll-behavior applies to all
                            scroll container elements, regardless of
                            whether those elements currently have
                            overflowing content or are user
                            scrollable. Developers can use
                            overscroll-behavior to prevent scroll
                            propagation on an `overflow: hidden`
                            backdrop or an `overflow: auto` element
                            without needing to consider whether it
                            will currently be overflowing.



                                    Blink component

                            Blink>Scroll
                            
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EScroll%22>


                                    Web Feature ID

                            overscroll-behavior
                            <https://webstatus.dev/features/overscroll-behavior>


                                    TAG review

                            None


                                    TAG review status

                            Not applicable


                                    Risks



                                    Interoperability and Compatibility

                            This should be implemented on other
                            browsers as well, as it matches the
                            specification. However, until this
                            happens there are compatibility risks
                            that some sites may over accidentally set
                            overscroll-behavior on elements which
                            don't currently apply today (either
                            overflow: auto or not having overflow)
                            and will start applying, or that
                            developers will rely on this behavior and
                            have accidental scroll chaining in other
                            browsers until they implement it as well.
                            This change will affect a large number of
                            sites per
                            
https://chromestatus.com/metrics/feature/timeline/popularity/5596.
                            I have done compat analysis of many of
                            the top sites affected by this in
                            
https://issues.chromium.org/issues/41371072#comment45 and
                            found it to either not have a meaningful
                            impact or to better honor the developer
                            specified intent.



                            /Gecko/: No signal

                            /WebKit/: No signal

                            /Web developers/: No signals

                            /Other signals/:


                                    Ergonomics

                            This improves the ergonomics of
                            overscroll-behavior, fixing the current
                            unpredictable layout dependent behavior
                            we have today.



                                    Activation

                            It may be difficult for developers to
                            take advantage of this fix before it is
                            adopted in other browsers as it is likely
                            not possible to feature detect. They
                            could remove pre-existing hacks to get
                            this functionality (i.e. ensuring 1px
                            overflow) on supporting chromium browsers.



                                    WebView application risks

                            Does this intent deprecate or change
                            behavior of existing APIs, such that it
                            has potentially high risk for Android
                            WebView-based applications?

                            None



                                    Debuggability

                            None



                                    Will this feature be supported on
                                    all six Blink platforms (Windows,
                                    Mac, Linux, ChromeOS, Android,
                                    and Android WebView)?

                            Yes


                                    Is this feature fully tested by
                                    web-platform-tests
                                    
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?

                            Yes

                            
https://wpt.fyi/results/css/css-overscroll-behavior/overscroll-behavior-without-overflow.html?label=experimental&label=master&aligned
                            
<https://wpt.fyi/results/css/css-overscroll-behavior/overscroll-behavior-without-overflow.html?label=experimental&label=master&aligned>



                                    Flag name on about://flags

                            None


                                    Finch feature name

                            OverscrollBehaviorRespectedOnAllScrollContainers


                                    Rollout plan

                            Will ship enabled for all users


                                    Requires code in //chrome?

                            False


                                    Measurement

                            The
                            OverscrollBehaviorOnNonScrollableScrollContainer
                            feature counter measures how often this
                            new behavior is or would be triggered.
                            
https://chromestatus.com/metrics/feature/timeline/popularity/5596


                                    Sample links


                            https://ebidel.github.io/demos/chatbox.html
                            https://codepen.io/rctneil/pen/rJYONj


                                    Estimated milestones

                            No milestones specified



                                    Anticipated spec changes

                            Open questions about a feature may be a
                            source of future web compat or interop
                            issues. Please list open issues (e.g.
                            links to known github issues in the
                            project for the feature specification)
                            whose resolution may introduce web
                            compat/interop risk (e.g., changing to
                            naming or structure of the API in a
                            non-backward-compatible way).

                            None


                                    Link to entry on the Chrome
                                    Platform Status

                            
https://chromestatus.com/feature/5129635997941760?gate=5124735842910208

-- You received this message because you are
                        subscribed to the Google Groups "blink-dev"
                        group.
                        To unsubscribe from this group and stop
                        receiving emails from it, send an email to
                        blink-dev+unsubscr...@chromium.org.
                        To view this discussion visit
                        
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJh39TPripgF_DY4adqs9wbtQV8XRTVdXER3SOR0-52SczULBA%40mail.gmail.com
                        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJh39TPripgF_DY4adqs9wbtQV8XRTVdXER3SOR0-52SczULBA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYdPV-itQEK%2BbSPAR0u3SfLOqvSEe57TA5SFKRDTODi16g%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYdPV-itQEK%2BbSPAR0u3SfLOqvSEe57TA5SFKRDTODi16g%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/bbb963e9-9acb-49b9-ae02-4c82e88d4e6d%40gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/bbb963e9-9acb-49b9-ae02-4c82e88d4e6d%40gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/5f7b45c4-b903-4138-b23a-7b596c438f97%40chromium.org.

Reply via email to