2008.11.27

WDEレポートあとがき - Progressive Enhancementについて

イメージ:WDEレポートあとがき - Progressive Enhancementについて

一歩先のWeb標準 ♯19
ゆう(我的春秋)

バックナンバー

先日、Web Directions East 2008(以下、WDE)のカンファレンスに参加してきました。詳細はカンファレンスレポートの方をご覧いただくとして、今日はそれを補完するような話題を取り上げてみたいと思います。

今回のWDEカンファレンスセッションでは、2つの共通点を見出すことができました。ひとつはJavaScript(Ajax)、Canvas、SVG、HTML 5、CSS 3など、RIA(リッチ インターネット アプリケーション)に関わるような話題が多かったこと。もうひとつは、"Proressive Enhancement"(Wikipedia)(略して"PE"とも)という考え方です。

Progressive Enhancementとは?

上位体験用のスタイルやスクリプトは別立てのファイルで。Progressive Enhancementとは、簡単にいえば、基本的なコンテンツや操作はすべてのターゲットユーザー(UA)に対してアクセシブルにしながら、一方でより上位の環境を持つユーザー(UA)に対しては、より充実したユーザー体験を提供するという方法に対する呼称です。意外に前からあった考え方のようで、2003年にSteven Champeon氏によって提唱されています。

WDEのDan Cederholm氏やJeremy Keith氏がいうところの"Bulletproof"も、どうやらこのProgressive Enhancementの意識が根底にあるようです。ちょうど、そのpresentation版をCederholm氏、behaviour版をKeith氏で分担したような格好になっていた感じがします。(※カンファレンスレポート(前編)は、このProgressive Enhancementを軸にまとめたので、具体的なイメージはそちらを併照してください)

なぜ今、Progressive Enhancementなのか?

0321472667
Bulletproof Ajax (Voices That Matter)/Jeremy Keith
  • 背景1: RIAの隆盛とマルチデバイス時代
GoogleやいわゆるWeb2.0系サービスの台頭で、ここ数年、リッチインターネットアプリケーション(RIA)が隆盛を極めています。その一方で、携帯電話をはじめとして、ウェブにアクセスするデバイスも急速に多様化しつつあります。こうした変化に対応すべく、RIAも多用な環境での利用を想定していくことが求められてきています。

ところが、メモリが少ない、画面サイズが小さい、入力装置の体系が異なるなど、小型携帯端末では、デスクトップPCに比べて様々な制約があります。またアップルのiPhoneがFlashをサポートしていないなど、ソフトウェアの面での選択肢が狭められることもしばしばです。

WDEでEric Meyer氏が、特別なプラグインを導入することなく、ブラウザネイティブなJavaScriptエンジンで、RIAを提供できるようになるのは素晴らしいことだと述べていましたが、これもProgressive Enhancementと関連する話といえるでしょう。JavaScriptでProgressive Enhancementを実現する具体的な方法については、Jeremy Keith氏のセッションで紹介がありましたが、その極意は「基本操作はすべてのブラウザから実行可能にすべし」という点につきるでしょう。

  • 背景2: 緩慢な標準化プロセス
HTML 5は、近年の市場の需要重視でデザインされた、ウェブアプリケーション志向の新しいHTML規格です。しかし、それが実際に勧告されるのは2022年以降になるのでは?という見通しも出ていて、その頃にはウェブの在り方自体が大きく変わってしまっている可能性すらあります。

1. Working Draft(WD, 草案)
2. Last Call Working Draft(LC, 最終草案)
3. Candidate Recommendation(CR, 勧告候補)
4. Proposed Recommendation(PR, 勧告案)
5. Recommendation(REC, 勧告)

この標準化プロセスが緩慢なのは、勧告候補から勧告案に進む段階で、各機能に対して仕様要件を満たした実装が最低2つずつあることが求められることに大きな原因があります。しかし、標準化の重要な意義である相互運用性を確保するために、この有効な実装2つという要件はやはり重要です。

このボトルネックに対して、プロセスを短縮化するには、XHTMLやCSS3が行っているようなモジュール化によって、個々の仕様のサイズを小さくすることが有効な手段とされます。それでもテストスィートの準備やブラウザへの実装が進み、そこからさらに問題点がフィードバックされてこないと、いつまで経っても相互運用性は担保されず、勧告まで何年も要してしまうことになります。(※ちなみに、HTML 5は当初、その仕様としてのサイズの大きさを批判されてきましたが、ここに来てにわかに仕様の一部分離の動きも出てきたようです)

そこで、実装が進み仕様も安定段階に入っているCSS 2.1やCSS 3の一部については、すでに利用可能であることの周知がはかられています。またHTML 5にいたっては、仕様の開発と実装が同時並行で進められ、実装も進んでいる機能(Canvasなど)については、その周知と利用促進までもが並行して進められているようです。

今後要注目なのは、新標準との向きあい方

実装機能に違いのある多様なブラウザ、さまざまなインターフェイスやハードウェア仕様を持ったデバイスに対して、基本コンテンツと基本操作へのアクセシビリティを保ちつつ、一方でより優れた環境に対しては意欲的により良い体験を提供していこうというProgressive Enhancement。

今回参加したWDE 2008を通して、その方向性への意欲を肌で感じることができたのは大きな収穫でした。新標準との向きあい方という意味でも、色々と考えさせられる機会だったと思います。しかし、その一方で、HTML 5のような新標準の個々の機能が安定段階に入ったと知る手段や、付加価値部分のさじ加減の指標など、まだまだ自分でも分からないところだらけだということも浮き彫りにされました。

考察の材料は尽きませんが、そのあたりは今後の課題として、ひとまず今は海外でProgressive Enhancementの機運が高まっていることへの実感を書き留めておこうと思います。

(我的春秋 ゆう)

関連リンク

一歩先のWeb標準 バックナンバー
Web Directions East 2008 カンファレンスレポート(前編)
"Proressive Enhancement"(Wikipedia)
Inclusive Web Design For The Future
Understanding Progressive Enhancement(A List Apart)
Bulletproof Ajax (Voices That Matter)
Progressive enhancement with Ajax(Adactio)
HTML 5
W3C勧告プロセスの概要(The Web Kanzaki)
CSS 2.1の勧告はいつ?(Web標準Blog)
「おまけつき」からはじめる新しいWeb標準
(HTML 5)Implementations in Web browsers(WHATWG Wiki)
Comparison of layout engines (HTML 5)(Wikipedia)
CSS Working Group 2008 Charter Table of Specifications(CSS Working Group Wiki)

ゆうさんプロフィール

ブロガー(我的春秋)。リアルな世界では研究職(知識ベース分野)、PM やフロントエンドエンジニアリング、講師(大学)、テクニカルライティングなどを転々とつまみ喰い。
http://my-chunqiu.cocolog-nifty.com/

このエントリーをブックマークする

このエントリーにトラックバックする

このエントリーのトラックバックURL
http://withd.jp/mt/mt-tb.cgi/3078


クリ博就職フェスタ大阪 キックオフ! 2009年10月27日~-28日