W3C home > Mailing lists > Public > public-pointer-events@w3.org > April to June 2014

Re: RFE: Add touch-callout

From: Daniel Trebbien <dtrebbien@gmail.com>
Date: Sat, 14 Jun 2014 07:04:45 -0400
Message-ID: <CABrgu5RZJN=bPuM1++KLK-s3_xqhYScrOug+CDCu7mxCq_Qx4A@mail.gmail.com>
To: Jacob Rossi <Jacob.Rossi@microsoft.com>
Cc: "Patrick H. Lauke" <redux@splintered.co.uk>, "public-pointer-events@w3.org" <public-pointer-events@w3.org>
On Fri, Jun 13, 2014 at 2:30 PM, Jacob Rossi <Jacob.Rossi@microsoft.com>

> On Fri, Jun 13, 2014 at 5:19 AM, Daniel Trebbien <dtrebbien@gmail.com>
> wrote:
> >
> > Hi,
> >
> > In mobile browsers, when the user touches and holds a link or <img>, a
> popup is shown containing options for the user.  For example, touching and
> holding an <img>, Mobile Safari, Chrome for Android, and Android
> WebView/AOSP Browser all display a "Save Image" option in this popup.  In
> certain cases, it makes sense to disable this popup, such as when an <img>
> is used in the design of a webpage.
> >
> > Mobile Safari supports a property, -webkit-touch-callout, that can be
> used to disable this popup:
> >
> https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-_webkit_touch_callout
> > .. and unlike other -webkit-prefixed properties, this is specific to
> Mobile Safari; I have tested and found that it is not supported by Android
> WebView or Chrome for Android.
> >
> > To disable the popup on Android, the current approach is to
> preventDefault() touch events on the element:
> http://stackoverflow.com/questions/3413683/disabling-the-context-menu-on-long-taps-on-android
> > However, this has the side-effect that a native touch scroll starting on
> the image will no longer work.
> >
> > Chrome 36+ will support the Pointer Events touch-action property:
> https://code.google.com/p/chromium/issues/detail?id=258459
> > I have tested Chrome 36 Beta for Android and found that
> touch-action:none does not disable the callout popup, and leads to the
> unwanted side-effect of breaking touch scrolling.
> >
> > I have not tested IE Mobile because I do not have access to a Windows
> Phone, but presumably the need for a touch-callout-equivalent is there,
> too, as people are asking for an equivalent to -webkit-touch-callout on
> Stack Overflow:
> http://stackoverflow.com/questions/15012702/webkit-touch-callout-equivalent-for-ie
> >
> > It would be immensely useful if touch-callout were added to the Pointer
> Events spec.  Could this property be added?
> IE does this for touch like it always has for mouse (in all browsers):
>         window.addEventListener("contextmenu", function(e) {
> e.preventDefault(); });
> Unless I'm missing something special about how touch-callout works, I
> think touch-callout is redundant in this regard (though I don't believe the
> contextmenu event is yet supported in other browsers for touch IIRC).
> I'd prefer not to create a new API (and instead petition other browsers
> for interoperable contextmenu support, which is already standardized in
> HTML5) unless there's additional functionality and associated use cases
> that touch-callout provides.
> -Jacob

I hadn't thought about 'contextmenu', but I think that I like this solution
better than adding touch-callout because, as you point out, 'contextmenu'
is already standardized.

Thanks Jacob.
Received on Saturday, 14 June 2014 11:05:12 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:20:26 UTC