touch-action

'touch-action' プロパティー (CSS)

仕様書

歴史

[1] Pointer Events ( 版) https://dvcs.w3.org/hg/pointerevents/raw-file/tip/pointerEvents.html#h-the-touch-action-css-property

pinch-zoom

[17] pinch-zoom はなぜか Compatibility Standard で規定されています。 >>15

[18] しかも Pointer Events 仕様書内には注釈で Compatibility Standard への参照があります。 >>16 それならそこで直接規定した方が自然なのに!

[19] pinch-zoom時点で既に EdgeHTML が実装していました。 >>5 同年中に Chrome も実装しました。 >>21

[22] 同じPointer Events への機能追加が提案され、 EdgeHTML に既に pinch-zoom が実装されていることから、 これをそのまま標準化 >>5 する改訂案も提出されていました >>20

[23] ところがこれは年末までに頓挫してしましました。 >>5 には将来の版に追加する予定もされていないと述べられています。 >>14

[24] その理由は Pointer Events を開発する W3C PEWG憲章外であるためとされます。 >>14 しかし憲章外なら次の憲章改正のタイミングで拡張すればいいのですし、 重要度が高いならすぐにでも手続きを取るべきでしょう。 その予定がまだ立てられていないだけで、 将来の予定がないからといって今後なされないとは限らない、 というのが正確な読みではあるのですが、 今後もなされないだろうという悲観的な予測がどことなく読み取れます。 実際に時点でも未だその動きは無いまま止まっています。

[25] 当時の議論 >>5 を読むと、提案から頓挫まで何があったのか完全には記述されていないものの、 いくらかそのニュアンスは受け取れるように感じられます。それは、 pinch-zoom憲章外であるから Pointer Events に追加するのは望ましくないという反対意見があったのだということです。 提案側はこのくらいは憲章の範疇に収まり得ると抵抗したものの、 関係する企業の政治的な交渉においてそれは認められなかったのだと予想されます。

[26] 憲章の範疇にあるかないかで仕様書に入れる入れないが決まるのはなんとも官僚主義的で、 W3C標準化団体としての硬直した組織体制が表れているようにも思われますが、 この件はそれだけではなさそうです。 W3C標準化手続きにおいて、 憲章の内外如何は特許ポリシーに関わる重要な問題です。 参加企業の知的財産部門はそれに基づき自社の保有する特許W3C特許ポリシーに基づき開示、利用許諾するかなどを判断することになります。 Pointer Events が他の DOM 関連仕様等と別の WG に管掌されているのも、タッチ入力等の特許的にセンシティブな領域を扱うことが 1つの重要な要因となっています。スマートフォン関連企業等にとって、 この領域は経営戦略的に重要なのです。

[27] 従って、現場の技術者が相互運用性のため標準化に供したいと考えるかどうかと無関係に、 その所属企業がそれを歓迎するかどうか、高度に政治的な取引が展開されることになります。 しかしその詳細が外部に開示されることはなく、我々部外者は限られた情報のかけらを拾い集めて邪推するしかありません。

[28] ではなぜ Compatibility Standard で規定することでそれを回避できたのか、 ですが、当時の WHATWG は明確な特許ポリシーが設けられておらず、 各社の知的財産権部門の監視の枠外にあったと推察されます。 WHATWG はその元々の設立動機も含め、政治的に他の標準化団体に受け入れられない Web標準規格の受け皿となってきました。 Compatibility Standard もまさにそのような技術の寄せ集めの仕様書です。

[29] ただその WHATWG も紆余曲折を経ての改組などで、 厳格な特許ポリシーの元で明確な手続きを経て機能追加を受け取るスタイルに変化してきています。 今後 W3C で同じような問題が発生した際に WHATWG が受け皿をなり得るのか、 WHATWG で同じような問題が発生しないのか、は注視が必要でしょう。

[3] Touch Action Options  |  Web  |  Google Developers () https://developers.google.com/web/updates/2016/10/touch-action

[6] Making touch scrolling fast by default  |  Web  |  Google Developers () https://developers.google.com/web/updates/2017/01/scrolling-intervention

[7] Add notes about touch-action and direct/indirect manipulation and sty… (patrickhlauke著, ) https://github.com/w3c/pointerevents/commit/b025e8b6bc058cad57855d9ef03248f11d867a82

[8] Clarified the touch-action values for transformed elements (mustaqahmed著, ) https://github.com/w3c/pointerevents/commit/bbbc83d5ca22ade541896c9b363984e4f9d1a257

[9] Revert "Clarified the touch-action values for transformed elements" (#… (patrickhlauke著, ) https://github.com/w3c/pointerevents/commit/376147c64c131ce49385bfa239e947f74b43002f

[10] Clarified the touch-action values for transformed elements. (mustaqahmed著, ) https://github.com/w3c/pointerevents/commit/a3cfab7afdfa9252f9fec11bc912f542aeaaf62a

[11] Move single directional touch-action values to the extension spec (#238) (NavidZ著, ) https://github.com/w3c/pointerevents/commit/17647a38cf3dac4d200953417f27202de5f2febd

[12] Add direction-specific touch-action pan values by RByers · Pull Request #13 · w3c/pointerevents () https://github.com/w3c/pointerevents/pull/13

[13] Move single directional touch-action values to the extension spec by NavidZ · Pull Request #238 · w3c/pointerevents () https://github.com/w3c/pointerevents/pull/238