Chrome Has Decided to Implement Pointer Events and the Web Rejoices
Last August I wrote an angry Blog post about the Chrome team deciding not to support Pointer Events. Thanks to some of the Internet Explorer (now Edge) engineers and thousands of developers Google has decided to support Pointer events! And web development ninjas everywhere celebrated.
This is great news because now Edge, Internet Explorer, FireFox and Chrome are implementing Pointer Events. Once Chrome implements them, Opera will be able to integrate support via the WebKit source code base.
The bad news here is there is not clear time line defined, so I do not know when we will start seeing Pointer Events in Chrome or its preview version Canary. So it is not time to deprecate DeepTissue just yet. Plus you may have notices I have not mentioned another browser, Safari.
We Have to do Something About Apple
To my knowledge Apple has not said anything public about Pointer Events or plans to support them. My guess is they are sticking to their original position that developers should write several layers of code to detect touch and mouse events and that browsers should implement a different API for other input modalities. It seems Yandex also takes this position. This position has never made any logical sense to me. It is more like they are mad they are going to defend their patented API to the end.
That's right, Apple patented the touch events API and it was not an HTML5 specification. It is now, but it would have been a long time ago if Apple had not interfered at the last minute by interjecting their patents with the hint they might sue over infringement. Current implementations and the specification are based reverse engineering efforts and may not fully implement Safari's API. This is never good for developers.
I think Peter-Paul Koch stated it best back when Pointer Events became a standard:
"It is increasingly becoming necessary to do something about Apple, its absolute refusal to talk to anyone, and its dickish way of bending the mobile web to its desires. Personally, I became tired of Safari quite a while ago, and I wouldn’t mind taking Apple down a notch."
Peter goes on to make a strong statement about what is wrong with Apple's influence. At the time of the writing the Chrome team (I think my time line is right) said they were going to fall on Apple's side. Thankfully the Googlers have changed their position.
Tim Kadlec also articulates an inspired post about Apple's negative influence on open web standards.
"Apple simply does not play well with other vendors when it comes to standardization. The same sort of things we once criticized Microsoft for doing long ago, we give Apple a pass on today. They’re very content to play in their own little sandbox all too often."
"They’re consistently lacking in the open discussion in to improving the gateway to the web: the browser. Sure, they landed an impressive mobile browsing experience back when the iPhone launched and it’s a great device, but there’s some serious questioning about whether they’re purposely cock-blocking web development and purposely hindering our advancement as a web industry." Remy Sharp
"Apple’s culture of secrecy has served them very, very well for some things—like hardware—but it’s completely at odds with the spirit of the web. That culture clash is most evident with Safari; not just a web browser, but a web browser built on the open-source Webkit platform." Jeremy Kieth
I realize some of you may not be familiar with Peter-Paul Koch, Tim Kadlec, Remy Sharp and Jeremy Kieth, but they are expert web developers that influence other great web developers. They are really some of the top web development experts in the world and you should listen and absorb their thoughts because folks like them have a keen insight into what is going on and where things are going. So to have them publicly make these statements is a big deal.
If nothing else you should see I am not the only one expressing frustration over Pointer Event support. Something I did not consider last August in my death star rant was Apple's influence over Google's decision. I think the thought leaders I reference today have better insight into what it is like dealing with Apple than I do, they use Apple laptops, I use iOS to test web apps and as a television set. They feel the pain much more than I do.
But they are 100% right, Apple needs to grow up and join the open web. For now I would settle for Pointer Events support.
As I thought about it I could not help but draw an analogy to Star Wars. In episode IV, you know the real original episode, we all think Darth Vader is the leader of the bad guys. By the end of Return of the Jedi we all realize he has a good heart and has been led astray by the real bad guy, Emperor Palpatine. Chrome has shown it has a good heart and can even use its power for good. Apple has been revealed with as the real source of bad as it relates to open standards.
At some point in the past they both were part of the good side. However I think you can evaluate Apple's intentions and realize they have not always been good. They are about gaining power, limiting individual choice. Apple's position has never been one where it valued nor empowered the developer. It is about controlling its customers and fans and limiting choice.
Here's to hoping the new episode defeats this position, but I am not holding my breath. Apple's biggest enemy is the open standards web. It empowers developers, like me, to build rich, cross-platform user experiences they cannot control nor tax.
Its not time to celebrate just yet. We are waiting on both Chrome and FireFox to ship pointer event support in released versions. But we are seeing positive progress that means we are getting closer to seeing DeepTissuejs and Hammerjs become unnecessary. Unfortunately Apple is the biggest obstacle, they are the limiting browser, holding the web back.
Apple is not the only problem, but they did create the second problem, a proliferation of touch event support. This of course will be a problem going forward too. As was pointed out in some of the references, many developers are ignorant of Pointer Events.
We must also expend energy evangelizing Pointer Events to developers everywhere. Once they see them I am certain a large majority will want them. If we can create a wave of support the inertia should force Safari over to the good side and implement Pointer Events. By that time it should be easy because the Chrome team will have created them for the WebKit code base. Problem solved, but until then be sure to use DeepTissue and utilize Pointer Events!