table要素を避ける理由

3月17日は終日家を空けていたのですが、その間に徒委記議論リンク集がひとつできてました。ようやくうちのWikiでも新たにページを作る方が現れたわけで、有難いことです。

* * *

さてその議論の元となっているそのテーブル、本当に必要?の記事ですが、他の方の指摘を読みつつ改めて読み返してみると、複数の話題が混在しているために主旨が不鮮明になっているのではないかと感じられました。

記事では、まず前提として「テーブルは正しい使い方をすれば何も問題ないわけです」と述べられています。「テーブル」という言葉の指すものが単に「表」なのか、HTMLにおけるtable(, th, td等の)要素のどちらなのかが曖昧ですが、おそらく「一般的な表形式の情報をtable(及びth, td等の)要素としてマークアップするのは何も問題ない」ということだろうと捉えました。であれば大いに同意できるところです。

次に、表と定義リストのマークアップ例を挙げ、両者を同じようなスタイルにすることができることを示しています。そして、「この程度のデータなら、何もテーブルを使わなくたって、定義リスト を使ってシンプルに書いてしまうことができます。」(強調筆者)と述べられており、表で書くことより定義リストで書くことを暗に勧めているように見えます。

でも、ここで挙げられている表の例は、table要素が本来の用途で正しく用いられているように見えます。なぜ「何も問題ない」と述べたものについて、書き換えを勧めるようなことを述べるのでしょう。ここにこの記事の矛盾があると考えます。

また、定義リストを勧める論拠として、その方が「よりアクセシブルになります」ということが述べられていますが、なぜ表より定義リストの方が accessible なのかについては、十分に示せていないように見えます。……というのはPiroさんいわいさんyuuさんも指摘している通り。

さらに付け加えれば、表を定義リストに置き換えるというような、或るマークアップされたテキストを異なる要素としてマークアップすることが妥当かどうかを考える際、見た目(スタイル)の話を持ち出すべきではないと思います。見た目を論拠にすると、別に定義リストでなくてもスタイル付けされたp要素やdiv要素でマークアップすることもまた可、という結論も導かれかねないわけで。マークアップの問題は原則として文字情報の意味や文書内における構造を元に検討すべきと考えます。

* * *

まとめると、そのテーブル、本当に必要?の記事では、以下の4つの話題が含まれています。

記事の題名から考えると、aは主旨に沿ったものだと思いますが、だとするとbとcは主旨とは異なる方向の話題になるのではないでしょうか。例えb, cどちらともが真だとしても、それが表を定義リストに置き換えなければならない理由にはならないのですから。またdについては、もう少し理由の説明が必要であるように思います。

ところで、bについては、テキスト情報のみならず、文書作成者が情報をどのように表現したいのかということも考慮に入れる必要があり、俄かには結論が出ない難しい議論になりそうな気がします。cについては、別個にCSSのテクニックとして捉えれば参考になる話題だと思います。

* * *

※追記: 元記事のそのテーブル、本当に必要?で、「タイトルを付け間違えました。本文と合っていません」との訂正がありました。(2005年3月21日)