2015年03月12日

AppleとGoogleがW3C標準を破る?

本日の記事はこちら。

Apple And Google Break W3C Standards
(AppleとGoogleがW3C標準を破る)

以前と比べればWeb標準に対するブラウザの準拠度も飛躍的に向上して、開発者もブラウザごとの挙動の違いに悩まされる回数がだいぶ減ったなぁと認識できるようになった(なくなったとは言ってない)昨今ですが、一部の仕様ではブラウザの対応が分かれる事象もしばしば報告されています。Video Codecとか。

そうした対応の違いがまた発生したというお話。

問題になっている仕様

問題になっているのがPointer Eventsです。

参考 : W3CのPointer EventsのTechnical Reports

マウスタッチパッドなど、様々なポインティングデバイスが使われるようになった現在ですが、それらのデバイスのイベントを共通化してしまえばデベロッパは楽になるよね、というのがPointer Enventsの狙いです。

これとは別にタッチパッド用のイベント処理としてTouch Eventsという規格も存在します。これはタッチパッド用の仕様で、touchstarttouchendtouchmoveなどのタッチイベントを取得できます。こちらはiOS Safari、Android Chrome、Android Firefox、Windows Phone IEなどで既に実装されています。

しかしPointer Enventsの方はAppleに受け入れられず、Googleも問題があるとしてサポートを保留しています。

The problem is that Apple won't and Google probably won't unless Apple changes its mind.

Appleはサポートしないでしょう。そしてGoogleもおそらく、Appleが態度を変えない限りはサポートすることはないでしょう。

どこが問題か

下記の資料にGoogleの見解がまとめられています。

Touch events vs. Pointer events in Blink

一部抜粋してみます。

Developers want to be able to use the same code for multiple input devices.
(デベロッパ的には、違うインプットデバイスであっても同じコードが動かせるようになって欲しい)

Two years ago it was very attractive
(2年前はその提案(Pointer Events)は非常に魅力的だった)

Doesn’t fit well with our current priorities
(でも、今は状況が変わった)

Mobile First
(モバイルの優先度がPCより上になったんだ。)

As rich as native mobile platforms
(ブラウザはネイティブモバイルアプリ並にリッチな機能を提供しなければならない)

共通化する為にタッチイベントで可能ないくつかのイベントを削ぎ落としてしまっているPointer Eventsは、モバイルが主流になっている現在の市場には合わないという主張のようです。

Pinter Eventsの仕様はMicrosoftが中心になって決めてきましたが、WindowsPhoneがあるとはいえPCがメインであるMicrosoftと、iOSやAndroidでモバイルを主戦場にしているAppleやGoogleとでは、方向性にズレが出るのは当然のことと言えるでしょう。

実装はしない代わりに、Googleは開発していたPointer Events用のライブラリPolyfillをjQueryのコミュニティに提供しています。

jQuery Takes Over the Pointer Events Polyfill from Google
(jQueryはPinter Events PolyfillをGoogleから引き継いだ)

PollyfillはChrome、Safariにも対応を目指しているので、AppleとGoogleがブラウザに実装しなかったとしても、JavaScriptライブラリの力によってPointer Eventsがお蔵入りすることは避けることができるかもしれません。

タグ:HTML web w3c
posted by newsit at 07:00| web