overflow:auto is often the little pinch of pixy dust that transforms a web page into a web app and support amongst popular mobile browsers for overflow scrolling is pretty good:
|Chrome for Mobile||Yes|
Android Browser supported overflow scrolling from Android 3.0. Unfortunately there are still a lot of 2.x devices out there so a polyfill like Overthrow is recommended.
Blackberry Browser 6 or higher support overflow scrolling but momentum scrolling doesn’t make an appearance until Blackberry Browser 7.
Internet Explorer Mobile
IE Mobile 9 or higher support overflow scrolling but momentum scrolling doesn’t make an appearance until IE Mobile 10. Thanks to Tomomi Imura for confirming this.
Come on, you didn’t expect overflow scrolling to work on Opera Mini did you? If you plan to support the 168 million Opera Mini users out there, be smart with your app design and use of overflow. Usually a tweak in positioning is all that’s required.
Element height (or width) alone is not enough to get Opera Mobile 12 to overflow an element and it will expand elements unless absolutely positioned with top and bottom values. This sucks but when absolutely positioned, Opera Mobile 12 does add a scrollbar to overflow elements but there is no support for touch gesture scrolling and the scrollbar controls are flaky.
iOS 4 or lower required an esoteric two finger gesture to scroll elements but normality was achieved from iOS 5. Unlike other browsers, while
overflow:auto works, momentum scrolling is disabled unless you also add
When things get wobbly
With the exception of Safari and Opera Mobile, there are no scroll indicators.
When things get really wobbly
Put simply, Android Browser on Android 4.0 or earlier and Safari do not update element positions during momentum scrolling. Android Browser is even flakier, requiring users to tap inside the overflow element before updating element positions. You can test this for yourself here.
The workaround for Safari is to disable momentum scrolling by removing
-webkit-overflow-scrolling: touch but that’s just nasty.
Update: Good news everyone, newer versions of Safari update element positions during momentum scrolling.