新春特別企画

2011年のWeb標準

この記事を読むのに必要な時間:およそ 2 分

あけましておめでとうございます。株式会社ミツエーリンクスの渡邉卓です。昨年の2010年のWeb標準と同様,2011年もWebコンテンツのフロントエンド設計および実装に関連した各種標準や,周辺領域の動きに関する短期的な予測を寄稿させていただきます。

さて,2011年のWeb標準については「HTML5を採用したスマートフォン向けWebサイトの増加」「スマートフォンごとのOSバージョン細分化」「CSSレベル3モジュールのより積極的な利用」「CSS 2.1の勧告」「実用的なHTML5パーサの登場と普及」「JavaScriptエンジンの更なるECMAScript 5準拠とECMAScript 5.1」をキーワードとして取りあげます。

HTML5を採用したスマートフォン向けWebサイトの増加

2010年は,数多くのスマートフォンが発売された年になりました。iPhone 4の発売およびiOS4系の登場もさることながら,特にOSとしてAndroidを採用した機種が多く発売されたことが印象に残ります。携帯電話の事業者別契約数トップ3であるdocomo,au,SoftBankは,2010年中に少なくとも1機種はAndroid搭載端末を発売しました。

昨年の記事で,2010年中はよほど特別な理由がない限り,HTML5を採用する必要はないであろうと述べました。HTML5で新しく登場した要素や属性の濫用・誤用を懸念していたのです。

実際のところ,PC向けとは異なるスマートフォン専用の(X)HTML文書を提供しているWebサイトでは,マークアップ言語としてHTML5を採用している例をよく目にするように感じます。PC向けの(X)HTML文書でHTML5を採用しているWebサイトも増えてきていますが,スマートフォン向けWebサイトではこの傾向が顕著であるように思われます。

2010年以前にも,スマートフォンでの閲覧に特化した専用の体裁や(X)HTML文書を提供するWebサイトは登場していました。しかし,前述した情勢の変化に伴い,2011年はこの流れがさらに加速し,HTML5を採用したより多くのスマートフォン向けWebサイトが登場するのではないでしょうか。

とはいえ,video要素のコーデック問題やcanvas要素のレンダリングが実装ごとに異なる場合がある問題など,仕様・実装の両側面に問題点は残っています。これらはWebブラウザのアップデートによる解消が期待できますが,スマートフォンはPCとは少々異なる現状により,最新のWebブラウザになっていないことがあります。

スマートフォンごとのOSバージョン細分化

スマートフォンには,搭載OSのアップデートがどれだけ積極的に行われるか,という問題があります。iOSおよびAndroidは,比較的短期間で新バージョンが登場しています。

スマートフォン単体でのOSアップデートが可能(かつ自動的)ならば問題ないのですが,iOSはiTunesへの接続が必須ですし,Android端末に関してはその方法が統一されていない場合があります。最も致命的なのは,OSのアップデートそのものが提供されず,端末販売当初の古いバージョンがそのまま使われ続けてしまうパターンです。

現状,iOSおよびAndroidでは別のWebブラウザをインストールしない限り,システムとWebブラウザのバージョンが不可分の関係にあります。

スマートフォン利用者層が拡大するに伴い,作為・無作為を問わずOSアップデートを行わない利用者も増えてくると予想できます。すると同一のデバイスであっても異なるバージョンのOSが搭載され続けることがありえますし,現状,すでに発生しています。

Webブラウザに限りませんが,バグのないソフトウェアなどありません。たとえ新しいバージョンで修正されていたとしても,アップデートしていなければ意味がありません。また,各種Web標準仕様そのものが変更され,Webブラウザのバージョンが古いと追従しきれていない場合もありえます。

2011年は,細分化し続けるスマートフォン用OSとWebブラウザのバージョンに対し,どのような対応をとるか考えねばならない機会が多くなるのではないでしょうか。

CSSレベル3モジュールのより積極的な利用

2010年のうちに,CSSレベル3モジュールは例での利用に留まらず,実際のWebサイトで利用される機会が増えたように感じます。

特にスマートフォン向けWebサイトでは,IEのことを考えなくてもよかったり,デバイスや回線の制約によって画像やJavaScriptによる体裁の制御がレンダリングのパフォーマンスをはじめとした諸問題を引き起こすことがわかっているため,CSSレベル3モジュールを用いた体裁の制御を選択するケースが増えているのではないでしょうか。

2011年はより多くの,特にスマートフォン向けWebサイトでは,CSSレベル3モジュールを利用した体裁の定義が積極的に行われるでしょう。

CSS 2.1の勧告

昨年の記事で,CSS 2.1は2010年の勧告を目標としていると述べました。しかしながら2009年9月8日付の勧告候補が公開された後,様々な問題点が指摘・議論されるに至りました。

そうした問題点を修正した版として,2010年12月7日付のCSS 2.1の最終草案が公開されました。残念ながら2010年中に勧告までは到達しなかったものの,より安定した仕様になりました。Web標準Blogのエントリでも採り上げられましたが,勧告は2011年3月を目指しているようです。

実用的なHTML5パーサの登場と普及

HTML5仕様には,そのマークアップを解釈するパーサのアルゴリズムが記載されています。HTML5仕様は,従来の(X)HTML仕様との後方互換性を考慮したものになっていますが,HTML5文書を完全に解釈するためには,前述したアルゴリズムを実装した専用のパーサが必要になってくるのです。

すでに,比較的最新のWebKitを搭載したWebブラウザ(Safari 5,Google Chrome 8)では,HTML5パーサの基礎となる部分(全てではありません)が実装され,リリースされています。また,現状ベータ版であるFirefox 4についてもHTML5パーサの実装が行われています。IE9については,既存のパーサを改良する形で「HTML5仕様に適合しつつ,他ブラウザとの相互運用性を高めるようにする修正」加えたようです。Opera 11も,IE9と同様のアプローチをとっていると思われます。

Firefox 4正式版のリリース日は未定のままですし,IE9についても正式なアナウンスはありませんが,少なくとも2011年中にはリリースされるのではないでしょうか。

2011年中にはFirefox,Safari,Google Chromeの最新版すべてに(実装状況は異なるものの)HTML5パーサが搭載された状態となるでしょう。IE9,OperaはHTML5パーサそのものではないものの,HTML5仕様に準じた挙動をとる既存パーサの改良版になりそうです。これらの変更に伴い,より本格的なHTML5文書の増加が期待できるのではないでしょうか。

JavaScriptエンジンの更なるECMAScript 5準拠とECMAScript 5.1

ECMA-262 5th Edition(ECMAScript 5, ES5)仕様が策定されてから約1年が経ちました。各JavaScriptエンジンはそれぞれES5の実装に取り組みましたが,まだ全てを実装しきれてはいません。対応状況もまちまちですし,実装はされているものの仕様と異なっている項目も存在します。

しかしながら,着実に実装が進んでいるのは確かです。最も劇的に変化したのはIE9に搭載されているエンジンChakraでしょうか。決して完全な対応ではありませんが,キャッチーな比較対象としてよく用いられる全新規追加プロパティの実装を成し遂げました※1)。

前述のように,2011年にはFirefox 4とIE9がリリースされると思われます。まだPC向けWebサイトで利用するには時期尚早で,スマートフォン向けWebサイトで利用するには未実装の項目があるものの,ECMAScript 5仕様が意図したプログラミング手法を実験できる環境が整ってきたと考えれば,十分すぎるほど急速な変化ではないでしょうか。

また,ES5が登場した後に見つかった,仕様そのものの問題点を修正していこうという試みも始まっています。ECMAScript 5.1(ES5.1)と銘打たれたES5の改訂版が,最終ドラフト段階に入っているようです。ES5.1はES5で発見された問題点を修正(Errataを反映)し,より完成度を高めた版として位置づけられているようで,現時点で新規プロパティの追加ないし削除といった大きなトピックはありません。

ES5.1が2011年中に策定されるかどうかは不明ですが,各JavaScriptエンジンの実装に影響を与えることになりそうです。

※1
参照した表はあくまで目安であり,未チェック項目が圧倒的に多いため,比較としては不公平な側面がある点に注意してください。新規追加プロパティのチェックは,ES5における変更の一部分でしかありません。

著者プロフィール

渡邉卓(わたなべすぐる)

株式会社ミツエーリンクス R&D 本部所属のフロントエンド・エンジニア。Web サイト設計・実装,JavaScript プログラミングに従事。MJL (MITSUE-LINKS JavaScript Library) 設計・実装担当。

コメント

コメントの記入