CSSレイアウトとか、Web標準とか
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とかのことを言う前に、まずビジネスとして成立させるということを考えてみましょう(たぶんに自戒の意味も込めておりますがw)。
comment