株式会社ミツエーリンクスの渡邉卓です。昨年の「2015年のWeb標準」と同様に、2016年もWebコンテンツのフロントエンド設計および実装に関連した各種標準や、周辺領域の動きに関する短期的な予測を寄稿させていただきます。
2016年のWeb標準については「ECMAScript 2015」「ECMAScript新版の登場 - ECMAScript策定制度変更と年次リリースへの移行」「DOM4 勧告」「Mozilla FirefoxからNPAPIプラグインのサポートが削除予定 - Adobe Flashはサポート継続」「IE7、IE8のサポート終了」をキーワードとして取りあげます。
ECMAScript 2015
2015年6月17日、ECMAScript 2015 Language Specification 6th edition(ES2015, ES6)の策定が完了しました。既存の仕様が維持されている一方、新しい仕様が大幅に追加され、非常に長大な文書となっています。Webブラウザ(JavaScriptインタプリタ)側の実装も、徐々に行われつつあります。BabelなどのコンパイラやESLintなどのリンター(linter)もES2015対応を進め、この1年で長足の進歩を遂げました。他にも、ES2015仕様の一部を実現するための、様々なPolyfillが存在しています。
2016年は、仕様策定が完了したこともあり、これまで以上にES2015で追加された仕様を利用する機会が増えていくことになるでしょう。
ECMAScript新版の登場 - ECMAScript策定制度変更と年次リリースへの移行
そして早くも、次のECMAScript仕様を策定する話が浮上しています。
まず、仕様はGitHubで管理されるようになりました。このことで、TC39(ECMAScript の作業部会)メンバーでなくとも、今までより議論に参加しやすくなりました。
次に、ECMAScript仕様の策定プロセスが変化しました。変化の一つに、「毎年3月と9月にECMA総会の承認を得るための新版を提出できる」ようになったことがあります。
ES2015仕様を策定するうえでリーダーとなったAllen Wirfs-Brock氏はインタビューで、今後2~3年のうちは1年ごとにECMAScriptの新版をリリースしていく旨の発言をしています。Axel Rauschmayer氏もBlogの投稿にて、1年に1回は新版をリリースする体制になった旨を述べています。
まとめると、これから数年の間は、年に1回ECMAScriptの新版がリリースされる予定になるようです。
しかしながら、新版が出るとはいえ、内容が大きく変化することはなさそうです。
新しい策定プロセスでは、Stage 0からStage 4という「ステージ」を決め、期限内にStage 4に至った提案(新仕様)のみ新版に盛り込んでいく旨が定義されています。Stage 0として仕様を提案するのは簡単になりました。しかし、そこからStage 4へ至るには相応の工程を経なければならず、決して容易な道のりではありません。この工程を完了した仕様のみ新版に盛り込むことによって、安易な仕様追加・削除を制御・抑制するのが狙いのようです。新仕様の提案と、それらがおかれているステージの一覧は、公式のREADMEとStage 0の一覧で確認できます。
却下とその反映も、スピーディに行われるようになりました。例えば、Object.observe() はStage 2まで進んでいましたが、提案者の1人であるAdam Klein氏らによって自主的に却下されました。この却下の提案・承認から短期間で、GitHub上のREADME.mdからObject.observe()の記載が削除されました。
2016年は、ECMAScript仕様の策定プロセスが変更されたことにより、細かな修正と新仕様が盛り込まれた新版がリリースされる予定です。また、これから数年の間、年に1回はECMAScriptの新版がリリースされる予定であり、今後の動向とブラウザ側の実装状況にも注意を払う必要があるでしょう。
DOM4 勧告
2015年11月19日、ついにDOM4がW3C勧告となりました。この事実は、DOM4が仕様としても実装としても安定した状態にあることを意味します。また、未実装の機能も各ブラウザで実装が加速することが予想されます。
Historicalに列挙された機能は、すでに最新のWebブラウザでは使えなくなっているか、警告がでるか、削除が予定されているものとして扱う必要があります。2012年にも言及しましたが、Historicalに列挙された機能は使わないようにしましょう。同様に、古いJavaScriptライブラリやフレームワークの内部で使われている、Historicalに列挙された機能が問題を引き起こすことが予想されます。
2016年は、DOM4のHistoricalに列挙された機能を使わず、十分に注意しながらプログラミングを行う必要がでてくるでしょう。また、古いJavaScriptライブラリやフレームワークを使ったWebサイトでは、問題が出る可能性を考慮することも必要になってくるでしょう。
Mozilla FirefoxからNPAPIプラグインのサポートが削除予定 - Adobe Flashはサポート継続
ついにMozilla FirefoxからNPAPIプラグインのサポートが削除される予定となりました。Benjamin Smedberg氏は、Mozilla公式であるFuture Releases Blogの投稿で、2016年末までにNPAPIプラグインのサポートを削除する予定であることを発表しました。この決定には、Google ChromeとMicrosoft Edgeの動向が反映されています。前述した2ブラウザは、どちらもNPAPIとActiveXのサポートを終了しています。
例外としてAdobe Flashのサポートは継続されるため、Adobe Flashを利用したサイトに影響はありません。
ただし、JavaやMicrosoft Silverlightといった、他のNPAPIプラグインはすべて影響を受けます。
ここで気になるのはApple Safariの動向ですが、現在NPAPIプラグインのサポートをどうするか、公式に言及はありません。Apple SafariもNPAPIプラグインのサポートを削除するか、それとも存続させるか……いずれにせよ、今後の動向に注意が必要です。
2016年は、Mozilla FirefoxからNPAPIプラグインのサポートが削除される予定となったことで、Adobe Flashを除くすべてのNPAPIプラグインが何らかの方向転換を迫られる事態となるでしょう。
IE7、IE8のサポート終了
2015年にも言及しましたが、IE7、IE8のサポートは、2016年1月12日に終了します。IEのサポートバージョンが、通常・延長サポート中の各Windows OSにおいて利用できる最新バージョンに限定される(日本語訳)ようにサポートポリシーが変更されたためです。
この事実はMicrosoft自身が度々告知しており、公式のカウントダウンサイトも作成されました。日本のIPA(独立行政法人情報処理推進機構)も注意喚起の形式でIEのバージョンアップを推奨しています。
2016年以降は、もはやIE7, IE8のサポートを行う必要性がなくなります。また、IE10はサーバー用OSであるWindows Server 2012でのみサポートされるため、一般的なWindows PCからは消失します。さらにはMicrosoft Edgeの登場により、Windows 10以降では一般ユーザにも常に最新の仕様へ追従してもらいやすくなりました。
そんな中、IE9を擁するWindows Vistaの延長サポート終了日も刻々と近づいてきています。Windows Vistaの延長サポート終了日は、2017年4月11日です。Webサイトのリリース時期によっては、IE9のサポートを除外する動きが出てくることになるでしょう。
2016年は、1月12日にIE7、IE8のサポートが終了することから、IE9以降に対応し、IE8以下をサポートしないWebサイトが、ますます増えていくことになるでしょう。また、Windows Vistaの延長サポート終了日が近づいていることに伴い、IE9もサポートしないWebサイトが出始めてくることになるでしょう。