「CSSかテーブルか」よりもっと重要なこと

CSSで組むことのメリットとか|CSS HappyLifeを読んで気になったのでエントリを一つ。

テーブルレイアウトじゃなく、正しいHTMLとCSS使ってサイトを作ることのメリットって何だろー?

CSSで組むことのメリットとか (CSS HappyLife)

制作者側とサイト運営者(企業)にしかメリットがないのが気になるという話なのですが、個人的にはそれで別に構わないと思うのです。

なぜCSSを使った方がいいのか?

そもそも論としてのHTML

まあいわゆる理念的な話になるのですが、HTMLはWebサイトの見栄えを整えるためにあるわけではありません。HTMLは文章構造を指定・設定するために存在するのであって、見栄えはCSSで設定するべきです。「Web標準」が主流になりつつある現状から考えて、テーブルレイアウトなどの物理マークアップはなるべく避けるべきでしょう。

と、ここまでは教科書的な「べき論」な話ですね。実際は<font size=xx></font>などで見栄えを制御することができますし、新規に作られるWebサイトはともかく、古めのサイトは未だにテーブルレイアウトのサイトが多数あります。

ただ現在の環境で考えると、凝ったWebデザインでCSSを使わないというのはむしろ作業効率が悪くなるだけでしょう。CSSはどんどん拡張されていますし、そもそもHTMLのタグだけではできないことがかなり多いはずです。画像とタグをあわせれば実現できるかもしれませんが、むしろ苦労してCSSを使わないメリットがあまり見いだせません。

制作者側のメリット

まあこれはCSSで組むことのメリットとか|CSS HappyLifeにほとんど書いてあるので、今更付け足すこともないでしょう。言い方を変えて逆にするなら以下のような感じでしょうか。

  • テーブルレイアウトはメンテナンスや修正が面倒
  • 見た目を変えるにはページ自体を書き換えなくてはならない
  • ページの容量が重くなり、結果としてごちゃごちゃして見にくくなる
  • 表現の幅に限界がある(これ以上見た目を変えるタグは追加されないでしょう)
  • 時代(流行)に逆行している
  • 変なマークアップになる

作り手側としては生産性の向上が一番重要なところでしょうから、CSSを使うのは当然の流れかなと思います。

サイト運営者のメリット

これもいくつかあると思うんですが、一番メリットは以下のものではないでしょうか。

適切なマークアップのHTML+CSSはテーブルレイアウトよりもSEOに効果があるから。

まあ実際は「比べて」での話ですし、HTML+CSSで作ると検索順位上位間違いなしとか思われると逆に困るというのはあるかもしれませんが。(当たり前ですが、検索エンジンは内部構造だけで検索結果を出しているわけではない。)

ユーザーのメリットは別になくてもいい

まず前提の話ですが、ユーザーは何のためにWebサイトに訪れるのでしょうか?

目的にもよるでしょうが、大概はそこにある情報を得るためや、サービスを利用するために来るわけです。まずHTMLやCSSのソースを見に来る人はいないでしょう。重要なのは中身のコンテンツであって、あくまでHTMLやCSSはユーザーに情報を伝えるための手段でしかありません。

以下にHTMLとCSSを建築物に例えた話があるのですが、個人的には実に言い得て妙だとおもっています。

シリコンカフェ代表の森川眞行氏は、(X)HTML+CSSを家の建設になぞらえて、「HTMLとCSSってのは、ビルを組み立てる鉄骨(HTML)と内装(CSS)みたいなもの」と述べている

第3回 XHTML+CSSの役割分担 (ITpro)

何が用があってビルを訪ねる人がいたとして、その人はビルの構造に興味があるでしょうか?

骨組みはそもそも見えませんし、内装は見えるので気にはなるかもしれませんが、別にそんなものを見に来たのではありません。用事があるのはビルの中にいる人やテナントとして入っている会社であって、ビルそのものには別に何の興味もないわけです。

ビルの建築時に求められるのは「安全な骨組み(構造)」と「必要なだけの内装」であって、建築業者が「この工法で訪問客がメリットを得られるか?」と考えても意味はないわけです。(発注元とは直接的な利害関係がありますから関係がありますが。)立派なビルでも中身が空なら誰も来ませんし、不人気なテナントばかりでも客足は遠のくでしょう。中身が重要なのはWebも現実世界も変わらないわけです。

従ってHTMLやCSSに求められるのは、中身のコンテンツを適切に訪問客に閲覧させる裏方としての機能です。それさえきちんと達成できるならば、テーブルでもCSSでも訪問客にとってはどっちでも構わないわけです。(CSSを使うことによって、ユーザースタイルシートが使えるなどの副次的な効果はありますが。)

CSSかテーブルかはあくまで手段の選択に過ぎません。制作者はより効率的な、もしくは求められた方法で作ればいいと私は思います。