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

Reply via email to