FWIW we support the fast-click on unzoomable pages and pages with width<=device-width in the meta-viewport tag. We don't support touch-action fully yet.
Cheers, kats On Dec 16, 2015 9:55 PM, "Karl Dubost" <kdub...@mozilla.com> wrote: > Just a heads up about WebKit changing behavior on a couple of things. > > Bugs here refers to https://bugs.webkit.org/show_bug.cgi?id=<bug_number> > > * Bug 149968 - Web pages with unscalable viewports shouldn't have a single > tap delay > * Bug 150604 - Implement viewport-width-based fast-click heuristic > * Bug 149854 - Implement touch-action: manipulation; for iOS > > > The article on WebKit blog > https://webkit.org/blog/5610/more-responsive-tapping-on-ios/ > > Excerpt: > > WebKit on iOS has a 350 millisecond delay before single taps activate > links or buttons. WebKit has this delay because we also allow users to > double tap to zoom, which is a great way to zoom in on content that is > well-sized for large desktop displays, but appears too small on mobile > devices. However, when a user has tapped once, WebKit cannot tell if the > user intends on tapping again to trigger a double tap gesture. Since double > tapping is defined as two taps within a short time interval (350ms), WebKit > must wait for this time interval to pass before we’re sure that the user > intended to tap only once. > > > > We know that responsive tapping is really important to web developers — > so much so that many are willing to employ JavaScript frameworks to avoid > the delay using touch handlers. Instead of waiting for WebKit to fire a > click after a delay, these libraries prevent the default behavior of the > touchend event and call `click()` immediately so that the element is > clicked the moment the user stops touching the element. While this may make > a link feel fast, it can also reduce responsiveness in other ways, > including page load time and scrolling. To address this, we baked fast > tapping optimizations into WebKit so well-scaled mobile web pages will be > able to achieve responsive tapping out of the box without the drawbacks of > third-party frameworks. > > > > On web pages optimized for mobile viewports, elements such as links and > form controls are scaled to fit well on smaller screens. As such, double > tapping on these elements increases the page scale by only a small amount. > Since double tapping provides little value on these web pages, we’ve > implemented a mechanism for removing the delay for single taps by disabling > double tap gestures. > > > > The following examples show the amount of time required to tap a button > 10 times in a page with `<meta name="viewport" content="initial-scale=1.0, > width=device-width">`, with and without the fast-tap optimization. The left > video shows the old behavior, while the right video shows the new behavior. > > > > ### When Fast-Tap Optimizations Apply > > > > When content is scaled to fit well on a mobile device, WebKit disables > double tapping in favor of fast single tapping. Using the viewport meta > tag, there are a few ways WebKit determines whether content is > well-proportioned, for both scalable and unscalable web pages. > > > > Since users cannot zoom in unscalable viewports (using meta tags with > `user-scalable=no` or a `minimum-scale` equal to the `maximum-scale`) > WebKit assumes that if a page has an unscalable viewport, all content is > already well-proportioned relative to the screen. On these pages, WebKit > removes the ability to double-tap on elements altogether and dispatches all > taps immediately as clicks. We implemented this behavior in [Bug #149968]( > https://bugs.webkit.org/show_bug.cgi?id=149968). > > > > However, we believe web pages should be scalable when possible. For this > reason, viewports that have `width=device-width` will have fast single > tapping when the user is at initial scale. We added this optimization in > [Bug #150604](https://bugs.webkit.org/show_bug.cgi?id=150604). > > > > ### Styling Fast-Tap Behavior > > > > Even if a web page cannot use one of the viewport configurations above, > it can still opt in to the fast-tap optimization. We’ve implemented the > `manipulation` value of the new `touch-action` CSS property in [Bug > #149854](https://bugs.webkit.org/show_bug.cgi?id=149854). By default, > elements have `touch-action: auto`, which indicates that WebKit may enable > any touch behaviors such as panning, pinching and double-tapping. Putting > `touch-action: manipulation;` on a clickable element makes WebKit consider > touches that begin on the element only for the purposes of panning and > pinching to zoom. This means WebKit does not consider double-tap gestures > on the element, so single taps are dispatched immediately. Single taps on > an element become fast when any of the element’s ancestors have the > `touch-action: manipulation`. Note that putting `touch-action: > manipulation` on any node opts all children of the node into the fast-tap > optimization. > > > > Additionally, single taps on an element with `touch-action: > manipulation` are fast for all zoom scales, whereas our optimizations on > device-width viewports only trigger when the viewport is at initial scale. > > > > If you have questions, comments or other feedback regarding fast-tapping > in mobile Safari, feel free to reach out to Jon Davis [@jonathandavis]( > http://twitter.com/jonathandavis) or WebKit [@webkit]( > http://twitter.com/webkit) on Twitter, or email me directly at [ > wenson_hs...@apple.com](mailto:wenson_hs...@apple.com). > > > -- > Karl Dubost, Mozilla > http://www.la-grange.net/karl/moz > > _______________________________________________ > dev-platform mailing list > dev-platform@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-platform > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform