株式会社ミツエーリンクスの渡邉卓です。昨年の「2014年のWeb標準」と同様に、2015年もWebコンテンツのフロントエンド設計および実装に関連した各種標準や、周辺領域の動きに関する短期的な予測を寄稿させていただきます。
2015年のWeb標準については「より広範なHTML5仕様の一般化・HTML5.1仕様の利用増加」「ECMAScript 6仕様の利用増加」「IE7・IE8 未サポートWebサイト増加」をキーワードとして取りあげます。
より広範なHTML5仕様の一般化・HTML5.1仕様の利用増加
2014年10月28日、ついにHTML5がW3C勧告 (Recommendation) となりました。すでに多方面で利用されているHTML5仕様ですが、勧告になったことで、今まで利用を躊躇していた方々にも確実に浸透していくと予想できます。詳細は後述しますが、現役のWebブラウザでありながらHTML5にて新規追加された要素を(ハックなしでは)描画できない、IE7ならびにIE8のサポートが2016年1月に終了します。よって、「仕様が不安定だ」「Webブラウザ側が対応していない」といった消極的なHTML5不採用理由は通用しなくなります。ただし、CMSなどのサーバ側システムが、HTML5未サポートであるために不採用となる事例はしばらく残るでしょう。
HTML5勧告の次には、HTML5.1勧告が控えています。HTML5.1では、HTML5では定義しきれなかった(間にあわなかった)仕様の追加・変更が行われます。追加・変更点は、要素(例:picture)、属性(例:srcset)、属性値(例:input要素のtype属性におけるdatetime属性値)、DOM 定義(例:DOMElementMap)、各種アルゴリズム(パース仕様を含む)など、広範囲に及びます。
今のところ、HTML5.1仕様の策定スケジュールについて公式に言及されている資料は、2014年の計画(と同様の内容が記述されているHTML WGのトップページ)しかありません。そのため、スケジュールに変更がなければ、HTML5.1仕様は2016年後半(第4クォーター)にW3C勧告となります。
ところが、TPAC 2014において、HTML仕様の策定手法に関する重大な提案が発表されました。HTML Modularisationです。HTML Modularisationの内容を(少々乱暴ではありますが)要約すると、「現時点におけるCSS関連仕様のようにHTML仕様を細分化(モジュール化)し、それぞれ別スケジュールで管理する仕様策定手法の提案」になります。もし、この手法をHTML5.1に適用する……ということになれば、前述したスケジュールはすべて白紙に戻る可能性があります。
HTML ModularisationがHTML5.1仕様の策定手法として採用されるか否かは、まだわかっていません。ただ、現時点において、HTML ModularisationはHTML5.1仕様の策定手法に採用されていません。前述した仕様の追加・変更も着実に進んでおり、Webブラウザ側の実装も出てきつつあります。また、もし仮にHTML ModularisationがHTML5.1仕様の策定手法として採用されたとしても、追加・変更された仕様そのものが変化するわけではありません。つまり、2015年中はHTML ModularisationとHTML5.1仕様の関係性に注目しておく必要こそあるものの、実際に追加・変更された仕様を利用するぶんには、特に何かを意識する必要はないということです。
2015年は、2014年に勧告となったHTML5が、より広範な領域で、積極的かつ一般的に利用されていくこととなるでしょう。また、HTML5.1仕様のPolyfillはより洗練され、Webブラウザ側のネイティブ実装も着実に進んでいることから、実際にHTML5.1仕様(の一部)を用いたWebサイトが出現することになるでしょう。
ECMAScript 6仕様の利用増加
現在、ECMAScript 6 (ECMA-262 6th Edition, ES6)仕様は策定中であり、確定するスケジュールも不明のままです。しかし、一部の仕様はすでにWebブラウザ側で実装されていたり、Polyfillが存在しています(もっとも広範に利用されているもののひとつは、Promiseオブジェクトでしょう)。
2014年は、部分的なPolyfillではない、ES6仕様で書かれたコードをECMAScript 5.1 (ECMA-262 5.1 Edition, ES5.1)仕様に変換するコンパイラが急速に発達した年でもありました。Traceurや6to5のコミットログを読むと、2014年がどれほど重要な年であったかがわかります。詳細は後述しますが、ES5.1未サポートWebブラウザ(IE8以下)が早々に退場することが発表されていることも、こうしたES6→ES5コンパイラの開発速度に拍車をかけているのではないでしょうか。
このように、ES6仕様は未だ策定中にもかかわらず、ほとんどの仕様が手軽に利用できる状態です。一部の仕様に至っては、Polyfillならびにネイティブ実装が、実案件・プロジェクトで実用してもまったく問題がないほどに安定し、洗練されています。
2015年は、2014年以上にES6仕様が実案件・プロジェクトで利用されることになるでしょう。
IE7・IE8 未サポートWebサイト増加
2014年4月9日、予告どおりInternet Explorer(IE) 6のサポートが終了しました。約13年に及びサポートされ続けたWebブラウザという、様々な意味で時代を象徴した存在が終焉を迎えたのです。
ただし、2014年にも指摘したとおり、IE6のサポートが終了しても、IE7・IE8が残る限り、JavaScriptおよびDOMに関しては、進歩が期待できません。
ところが、まだIE6サポート終了の余韻が残る2014年8月7日、Microsoftは重大な告知を行いました。それは、非常にかいつまんでいえば「IE7、IE8、IE10のサポートを、2016年1月12日に終了する」という宣言でした。厳密には、「IEのサポートバージョンは、通常・延長サポート中の各Winodows OSにおいて利用できる、最新バージョンに限定する」よう、サポートポリシーが変更されたのです(2015年1月1日時点で、Windows VistaはIE9、Windows 7以降はIE11が最新)。これは、OSのサポートポリシーとIEのサポートポリシーが、ほぼ完全に分離したことを意味します。
このサポートポリシー変更により、IE7、IE8、IE10の余命は大幅に短縮されました。2015年以降、特にIE7・IE8に対応したWebサイトを構築する理由は、大部分が消失した……といっても過言ではありません。
結果的にIE9がIEの最低バージョンとなることで、技術者は次の恩恵を得ることができます:
- HTML5で新規追加された要素の、ハックに頼らない利用
- 比較的新しいCSS仕様のサポート
- ECMAScript 5.1仕様のサポート
- IE独自DOM利用コードの除去
- 他多数
2015年は、2016年1月12日にIE7、IE8、IE10のサポートが終了することから、IE9以降に対応し、IE8以下をサポートしないWebサイトが、急速に増えていくこととなるでしょう。