Graceful DegradationとProgressive Enhancement
以前「OperaがWeb標準のカリキュラムを公開」で取り上げたOpera Web Standards Curriculum。今回は“Graceful degradation versus progressive enhancement”について、すこし触れてみようと思います。
Graceful DegradationとProgressive Enhancementとは?
記事では、それぞれを次のように説明しています。
- Graceful Degradation
- Webサイトで表現したい機能を、特定の水準にあるモダンブラウザーに対して提供します。しかし、低水準の古いブラウザーに対しても、同等ではないもののそつのない、または理にかなったかたちで機能を提供します。
- Progressive Enhancement
- ターゲットとするすべてのブラウザーに対し、最低限伝えるべき機能を実装します。その上で、より高水準の環境(ブラウザー)では、高い機能を体験できるように機能強化をおこないます。
Graceful Degradationは後方互換や古い環境に対しての対処という考えを持ちますが、Progressive Enhancementは「できる環境ではよりよいものを」といった、前向きなアプローチを取っています。
多様性を受け入れる柔軟なWebへ
さて、このような手法がなぜ注目されているのでしょうか。これには、日々絶えず変化しするWebと、Webにアクセスする環境の多様化が背景にあるものと思われます。
携帯電話やスマートフォン、ネットブックなど、Webを閲覧する手段は増え続けています。また、Google Chromeなど新しいブラウザーの出現や既存ブラウザーのバージョンアップ、または古いブラウザーを使い続けるユーザー層など、ソフトウェア側においても多様化が進んでいます。
このような状況で、全てのユーザーに同じWebサイトを提供しようとすると、全ての利用環境を意識するあまり、実装できる機能はとても最小的なものとなってしまいます。かといって、特定の環境だけに最適化されてしまうと、その環境下にいないユーザーに不都合を与えてしまうこととなります。
柔軟な媒体としてのWebを最大限生かすために、多様性を受け入れること。これがGraceful DegradationやProgressive EnhancementによるWeb制作の根底にある考え方です。
新しい技術の取り込みだけが目的ではない
Progressive Enhancementについては、昨年11月に開かれたWeb Directions Eastでも、スピーカーの何人かが取り上げていました。また、策定途中のHTML5やCSS3、DOM APIを利用するときにも、この考えが取り上げられることが多く、目にする機会が今後増えていくものと思われます。
しかしながら、このように新しい技術を利用することに絡めてProgressive Enhancementが紹介されることが多く、その結果「IEで利用できないから……」といった反応も少なからずみられます。確かにそういった側面もあるのですが、それだけがProgressive Enhancementのすべてではありません。
ということで次回は、記事の後半にある例などをもとに、今のWeb制作とGraceful Degradation/Progressive Enhancementとの関わりについて紹介したいと思います。