Web拡張機能としてのスタイルシート vs. フレーム
※スタイルシートに関するコラムへの補足記事
いかに新しいテクノロジを取り入れてウェブを拡張していくかを考える上で、カスケーディングスタイルシート(CSS)とフレームを比較してみるのも一興だろう。CSSはエレガントに設計された拡張だが、対するフレームは救いようがない。これに関しては、すでに何度もお話した。
CSSにはある程度の下位互換性があり、スタイルを使ったサイトを古いブラウザで見てもまったく何の問題も起きない。もちろん、そういったユーザには、CSSで実現されたスタイル面の強化策(例えば、複数フォントの使い分けや、字下げマージンなど)はまったく通用しないが、ページ上のテキストは読めるし、デフォルトのスタイルでそれなりに表示もされる(もちろん、デフォルトの表示形態でどの程度満足できるかは、その人の考え方次第。現在主流のブラウザのタイポグラフィ品質をどう評価するかによって変わってくる。確かにあまりぱっとしない)。反対に、フレームでデザインされたページは、古いブラウザを使っているユーザには利用のしようがない。
CSSは、ウェブ閲覧において、他の機能と直行している。将来、主流ブラウザにおいて複数のスタイルシートがサポートされるようになれば、スタイル切り替えのコマンドを知りたがるユーザが現われるかもしれない。だが、必ずしもその必要はない。この新しいコマンドを知ったからといって、それ以前のコマンドや操作の邪魔にはならないし、理解を新たにする必要もない。反対に、フレームだとブックマークが使えなくなるし、「印刷」や「ソースの表示」といった確立されたコマンドの意味合いも変わってしまう。さらに、一般的に言って、それまでのユーザのウェブに対する理解を混乱させてしまう。
CSSはウェブの哲学の上に成り立っている。クロスプラットフォームの設計と、公開の仕様書で細かく規定された理解しやすいコードという条件を満たしているのだ。反対に、フレームは制作者にとって覚えにくく、文書化も十分されていない。かなりの広さの画面を持ったデスクトップコンピュータを除けば、ほとんど実用にならない(パームトップ機Pilotでフレームを実現することを考えれば、納得してもらえるだろう)。
CSSは、以前のウェブ技術で広く知られていた弱点を軽減するものである。従来、コンテンツの表示形態をコントロールする手段はごく限られたものしかなかった。望む効果を得るために、やむなく不適切なHTMLを用いざるをえなかったのだ。フレームは、ページの一部をスクロールしないようにしたいという要望を確かに満たすものではあるが、これと同じ有益な効果は、HTML 3.0のドラフトで提案されている<BANNER>タグを使っても実現可能である。フレームで実現されるほとんどの機能は、テーブルやスタイルシートの効果に比べれば、比較的小さな有用性しか持たない。
Web ConsortiumがCSSで示した実例を手本として将来のウェブイノベーションが行われれば望ましい。