2009年3月7日土曜日

HTMLは構造を表現する言語。意味はclassで指定すべき

マイコミジャーナルに、あまり使われていないHTMLタグについての記事がありました。

確かにあまり使われていませんね。私はせっかくあるんだからと積極的に使うようにしていますが、使おうとすると逆に使い方を調べるのに苦労するぐらい使われていません。

しかし、そもそもHTMLのタグだけで意味を表現しようとすること自体が間違っている気がします。HTMLは文章の構造を定義する言語なのですから、文章内で意味を持たせたい場合は、以下のようにタグのclassで意味を指定すればいいのではないでしょうか。

<span class="field string">名前</span>: <input>...

classで指定するようにすれば、自分の好きなようにいくらでも拡張可能ですから、いちいち「入力欄の説明に使うタグは何だっけ?」と迷うこともなくなります。また、HTML自体の構造もシンプルになります。こうすればlabelとかlegendとかは使わなくてもよくなります。

HTML5では文章構造を表すsectionやヘッダ、フッタを表すheader, footerなどがどかどかっと追加される予定みたいですが、ちゃんと使われるんでしょうかね。ブロック要素div、インライン要素span、表組みtable、リスト構造ul(もしくはol)さえあれば、何でも表現できますよ。きっと。

1つ実例を挙げたいと思います。以下をご覧ください。

上記はMicrosoft Wordで「新しいスタイル」を作るときの画面です。これを見ると「種類」には段落、文字、リンク、表、リストしかありません。Microsoftは、これだけあれば文章の構造化は可能である、と判断しているということです。

またWordには「スタイル」という、上述した「構造」に対する「装飾」を定義するための機能があります。HTMLとCSSみたいなものです。とてもシンプルです(複雑なのは使い方だけです :p )。Microsoftの製品を引き合いに出すと、何か悪い例を示しているような錯覚を感じる方もいるかもしれませんが、このデザイン、操作性が世のデファクトですから、仮に正しないとしても、間違ってはいないはずです。

もちろん、グラフの描画や複雑なレイアウトを構造化するのであれば、上述の構造だけでは足りないですが、一般にはそれだけで9割程度の要求を満たせると思います。シンプルに行きましょうよ。

0 件のコメント: