レイアウトの意味: CSS 対 テーブル (rev.2)
2009-09-25 00:59 /
Ajaxian や Delicious を見ている方はお気づきのとおり、なぜか再び「CSS レイアウト対テーブルレイアウト」の議論が起きています。あまり正面切って取り上げたことのなかった話題なので、かなり昔の話題になりますが、取り上げることにしました。
Ajaxian が昨年(2008)の11月12日に掲載した、「CSS とテーブル: その戦いは続く (CSS and Tables; The war continues)」というエントリーで、まず冒頭に二つのキャンペーンサイトが紹介されていました。

どちらも自己主張そのままのドメインで公開されていて、それぞれ「スタイルをあきらめてテーブルを使おう (giveupandusetables.com)」、「レイアウトにテーブルを使うべきなんだろうか (shouldiusetablesforlayout.com)」となっていて、前者はテーブルレイアウト派(あるいは非原理主義者)、そして後者はスタイルシートレイアウト派ということになります(後者はドメインの問いかけに「No.」と表示しています)。
Ajaxian に掲載されているコメントの一つを拾ってみると、
ここではっきりしているのは、みんなが議論しているのは、CSS はテーブルレイアウトの必要性を完全には追い払っていないように思える(そして、それはなぜなのか)ということについてなんだ。[...] 私は CSS をレイアウトに優先して使っている。でも、CSS レイアウトに固執して複雑になってしまい先へ進めなくなったら、テーブルレイアウトを使う。[...] (CSS レイアウトへの移行で)問題があるのは、私たちは自然なレイアウトの仕方から、不自然なレイアウトの仕方に進んでいるということだ。[...] CSS で組めるテーブルのようなものがあって、やりたいデザインをそこへ簡単にマッピングできるなら、私はそれをいつでも使うだろう。誓ってもいい。(でもそういうものは無い以上、)テーブルを拒絶してレイアウトしている諸君は、ちょうどエスペラントが英語よりも優れている理由を説いている人々のように見えるんだ。
Nosredna, November 12, 2008 ([...] および括弧内は河本)
という言い方がされています。このような議論の枠組みが残っていること自体が一つの驚きと言っても過言ではありません。以前、僕が「スタイルシートによるデザインは過渡期なのかも」、「スタイルシート・レイアウト、再び」というエントリーを書いたとき、
日本で何らかの制作会社に所属している「ウェブデザイナー」のうち、フルでスタイルシートのレイアウトが組める人は多くて 3 割くらいだと見ています。
と書いたのですが、あれから3年ほど経って、ようやくスタイルシートによるフルレイアウトが案件によってはレギュレーションにまでなり、一部の若いウェブデザイナーや専任のマークアップ担当者は、逆にテーブルでレイアウトしたことがないといった状況にまでなりつつある昨今、まだこんなことを議論しているのかというわけです。とは言え、上記で「みんなが議論している」ことは、正確に言うと「テーブルレイアウトでなければならない必要」を追い払うことなのか、それとも Nosredna さんのコメントに付いた応答コメントにもあるような「テーブルレイアウトをしたいという欲求」を追い払うことなのでしょうか。
もし、「ウェブページを自然にデザインする」という表現が、視覚的な操作性をマークアップに優先させるという発想(言ってみれば「ウェブページのデザインとは、Photoshop や Dreamweaver 上で行う WYSIWYG 操作のことだ」という発想)のことであるなら、それは Adobe や Microsoft の製品がいくらでも独自に実装すればよい、ただの機能の問題でしかないでしょう。ビジュアル要素を付け剥がしすることが「ウェブデザイン」であると考えてしまいかねないデザイナーは、いづれにしても納品物がビジュアル要素をもっている以上、ちょうどホームページビルダーを使う自称デザイナーがいなくならないのと同じ理由で、何年経とうといなくなったりはしません。そのような欲求はがんこに生き残り続けることでしょう。ちょうど、Ajaxian のコメントで語られているように、数多くの float した要素をどこかへ簡単につなぎとめるための「偏流調整(Kentucky windage)」として、テーブルを使ってしまいたくなる欲求は残るのかもしれません。
さて、いったん Ajaxian での議論を離れて、今年(2009)に入ってから公開された記事に目を移してみましょう。それは、Nosredna さんのコメントを見て、今年に入ってから公開された「Tables vs CSS: 消えうせた CSS の巨人たち」というエントリーです。このエントリーの筆者は、これまで CSS レイアウトを使った「ウェブ標準」を吹き込まれてきたわけですが、Alexa に出ているアクセス数の上位サイトでリストを作成し、テーブルがレイアウトに使われているかどうかを実際に調べてみた結果、CSS だけでレイアウトせよと唱導することは、ただの過剰反応でしかないと結論づけています。つまり、「セマンティックでない」とか「ウェブ標準でない」とか「レガシーコーディング」とか、誰が言っているのか見たこともありませんが、ともかくそういうことを取引先の有名プロダクションとか、有名デザイナー/コーダー/IA から突っ込まれないよう「対処」しているにすぎないというわけです。
日本のサイトについて Alexa のトップ20を見てみると、テーブルでグリッドを切っているのは、楽天とニコ動の二つだけでした。アマゾンと Google は検索ボックスやヘッダーの一部がテーブルでレイアウトされています。したがって、9割近くは CSS でレイアウトされていると言ってよいでしょう。これを日本の制作プロダクションの「過剰反応ぶり」と言うべきかどうかは分かりません。
コンテンツを支える論理構造なり、コンテンツ自体のセマンティックスなりを有効に活用できていない(というか、しえない)多くのサイトで、テーブルレイアウトを「ウェブ標準」というお題目のためだけにフルリニューアルする機会はないでしょう。もちろん詐欺リハウス業者と同等のコンサルや制作プロダクションが、リッチで 2.0 的な優れた営業手法で(笑)、「ウェブ標準にしなければ多大のリスクが発生する」と顧客を脅しているのかもしれませんが。
SEO としてどのていどの成果が上がるのか、具体的な指標を示せない限り、発注企業が、表に現れないコードレベルでの「ブランディング」など眼中にないのも当然でしょう。コーポレートサイトのトップページにマイクロフォーマットを埋め込んだとして、それがいったい何なのかというわけです。企業としてのウェブ制作プロダクションとしては、それがマークアップエンジニアや IA のマスターベーションでないと言えるだけの説得力を持たない限り、つまり見積書の詳細項目に堂々と書いてクライアントを説得できない限り、わざわざ実装する手間などかけていられません。
しかしだからといって「テーブルの方がやりやすい」という人が、どれくらい残っているのでしょうか。そもそもテーブルと比べられる状況に置かれている人、例えば初心者の頃はテーブルでページを作っていたが、制作会社や専門学校でスタイルを使うようになったという経歴の人が、どれくらい残っているのかと思います。それくらい、昨今では最初からページ制作の手順をテーブルで説明するような事例は減ってきていると言えるでしょう。そのような手順が堂々と大手を振っているのは、せいぜい内職の講習テキストや、ゾンビデザイナーによる社内ガラパゴス諸島での OJT、あるいは新規のコーディングや過去のコーディングに手を付ける予算だとか工期が確保されていない案件で、そのまま使われているコードに名残を止めているていどだと思うわけです。
したがって、「CSSの巨人たち(CSS Trolls)」は確かにいなくなったのでしょうが、テーブルを使う人にそれほど強い非難が浴びせられることは少なくなったと言えるかどうか、定かではありません。スキルとしては、ウェブ制作プロダクションで働く 25 歳以下の人々は、テーブルで気軽にレイアウトすると言うよりも、寧ろ「こんなの、どうやってテーブルでセルを切ればいいんだ?」と悩む人の方が多いのではないかと思います。逆に言うと、「こんなの、どうやってスタイルシートで組めばいいんだ?」と悩むような人しか送り出さないスクールや専門学校は、もう無視してよいでしょう。スタイルシートでレイアウトを組めることなどネット上に幾らでも話題として登っていることをそもそも知らないとか、あるいは自分で組んでみたこともないような人を採用するほど呑気な制作プロダクションが、日本に残っているとは到底思えません。
それに、テーブル(のまま)でよいかどうかは、自社のマークアップ担当者のスキルで決まるのではなく、寧ろ経営方針や営業方針あるいは担当者の工数見積もりを求めずに「降りてくる」、プロジェクトの工程設計で決まってしまうのではないでしょうか。
[追補:2009-09-28]
『Web Designing』2009年10月号のアンケート結果を見ると、文書構造とプレゼンテーションを分離してコーディングできると答えた人の割合は 2007 年まで伸び続けて、それ以降は50~60%の範囲で横ばいとなっています。恐らく、2007年頃からマークアップとビジュアルデザインの担当者が分かれるプロダクションも出てきて、「デザイナー」ではあるけれどマークアップを担当しない人と、「デザイナー」ではあるけれど ActionScript/JavaScript があまり書けない人、「デザイナー」ではあるけれどビジュアルデザインが殆どできないひと(イラストが描けないとか)等に分かれてきたのではないかと思われます。当社でも、マークアップ、ビジュアル、FLASH (ActionScript) の担当はそれぞれ別になっていて、なぜかマークアップと FLASH 担当者が僕の配下(システム部)にいるという状況です。たぶん「PHP がとりあえず書ける」人を集めただけなんでしょうか(笑)。もちろん、僕は「とりあえず」のレベルじゃないですよ。当たり前ですが。
