Testing

-webkit-overflow-scrolling: Support, Values, Alternatives

-webkit-overflow-scrolling worked on Safari iOS 5 to 12 and Samsung Internet 5 to 19. iOS 13 removed it. Learn the values, deprecation, and alternatives.

Author

Prince Dewani

May 6, 2026

-webkit-overflow-scrolling is a non-standard WebKit CSS property that controls momentum-based scrolling on touch devices. It works in Safari iOS 5 to 12, Samsung Internet 5 to 19, and Android WebView 4.4, while Chrome, Edge, Firefox, and Opera on desktop never added support, and Apple removed the effect in iOS 13.

This guide covers what -webkit-overflow-scrolling is, the browsers that support it, the auto and touch values, the deprecation in iOS 13, the modern alternatives, and the known issues.

What is -webkit-overflow-scrolling?

-webkit-overflow-scrolling is a CSS extension that the WebKit team added to control whether a scrollable element uses momentum-based scrolling on a touch device. It accepts two values, auto and touch, and shipped only on iOS Safari, Samsung Internet, and the Chromium-based Android WebView.

Which browsers does -webkit-overflow-scrolling support?

Only iOS Safari, Samsung Internet, and the Android WebView ever shipped -webkit-overflow-scrolling. Every desktop browser ignored it, and modern iOS Safari has removed the effect.

Loading browser compatibility data...

-webkit-overflow-scrolling compatibility in Chrome

Chrome does not support -webkit-overflow-scrolling on Windows, macOS, Linux, ChromeOS, or Android. Blink ignores the property silently, and Chrome already paints native momentum scrolling on every overflow:auto and overflow:scroll element on touch hardware. No flag in chrome://flags turns the property on.

-webkit-overflow-scrolling compatibility in Edge

Microsoft Edge does not support -webkit-overflow-scrolling on any version. Chromium-based Edge 79 and later inherit Blink's behavior and ignore the property. Legacy EdgeHTML versions, Edge 12 to 18, also lacked support, and Edge on iOS rides on the WebKit engine that has already removed the effect.

-webkit-overflow-scrolling compatibility in Firefox

Firefox does not support -webkit-overflow-scrolling on any desktop, ESR, or Android release. Mozilla never added the WebKit prefix and there is no about:config flag to turn it on. Gecko paints its own momentum scrolling natively on Firefox for Android, so no rule is required.

-webkit-overflow-scrolling compatibility in Safari

Safari on macOS never supported -webkit-overflow-scrolling, since the property only ever shipped in mobile WebKit. Safari on iPhone and iPad supports the property from Safari 5 on iOS through Safari 12 on iOS 12. Apple removed the effect in Safari on iOS 13 and later, where the property still parses but does nothing on the page.

-webkit-overflow-scrolling compatibility in Opera

Opera does not support -webkit-overflow-scrolling on Windows, macOS, Linux, or Android. Opera 15 and later inherit Blink and ignore the property. Opera Mini renders pages on a server proxy, so the rule never reaches the device. Opera Mobile does not paint a custom momentum effect either.

-webkit-overflow-scrolling compatibility in Samsung Internet

Samsung Internet supports -webkit-overflow-scrolling from Samsung Internet 5 through Samsung Internet 19 on Galaxy phones and tablets. Samsung Internet 4 did not recognize the property. Newer Samsung Internet builds ride on the same Chromium upgrade that dropped the effect, so they parse the rule but ignore it.

-webkit-overflow-scrolling compatibility in Android Browser

The legacy Android Browser supports -webkit-overflow-scrolling from Android 3.0 through Android 4.4 on the AOSP WebKit engine. Android WebView switched to Chromium in Android 4.4, after which the property is parsed but ignored. Chrome for Android and Firefox for Android have never supported it.

-webkit-overflow-scrolling compatibility in Internet Explorer

Internet Explorer does not support -webkit-overflow-scrolling on any version, from IE 6 through IE 11. Microsoft has retired Internet Explorer. Trident has its own scrollbar model and never adopted the WebKit prefix, so the property is dead code on every IE-mode user still on Windows.

Note

Note: -webkit-overflow-scrolling behaves differently on iOS Safari, Samsung Internet, and Android WebView, and is dead code on every desktop engine. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!

What are the values of -webkit-overflow-scrolling?

-webkit-overflow-scrolling accepts two values, auto and touch. Each one tells mobile WebKit how to handle the scroll after the user lifts their finger.

  • auto: The default. The scroll stops the moment the user lifts their finger. There is no glide, no overshoot, and no rubber-band bounce. Most pages never need to set this value explicitly.
  • touch: Turns on momentum-based scrolling. The content keeps gliding for a short distance after the touch ends, the way native iOS lists scroll. The value also creates a new stacking context, which can change how positioned children paint inside the scroller.

The snippet below shows the legacy iOS pattern, an explicit auto opt-out, and the modern overscroll-behavior replacement. Paste it into a stylesheet and the rules take effect on the next paint.

/* Legacy iOS pattern: turn on momentum scrolling on a vertical list. */
.scroll-list {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Disable momentum scrolling on a panel. The scroll stops the moment the finger lifts. */
.no-momentum {
  overflow-y: auto;
  -webkit-overflow-scrolling: auto;
}

/* Modern replacement: native momentum plus a clean overscroll boundary. */
.feed {
  overflow-y: auto;
  overscroll-behavior-y: contain;
}

-webkit-overflow-scrolling is non-inherited, has no shorthand, and has no animation type. Setting touch on a child of overflow:hidden has no effect, since the child is not a scrollable element to begin with.

Is -webkit-overflow-scrolling deprecated?

Yes. -webkit-overflow-scrolling is deprecated and the effect is gone from modern WebKit. Apple removed the implementation in Safari on iOS 13 and later, and the Safari 13 release notes describe the change directly.

  • Removed in iOS 13: WebKit added one-finger accelerated scrolling to all frames and overflow:scroll elements, eliminating the need to set -webkit-overflow-scrolling: touch. The property still parses, so CSS.supports() returns true, but it has no visible effect.
  • Never standardized: The property has no W3C, WHATWG, or CSS Working Group draft. There is no unprefixed overflow-scrolling property planned, so feature detection cannot rely on a future stable name.
  • No replacement on the same property: Apple did not add a successor with the same name. Native momentum scrolling is on by default in modern Safari, and the standard overscroll-behavior property covers the bounce and chaining cases.
  • Lint rules flag it: Stylelint and the Chrome DevTools Issues panel mark -webkit-overflow-scrolling as a non-standard rule. Build pipelines that strip vendor prefixes will drop it from the production bundle.

What are the alternatives to -webkit-overflow-scrolling?

Drop the property and lean on the browser. Modern Safari, Chrome, Firefox, and Edge paint momentum scrolling on overflow:auto and overflow:scroll without any opt-in. For finer control over the scroll edge, use standard CSS that every modern engine supports.

  • Native momentum scrolling: Set overflow-y: auto or overflow-y: scroll on the container and the browser handles the glide for you. This is the default on Safari from iOS 13 on, every modern Chromium, and every Firefox build.
  • overscroll-behavior: The standard CSS property that controls scroll chaining and the rubber-band bounce. Set overscroll-behavior-y: contain to stop the parent from scrolling when the child reaches its edge, or overscroll-behavior: none to remove the bounce on iOS Safari.
  • scroll-behavior: smooth: Pairs well with anchor jumps and scrollIntoView calls. It controls programmatic scrolling, not finger drags, but it gives you a smoother feel without a JavaScript animation.
  • scroll-snap-type: Snaps the scroll to a grid of children. It is the standard, GPU-accelerated way to build a swipe-through carousel, and it removes the need to wrap a custom JavaScript scroller around a -webkit-overflow-scrolling: touch element.
...

What are the known issues with -webkit-overflow-scrolling?

-webkit-overflow-scrolling has the smallest cross-browser footprint of any CSS scroll control. The painful edge cases land on iOS Safari, fixed positioning, and the new stacking context the touch value creates.

  • Stacking context surprises: Setting -webkit-overflow-scrolling: touch creates a new stacking context. Positioned children with z-index that worked outside the scroller can repaint above or below the wrong layer. The fix is to drop the property or set isolation: isolate explicitly so the new context is intentional.
  • Fixed positioning bugs: Children with position: fixed inside a -webkit-overflow-scrolling: touch element scroll with the content on iOS Safari instead of staying pinned. WebKit Bug 153852 tracks the behavior. The workaround is to lift the fixed element out of the scroller and into a sibling.
  • Form input cursor jumps: Tapping into a text input inside a momentum scroller on iOS 11 and earlier scrolls the input out of view before the keyboard opens, and the caret can land in the wrong row. Use a sentinel scroll listener or remove the touch value on the parent.
  • White flicker on overflow change: Toggling overflow on a touch scroller in JavaScript can flash a one-frame white rectangle on iOS Safari. The cause is the GPU layer being torn down and rebuilt; the fix is to keep overflow constant and toggle a CSS class instead.
  • iOS 13 removal silently breaks fallbacks: A site that relies on -webkit-overflow-scrolling: touch to enable momentum will look fine, since modern iOS scrolls natively, but a manual overflow toggle that flips between auto and touch becomes a no-op. Audit any JavaScript that writes the property at runtime and drop it.
  • No effect inside sandboxed iframes: A page in an iframe with the sandbox attribute and no allow-scripts token cannot opt into the touch value at runtime. Set the property in the static stylesheet so it applies before the sandbox lock kicks in.

In my experience, the cleanest cross-browser pattern is to remove -webkit-overflow-scrolling entirely from new stylesheets and pair overflow: auto with overscroll-behavior: contain. Modern iOS Safari paints momentum natively, every Chromium and Firefox build does too, and the bounce control lands on a standard property that a linter will not flag.

...

Citations

All -webkit-overflow-scrolling version numbers and platform notes in this guide come from these primary sources:

Author

Prince Dewani is a Community Contributor at TestMu AI, where he manages content strategies around software testing, QA, and test automation. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI. Prince has also presented academic research at the international conference PBCON-01. He further specializes in on-page SEO, bridging marketing with core testing technologies. On LinkedIn, he is followed by 4,300+ QA engineers, developers, DevOps experts, tech leaders, and AI-focused practitioners in the global testing community.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Frequently asked questions

Did you find this page helpful?

More Related Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests