Good News For Web Developers, Google Has Decided To Support Pointer Events In Chrome

Microsoft Touch Events Table

Pointer events is a new standard which Microsoft initiated at first and later developed by the W3C to define a unified device input model – pen, mouse and touch – across multiple browsers. Pointer Events makes it easier to support a variety of browsers and devices by saving Web developers from writing unique code for each input type. To demonstrate cross browser interoperability for Pointer Events, Microsoft contributed patches to Blink and Mozilla browser engines, and developed interoperability prototypes, including a Pointer Events prototype for WebKit. Also, Pointer Events was well received by the web community. Last year, Chrome team announced that they are planning to drop Pointer Events support in Chrome citing the these reasons. Following strong feedback from other browser vendors and web community, Google has decided to implement Pointer Events in BLINK.

The following info was posted by Google.


The Pointer Events API is a low-level input API for mouse, touch and stylus introduced by IE.  Pointer Events extends the MouseEvent model while offering a replacement for all uses of Mouse and Touch events.  Based on the feedback we’ve received, and the productive collaboration in the Pointer Events working group, I now believe we should implement this API in Blink.



Last year we announced that, despite our involvement in the Pointer Events standard, we were going to focus on incremental improvements to existing APIs (like Touch Events), rather than implement Pointer Events in Chromium.  Since then we’ve received a steady stream of feedback from web developers, framework authors, and other browser vendors indicating that they see Pointer Events as a highly valuable addition to the platform.  Since we’re committed to a web platform which evolves collaboratively through open discussion and data from real-world development, we need to take this feedback very seriously.


During this same period, many of our outstanding technical concerns with the API have made progress towards being addressed.  Enabling rich touch effects which interact with scrolling now has an official avenue for exploration within the W3C, and improvements to touch-action richness are planned within the PEWG.  Mouse event compatibility issues with existing models for touch are being addressed (and planned for a future version of the PE spec).  The PEWG has been responsive to feedback and we enjoy the productive and collaborative relationship we have with the the other members including representative from the IE, jQuery, Mozilla and Opera teams.


Pointer Events offers some technical advantages over the existing use of Touch Events and Mouse Events.  Most notably, pointer event listeners never block scrolling, and so replacing all touch event handlers with pointer event handlers will address the main longstanding source of scroll-start jank we see on Android (irrespective of whatever scheduler improvements we’re able to make to better prioritize input handling).


Compatibility Risk

IE: Public support (shipping since IE10)

Firefox: Public support (implemented behind a flag)

Safari: Publicly opposed  

Web developers: Mostly positive public support, including jQuery and Dojo


Pointer Events has pretty broad support, but we have some outstanding concerns with the existing API which probably cannot be addressed without a non-trivial breaking change (see below for details).  The key outstanding challenge is to try to identify a design which addresses our concerns without seriously breaking websites which support the existing API.  We will of course work closely with the other vendors to try to find a design we can all agree to implement consistently.


We don’t expect Touch Events to go away in the foreseeable future, but with IE adding support for Touch Events, they’ve shown that it’s possible to support both models simultaneously without serious web compat impact.  Jacob Rossi on the IE team has been very helpful (through his investment in the Touch Events Community Group), helping us understand their experience with Touch Events and the interaction with Pointer Events.  I’m confident that we can come to a consensus on a model for pointer, touch and mouse events that is highly interoperable between IE, Chrome and Firefox, while remaining compatible with Safari’s implementation of touch and mouse events.

Great news for web developers!