Live versions of the various files at github.com/patrickhlauke/touch.
See the presentation Getting touchy - everything you (n)ever wanted to know about touch and pointer events for some context and further information on the meaning of these tests and demos.
For a series of interesting results (different browsers, operating systems, assistive technologies), see my touch/pointer test results and, separately, pointer/hover/any-pointer/any-hover test results.
div instead of buttondiv with tabindexforce / webkitForce / pressurepreventDefaultpreventDefault all eventspreventDefault on touchstartpreventDefault on touchmovepreventDefault on touchendclick delay optimisations/heuristicsuser-scalable=nominimum-scale=1,maximum-scale=1width=device-widthtouch-action:nonetouch-action:none - no meta viewporttouch-action:manipulationtouch-action:manipulation - no meta viewportpointercancel fires by default)buttondivdiv with tabindex=0div with tabindex=0 and role=buttondiv with onclick attributediv with onclick attribute on ancestordiv with addEventListener("click"...)div with addEventListener("click"...) on ancestordiv with cursor:pointerdiv with cursor:pointer on ancestor<body><body> - with iOS clickability hacks<html>touch-actionpointerrawupdate, getCoalescedEvents() and getPredictedEvents()pointermovepointerrawupdatepointermove and getCoalescedEvents()getPredictedEvents()pointermove, getCoalescedEvents(), and getPredictedEvents()click delayfastclick.js:hover dropdownaria-haspopup for IE10+touch-action:nonetouch-action:nonetouch-action:nonetouch-action:nonepointermovepointermove and touch-action:nonepointermove, touch-action:none and isPrimary checkHammer.js)touch-action:nonepreventDefault on gesture for iOS/iPad (spoiler: doesn't work)TouchList index for each TouchradiusX, radiusY, rotationAnglewidth, heightforce, Pointer Events pressure tiltX / tiltYaltitudeAngle / azimuthAngle (PE3)click as Pointer Event