小林 信次
マークアップ・エンジニア。茨城県出身。1980年生まれ。専修大学経営学部卒業後,1年弱のニート生活を経て,販売代理店の営業職を経験後,有限会社アイエイトワンに入社。主に,Webディレクション,マークアップを務めるかたわら,講師活動・執筆活動を行う。allWebクリエイター塾ではCSS講習の講師。著書に「XHTML&CSSデザイン |基本原則,これだけ。」(共著,MdN発行)がある。

 2カ月に一度くらい,allWebクリエイター塾というところで,XHTML+CSS講習のCSS講師を担当させていただいております。休み時間など受講生の方に,「CSSでデザインを再現することができないー!」というお悩みを聞くことがあるんですね。そんな時,レイアウト目的にtable要素を少しだけ利用してみては?とアドバイスすることがあります。

 本来table要素とは,データを集積している「表」をマークアップするものです。データが集積している表というのは,皆さんの一番身近なもので言えば野球のスコアボードとか,電車の時刻表などのように,縦軸と横軸の最初にタイトルに当たる記述があって,後はデータがズラズラっと書き込まれているものですね。表になっている内容を文章で伝えようとすると,途方も無い文章量になってしまいますし,挙句の果てには非常に理解し難いものになってしまいます。表として見せてあげてこそ,パッと見でほしい数字が把握できるものですよね。

 そういった情報は,人間だけでなくマシンにとっても「これは表だよ」ということが理解できるように,table要素でマークアップしてあげるのです。ですので,本来の使い方でないレイアウト目的にtable要素を利用するということは,WCAG1.0の仕様書なんかでもダメですよと書かれております。また,XHTMLの講義においてもダメですよ,と説明しております。

 そこで僕が「レイアウト目的にtable要素を少しだけ利用してみては?」なんてことを言うもんだから混乱してしまう,ということもあったようです。ちょっと僕が言葉足らずでしたね。

 何を伝えたかったかというと,サイトのユーザーさんはソースを見てお問い合わせをしたり,何かを購入したりする訳では無いということです。ですので,十分にCSSを理解していない段階で,より正しいHTMLを書こうとしてデザインを犠牲にしてしまうことと,高度なデザインをちょっとだけtable要素をレイアウト目的に使用しつつ再現することを天秤にかけたときに,どっちがクライアントさんのためになるのかということを考えなければいけないですよね,ということです。

 それこそ,事件は会議室ではなく現場で起こるように,マークアップの現場では時として「え!このデザインはさすがに…」とか「この納期ではさすがに…」とか言うことが起こってきます(この辺は,ワークフローの改善などによっても回避することは可能ですが)。例えば,納期中にマークアップを仕上げるということがマストで,そんなにHTMLの厳格さにはこだわっていないという案件があった場合(あくまで,喩えですが)に,CSSがあんまり得意ではないのでtable要素をレイアウト目的に使用することでしか間に合わないということであれば,そうすることが正義というか,選択肢がそれしか無いということになりますね。

 というわけで,考え方というか知識として(X)HTMLのことをしっかり勉強しておくことは絶対的に必要なのではありますが,商業デザインとしてのWebサイト制作という大きな箱の中では,時として凄く柔軟な発想で,ぶつかってきた壁を乗り越えなければならないということです。CSSとか(X)HTMLとかのことを言う前に,まずビジネスとしてどうワークフローを成立させるのか,ということを考えてみましょう(多分に自戒の意味も込めておりますが)。