趣味Web 小説 2003-01-20

CSS を純化しよう

カナかな団の躁鬱でご意見をいただきました。

制作者の CSS を OFF に出来るということは、制作者の CSS に UA 依存のバグが利用されていようが box-sizing を使われようが、利用者にとって全くお構いなしということになります。なぜなら、HTML のマークアップを OFF にして、利用性を高めるために妥当なマークアップに改修することは難しいけれど、ヘタレな CSS を OFF にすることは簡単な訳だし、そうなれば CSS が仕様準拠していようが、それこそ自由な制約の CSS だろうが関係ないわけで、そのへんが論理構造と装飾を分離するメリットでもあると思うのです。

なるほど。CSSはOFFにできるのだから、仕様に準拠していなくとも実際には問題にならない、と。心情的にはという私の逃げは無意識に入れたわけですが、こう説明されてみると、テーブルレイアウトと(例え仕様に準拠していなかろうと)CSSレイアウトには実質的には大きな差があるとわかりますね。

ただまあ、リソースが正しいマークアップを施されていれば、ですがとも述べられているように、MacIEのoverflowプロパティー周りのバグに対応するためだけに、body要素の内容すべてをdiv要素とするといったマークアップをしているサイトなどがある実情は、にんともかんとも、という感じがします。

CSS振り分けの現状というのは、各UAが共通で対応している部分以外は、基本的にバグに頼っています。たまたま「AするとBになる」といった経験的知識を駆使している。NN4は@importを読み込まないから……とか。私はやはりバグ頼りは気持ち悪いと思います。

私も極端なことを書いてはいますが、落としどころとしてどのあたりを狙っているかといいますと、「NN4はCSSの解釈が糞なのでさっさと捨ててください」のような思い上がったCSSレイアウトのサイトには少し反省してほしいということなんです。あるいは、「早くCSS2に完全準拠したUAが登場しないかな」という発言を、あたかもユーザの視点に立っているかのような文脈で口にするのはやめてほしいということなんです。

中途半端なUAばかりですから、誰もがUAのCSSの解釈の不備で困る場面がありえます。けれども、そんなときはCSSを切ればよいわけです。ただそれだけ。そのとき、ああ困ったと思うのは製作者だけでしょう。CSSの解釈が不十分なUAばっかりであっても、本来、閲覧者は困らないわけです。その重大な一点を忘れている方が多すぎると思うのです。

CSSをある程度勉強している方は、究極的にはUA間で見た目を統一できないことには諦めがついているだろうと思うのです。そして多くの場合、自分が使っているUAで思ったような見た目を実現できれば、まずまず満足できるはずです。しかしそのCSSを公開すると、ときどき「私の環境では表示がひどいんですけど」といったメールが届いて動揺させられます。従来の対応は、CSS振り分けだったりしたわけです。けれども、私はここで「CSSを切ってほしい。あなたにはそれが可能だ」と返答することを勧めたいのです。

実際にやってみると、案外精神的負担は重くありません。自分の環境ではちゃんと見えるわけですし、CSSとして正当な記述だということさえ確認しておけば、W3Cの勧告という権威の裏づけが勇気を与えてくれます。この一歩を踏み出すことで、圧倒的にCSSを書くのが楽になります。いくつもの、自分が使ってさえいないUAのバグをいちいち考えるひつようがありません。CSSの仕様に従った記述さえ心がければ、表示の確認は自分の環境だけで行えばよいのです。

CSSを使ってアクセシビリティーの高いサイトを! という掛け声は、現状、一般人には今ひとつわかりにくいものとなっています。なぜなら、CSSへの対応に不備があるUAには、CSSの解説書によれば最新のIE6さえ含まれているのです。構造とスタイルを分離しておけば、スタイルを殺すことが可能になる。よってアクセシビリティーが高くなる。この製作者の用意したスタイルを殺すという概念の普及なくして、アクセシビリティー向上にCSSの付け入る隙はありません。大企業のアクセシビリティーガイドラインからテーブルレイアウトの排除が巧妙に削除され続けている所以です。

CSSレイアウトが普及しないのは、建て前が建て前でしかないことに原因があると思うのです。建て前を行動と一体化することで、CSSは本当に簡単で強力なツールとなります。しかしそのためには、正しいHTMLの導入と同様の精神的な壁を乗り越える必要がある。その壁とは、UAの実装状況を無視することです。問題のある環境の方にはCSSを切ってもらうということです。

私はやはり、HTMLと同様にCSSも純化するべきだと思います。でなきゃいつまでたってもCSSは難しいままです。本道から外れた使い途をされ続けます。そして新たな誤解さえ生み出していくのです。

Information

注意書き