Microsoft offers patches to WebKit to aid touch compatibility

Google, Mozilla, and Opera are on-board. Apple? Not so much.

In a move that has raised eyebrows, Microsoft has submitted a patch to the WebKit project to extend the open source rendering engine with a prototype implementation of the Pointer Events specification that the company is also working on together with Google, Mozilla, and Opera. WebKit is the rendering engine used in Apple's Safari and Google's Chrome browsers, making Microsoft's work a contribution to products that are in direct competition to its own.

The patch came from Microsoft Open Technologies, a subsidiary company that Microsoft created in April to serve as a home for all of Microsoft's work and relationships with open source projects and development of open standards.

Pointer Events is a draft specification that provides a unified event model for multi-touch, pen, and mouse input. It's the World Wide Web Consortium's (W3C) second attempt at a standard for handling touch input. The first specification, Touch Events, has been essentially abandoned. Touch Events were modeled on the proprietary touch API that Apple added to Safari for the iPhone. However, the specification was written without Apple's involvement, and the Cupertino company refuses to commit to disclosure and royalty-free licensing of any patented technology that might cover the Touch Events spec.

This blocked further development of Touch Events, and led to Microsoft proposing the new Pointer Events spec. Microsoft, unlike Apple, is participating in W3C's standardization process and has made the intellectual property commitments that W3C demands. Representatives from Google, Firefox developer Mozilla, and Opera, along with Nokia, Zynga, jQuery, and the Korea Advanced Institute of Science and Technology, are all working with Microsoft to refine and improve Pointer Events. As with Touch Events, Apple is deciding not to get involved.

The contribution comes not long after Redmond encouraged Web developers to remember Internet Explorer and not assume that WebKit is the only rendering engine that's used on the mobile, touch-oriented Web. At the moment, touch-driven Web content is leaving Internet Explorer 10 (and hence Windows 8 and Windows Phone 8) behind, because it is being written for WebKit and Touch Events, and WebKit and Touch Events alone.

Google developers expressed interest in adding Pointer Events support to WebKit in November citing both compatibility with Internet Explorer, and the IP problems with Touch Events as reasons to do so. However, the response from one of Apple's WebKit developers was negative; the developer claimed that the Pointer Events spec had (unspecified) problems and that there was no point in supporting Pointer Events until real Web content used it. Another Google developer invited Apple to join the Pointer Events Working Group to help improve the specification and address those unspecified problems, but thus far Apple appears to be unwilling to participate.

With Google's WebKit developers open to the use of Pointer Events, it's likely that WebKit will, at some point, gain support for the spec. Microsoft's contribution could well help speed this process along. Firefox and Opera are likely to implement the spec too, given their involvement with the standard. Should this happen, the ball will be squarely in Apple's court: it can either support actively-developed, royalty-free, interoperable Web standards, or it can stick with Touch Events and ignore the work being done.

Yawn... touch works in Safari on iPad, iPhone, etc. Who cares about touch on Windows anyway?

It matters to those who do not live in their mother's basement.

Always remember the mantra of the Internet Fanboy: Standards should only be used to bludgeon Microsoft. If Microsoft supports a standard, it should be ignored and actively subverted. Standards are only meaningful if they can hurt Microsoft.

I think the move is motivated by the same thing that is making Microsoft put Office on iOS and Android. It's always been about keeping the users on the Microsoft stack somehow. First Windows, then Office and IE and now their cloud services. Is it possible that we're really seeing Microsoft transition to a Cloud Services, then Windows, then Office company? Will this be what Microsoft looks like in 5- 10 years? If that is the case then making sure that any device running any OS can effectively work with Microsoft "technology" is in their best interest. That it makes Apple look like the new 1990's Microsoft is a nice added benefit.

More and more I am beginning to think it is about the cloud connected user experience and much less about PCs, tablets, phones and browsers. The latter is just the experience delivery mechanism.

After over a decade of solid hatred for Internet Explorer, Microsoft has figured out that making a browser that works differently from everyone else's browser is not a viable strategy, no matter how much marketshare you command. Hopefully, Apple will not make iOS Safari the IE6 of touch browsers.

I'm not really sure about the significance of this but I'm hoping somebody here can answer my question.

One of my major gripes about Windows on a touch interface and about Android is that those mouse-over menus (like for instance "Explore", or "Shop", on verizonwireless.com) do not register as I would expect with a touch. Instead of displaying the mouse-over menu that would come up once the mouse comes over the menu on a regular computer, there seems to be no non-glitchy way to actually call on that mouse-over menu with either Android or Windows on a touch interface - tapping it once goes directly to the website the button leads to. The iOS devices handle this as I would intuitively expect - one tap shows the mouse-over menu, another tap on the same button takes you to the webpage that it leads to.

Would this patch allow Android and Windows on a touch interface to account of mouse-over events in a more intuitive fashion?

I dunno what it is, maybe the money Microsoft used to help prop Apple up all those years ago. But the more I look at Apple and their actions today, the more I'm reminded of Microsoft before the antitrust fiasco. It's good to see that Microsoft is playing nice when it comes to Open Source and their commitment to it, however forced it was.

I wonder if this is about giving up control of touch patents that Apple has.Anything that goes into a standard has to be available to others on FRAND terms.

I've heard some people from MS say more or less this (in a rather cagey, legally ambiguous way of course).

That said, the pointer events spec is WAY better than the touch events spec. I first saw a demo of it at Fluent conf earlier this year and I have to say the spec really blew me away! The touch events spec gives you touch start, move, end, and cancel, along with the positions of the user's fingers. It's more or less just raw data. If you want to, say, check if the user did a pinch gesture, then you have to write your own gesture recognizer (which I had to do for my work...it wasn't fun), or use a library.

The pointer events spec, however, includes a lot more information, including things like velocity and aggregate transform (translation, scale, rotation, etc). By allowing the OS to calculate these things in native code, you get much better performance, plus you don't have to worry about the quality of your code/library.

I'm very excited about this news because I REALLY want to start using this API now. I've been holding off though due to IE10 Mobile's limited market share. Hopefully that will change and I can start playing

I wonder if this is about giving up control of touch patents that Apple has.Anything that goes into a standard has to be available to others on FRAND terms.

This is incorrect, just FYI. While FRAND licensing has been associated with standards bodies in the news lately, a standards group can pick any licensing terms they want to require from their members, or they can have no requirements at all.

As Peter mentioned in the article, the W3C charter requires all companies involved in a W3C working group for a spec to disclose the patents they have that would be involved by anyone implementing that spec and offer them royalty-free for anyone to use.

I wonder if this is about giving up control of touch patents that Apple has.Anything that goes into a standard has to be available to others on FRAND terms.

This is incorrect, just FYI. While FRAND licensing has been associated with standards bodies in the news lately, a standards group can pick any licensing terms they want to require from their members, or they can have no requirements at all.

As Peter mentioned in the article, the W3C charter requires all companies involved in a W3C working group for a spec to disclose the patents they have that would be involved by anyone implementing that spec and offer them royalty-free for anyone to use.

MrMalthus is right, now that I think about it. Good catch. The W3C is actually stricter than, say, MPEG-LA, in that companies can't even license their patents under FRAND terms...they must license them royalty-free (it's possible to get an exception technically speaking, but it's supposedly almost impossible). It's like comparing the Apache license to the GPL license, in a way.

The premise of the specification is that using mouse event and touch eventsinterchangeably is needed. In reality, nobody was really asking for thatbecause it is a terrible idea. You can already easily unify pen, touch andmouse by writing very little JavaScript, but it is only useful in very fewcases.

For the common case, where you want to use touch and mouse eventsdifferently, the pointer events makes it harder to write correct code. Eachevent have a set of attributes with different meaning depending on theevent type.

Interesting. Sounds like the mixture of desktop and tablet that is Surface.

The premise of the specification is that using mouse event and touch eventsinterchangeably is needed. In reality, nobody was really asking for thatbecause it is a terrible idea. You can already easily unify pen, touch andmouse by writing very little JavaScript, but it is only useful in very fewcases.

For the common case, where you want to use touch and mouse eventsdifferently, the pointer events makes it harder to write correct code. Eachevent have a set of attributes with different meaning depending on theevent type.

Interesting. Sounds like the mixture of desktop and tablet that is Surface.

The thing is, what the Apple guy says isn't really true. While you don't want everything treated the same, you typically do want, for example, clicks and taps to do the same thing. Pointer Events do that.

I'm not really sure about the significance of this but I'm hoping somebody here can answer my question.

One of my major gripes about Windows on a touch interface and about Android is that those mouse-over menus (like for instance "Explore", or "Shop", on verizonwireless.com) do not register as I would expect with a touch. Instead of displaying the mouse-over menu that would come up once the mouse comes over the menu on a regular computer, there seems to be no non-glitchy way to actually call on that mouse-over menu with either Android or Windows on a touch interface - tapping it once goes directly to the website the button leads to. The iOS devices handle this as I would intuitively expect - one tap shows the mouse-over menu, another tap on the same button takes you to the webpage that it leads to.

Would this patch allow Android and Windows on a touch interface to account of mouse-over events in a more intuitive fashion?

The whole problem here is more related to website design or "touch-agnostic" web design.

The way iOS handles this site isn't really intuitive either. It seems intuitive because you know there is mouse-over menu here. it's a choice (some would say a hack) they made so that touch-agnostic sites become more usable with touch. but it's not a standard.

actually, "mouse-over" isn't something a touch device can do so, in a perfect world, the web site shouldn't be (or react) the same when viewed from a touch device.

It should be up to the web designer to decide what a tap on the 'explore' button do: popup a menu or jump to another page, or perform a 2-tap behavior like you described. It should not be up to the device to decide that.

meanwhile, if you want a touch-agnostic website then don't put mouse-over UI elements in it.

As a total apple geek I can say that Microsoft hopping on board where Apple isn't with standards is reversing the table in a lot of ways. Microsoft's recent work with IE has made me like them a lot more. The times they are a changin'

Basing everything around WebKit is not the same as creating standards, we just end up with the IE6 problem all over again, except this time with Apple at the helm. Ugh, I hate when companies only care about their own platforms to the detriment of everyone else.

the developer claimed that the Pointer Events spec had (unspecified) problems

No, the linked post claims that it has real and very specified problems, mainly:

Quote:

The premise of the specification is that using mouse event and touch eventsinterchangeably is needed. In reality, nobody was really asking for thatbecause it is a terrible idea. You can already easily unify pen, touch andmouse by writing very little JavaScript, but it is only useful in very fewcases.

Now, you may disagree with his standpoint here, but you can't call it unspecified. Apple doesn't feel that treating touch input like a pointer is where they want to go, and since the standard is going in that direction, they're not joining.

I'm not a huge Microsoft fan. In fact, I complain loudly and often about some of their decisions. However, it is really nice to see them work with competitors on advancing a standard. Perhaps at least some parts of the company have decided that competition on the merits of the product is much better than forcing their own way.

I can only hope this isn't some reaction because of their low market share in mobile, but even if it is, I'm very glad to see the move.

hope this helps Chrome and Firefox. IE10 is awesome for touch. Firefox is decent but it's really slow (you do a pinch to zoom and it takes like half a second to respond) and laggy. And Chrome has zero support for touch.

I know I'm trolling, but I can't help it. I can't wait for April 2014 when all those millions of computers in China running pirated versions of Windows XP end up installing Ubuntu or the like. They just lost Active Directory (Samba 4.0) only Office and Exchange are propping them up.

I still don't just MOT. We'll see where this goes, but I know it wasn't born out of kindness.

Next time use more facts instead of "facts" that were true 10 years ago but seem quaint and dated now.

Next time use more facts instead of "facts" that were true 10 years ago but seem quaint and dated now.

Or better yet: Don't troll.

10 years ago MS was an unstoppable force who opposed Open Source and sought to bury it. They ruled servers and desktops and the world was bound to ActiveX. It was also one of the highest valued stocks on earth. I do apologize for trolling but what I said is current FACT. What you've said is motivated by what I don't know, but not the truth.

Utopia, give it a break already. Or better yet: don't deny the opportunity for redemption to those who ask for it. I'm pretty sure you have had this opportunity multiple times.

I know I'm trolling, but I can't help it. I can't wait for April 2014 when all those millions of computers in China running pirated versions of Windows XP end up installing Ubuntu or the like. They just lost Active Directory (Samba 4.0) only Office and Exchange are propping them up.

I still don't just MOT. We'll see where this goes, but I know it wasn't born out of kindness.

As much as we may hate the effects Microsofts actions had on the computer industry, standards and open source software. Ignoring some other company which might be doing the same thing makes no sense.

It could be that Apple is thinking that pointer events is the wrong way to deal with touch-based websites, maybe they think that touch-only websites should be developed entirely separate from mouse-driven or pen-based websites? Although the gesture stuff with pointer events seems really nice!

I'm not really sure about the significance of this but I'm hoping somebody here can answer my question.

One of my major gripes about Windows on a touch interface and about Android is that those mouse-over menus (like for instance "Explore", or "Shop", on verizonwireless.com) do not register as I would expect with a touch. Instead of displaying the mouse-over menu that would come up once the mouse comes over the menu on a regular computer, there seems to be no non-glitchy way to actually call on that mouse-over menu with either Android or Windows on a touch interface - tapping it once goes directly to the website the button leads to. The iOS devices handle this as I would intuitively expect - one tap shows the mouse-over menu, another tap on the same button takes you to the webpage that it leads to.

Would this patch allow Android and Windows on a touch interface to account of mouse-over events in a more intuitive fashion?

That particular example is just a consequence of poor design. Mouseover events on websites should be avoided nowadays since it's impossible for touch users to trigger them. I always take care on my websites that any dropdown menus are accessed by clicks, not mouseovers. This suits both mouse and touch users perfectly.

Turning this into the evergreen ideological debate "good vs. evil" is pointless and wrong. A standardized specification should be 100% useful for it's defined as "standard", and the Apple developer has raised concerns about the idea of treating touch and mouse inputs in the same way: this is a very specific matter, and the adoption of this unified way of treating inputs should be backed by many practical cases in which this need is found, and even there the specification shouldn't make the other way around harder to implement. My personal idea is that different inputs need different behavior in most cases, but as a developer I will accept the standards that come to be, and try to make the most out of them: I'm just hoping that Microsoft doesn't push Google and Mozilla to adopt a "standard" just because it's obsessed with the idea of unified interface for that idea, which should be fine in theory, has proven wrong in practice, and Win 8 is a proof of that.