株式会社ミツエーリンクスの渡邉卓です。昨年の「2011年のWeb標準」と同様、2012年もWebコンテンツのフロントエンド設計および実装に関連した各種標準や、周辺領域の動きに関する短期的な予測を寄稿させていただきます。
2012年のWeb標準については「DOM4の表面化」「より複雑化するCSS関連仕様」「PC向けとモバイル向けWebブラウザのさらなる乖離」「ECMAScriptの洗練、未知数のDart」をキーワードとして取りあげます。
DOM4の表面化
DOM4は、最新かつ策定中のDOM(Document Object Model)仕様です。従来のDOM関連仕様は、いくつもの文書にまたがっているうえ、内容も複雑になっていました。DOM4はそれらを1つの文書としてまとめ、内容を整理することを目的の1つとしています。
DOM4では、それまでのDOM関連仕様とは仕様書の目指すところ(設計思想など)が変更されています。これら変更点のうち、直近で最も影響があると考えられるのは「可能な限り簡素化する」ことです。
簡素化の内容は、おおむねHistoricalで整理されています。ここに列挙された機能は、旧仕様で定義されていたものの、DOM4では「定義されていない」ものです。つまり、Historicalに列挙された機能はWebブラウザから削除される可能性があります。
現に、Gecko(Firefoxなど)ではいくつかの機能が削除されました。例えばGecko 10(Firefox 10)以降ではisSameNode()
が利用できなくなります(他にも様々な機能が削除されました)。WebKit(Safari、Chromeなど)では削除には至っていないようですが、Historicalに列挙されたノードタイプを削除する提案がなされています。
こうした動きに対処する方法のひとつは、Historicalに列挙された機能を使わないことです。どの機能も代替案があるため、特殊なケースでなければ問題になることはないでしょう。しかし、プログラマの意図に反し、JavaScriptライブラリやフレームワークの内部でHistoricalに列挙された機能が使われている場合がありえます。比較的頻繁にバージョンアップされているものは、最新版での対応を期待することが可能です。要注意なのは長期間バージョンアップされていないJavaScriptライブラリやフレームワーク、案件・環境の都合でバージョンアップが不可能な事例です。
2012年は、DOM4のHistoricalに列挙された機能が削除される可能性を考慮しながら、プログラミングを行う必要がでてくるでしょう。また、いくつかのWebブラウザとWebサイトの組み合わせによっては、問題が発生する可能性を考慮することになるでしょう。
より複雑化するCSS関連仕様
CSSおよびCSSから派生した仕様(CSS関連仕様)は、拡大の一途を辿っています。次のリストは、W3Cの仕様一覧から抽出した、2011年に初めてWD(Working Draft)が公開されたCSS関連仕様の一覧です。
近年では、各仕様の更新も頻繁に行われています。2011年中に1回は更新がなされたWDは、12に及びます[1]。
こうした動きのなかで、以前の仕様とは互換性のない形に文法が変更されたものも出現してきています。直近では(Web標準Blogのエントリでも採り上げられましたが)、linear-gradient()
およびradial-gradient()
の引数仕様が変更された事例を挙げることができます。Geckoではlinear-gradient()
の仕様変更が10で反映される予定になっており、radial-gradient()
の仕様変更もパッチ作成中の段階に至っています。
2012年は、このようなケースが増えることも考えられるため、更新され続けるCSS関連仕様にさらなる注意を払うことが求められてくるでしょう。同時に、仕様変更によって変更が必要となるCSSファイルが出現しうるでしょう。
PC向けとモバイル向けWebブラウザのさらなる乖離
PC向けWebブラウザの更新頻度は、Firefox 6のリリースにより一旦安定をみました[2]。現在Google ChromeとMozilla Firefoxは約6週間ごとのメジャーバージョンアップが行われています。IEは9がリリースされ、IE8から9の時と同様、すぐにIE10の開発がスタートしました。Operaも順調にバージョンアップを重ねました。Apple Safariは以前と同様に、おおよそ1年周期でWebKitのリビジョンアップをともなうバージョンアップが行われました(5.1がリリースされました)。
対して、スマートフォン向けWebブラウザの更新状況は、2010年と2011年でさほど変化しませんでした。iOS 5、Android 3および4のリリースこそあったものの、昨年指摘した「スマートフォンごとのOSバージョン細分化」問題は依然として残されたままです。むしろ、特にAndroidのバージョンがより細分化されたぶん、問題はより深刻になったと考えることもできます。唯一の朗報は、モバイル版FirefoxとOpera Mobileは、PC向けと同じく順調にバージョンアップを重ねたことでしょうか。
2012年は、さらに細分化し続けるスマートフォン向けWebブラウザのバージョンと、どう向きあっていくかをより一層考える必要に迫られるでしょう。また、PC向けとスマートフォン向けで乖離してゆくWebブラウザのバージョン(と機能差)に対しても、頭を悩ませる場面が出てくることになるでしょう。
ECMAScriptの洗練、未知数のDart
2011年6月29日、ECMA-262 5.1 Edition(ECMAScript 5.1, ES5.1)仕様が策定されました。予定通りES5で発見された問題点を修正(Errataを反映)し、より完成度を高めた版に仕上がっています。各JavaScriptエンジンの実装も進みました。また、ECMAScript Harmony(ES-Harmony)として策定が進んでいる様々な次期ES向け機能が、SeaMonkeyやV8に試験実装されるなど、より活発な動きもみられました。
そんな中、GoogleによってECMAScript(JavaScript)を代替しうる新言語としてDartが発表されました。後にDart用VMが実装されたWebKitブランチの作成もアナウンスされています。
正直なところ、Dartの将来性は未知数です。現段階でDart用VMの実装予定があるWebブラウザはGoogle Chromeのみで、Mozilla、Opera、Appleのスタンスは不明瞭です。Microsoftは明確にDartを批判しているようです。
2012年は、よりES5.1の実装が完成に近づき、ES-Harmonyの仕様も洗練されていくことになるでしょう。Dartに関しては、少なくともすぐに対応せざるをえないような大きな動きはないでしょう。