正しいHTMLとは?妥当なマークアップとは何なのか、という事について考えてみます。

正しいHTML」とは

色々見ていると、正しいHTMLというのは、どうやらValidなHTMLの同義語として使われる事が多いようです。

この場合の「Valid」の定義は「What is Markup Validation?」を参照してください。ちなみに、私は「Validとは、DTDに則った構文で書かれている事」だと解釈しました。

「Valid=正しい」だと言えばそうなのですが、「Valid」ならニュアンスは伝わるけど、日本語で「正しい」だけではピンとこないと思います。

にもかかわらず「正しいHTML」と言うのは、「Valid」とか「妥当な」という言葉がクライアントには分かりにくく、「正しい」の方が分かった気になり易いからでしょう。

妥当なマークアップ」とは

恐らく、本来は「正しいHTML」や「ValidなHTML」と同義だと思います。

客観的なお話だと上記のようになるのですが、個人的には「妥当なマークアップ」とは「内容(文章等)の意味として妥当なタグを用いたマークアップ」という意味だと思っています。つまり「妥当な」というのがマークアップという行為に掛かっているという解釈です。

というわけで、ここからは「見出しはhn要素としてマークアップするのが妥当」などといった話題です。

この場合の「妥当」は前述の「DTDに則っているかどうか」だけではなく、「内容(文章等)に対してもっともらしいタグを用いてマークアップされているかどうか」も含みます。

この「妥当」の面白いところは、マークアップの対象が(曖昧な)自然言語であるために唯一に限定される事はほとんどないという事でしょう。

ここで、「妥当かどうかを判断しているのは誰なのか」という事を考えます。

「誰が何のためにマークアップを行うのか」というと、「作成者が内容を意味付けするために行う」だと思われます。さらに「何のために意味付けするのか」を考えると、「閲覧者(主にWebブラウザ等のコンピュータプログラム)に理解させるため」もっと具体的な表現にすると、「コンピュータプログラムで処理し易くするため」です。

つまり、「マークアップとは、HTML文書の作成者がHTML文書をコンピュータプログラムで処理し易くする作業」と言えると思います。

この事から、「妥当かどうかを判断するのは、閲覧者ではなくHTML文書の作成者」としても問題ないと思います。(*1

ところで、「<div class="TopLevelHeading">iPhone 3Gが「0円」で買えるキャンペーン</div>」のようなマークアップを見ると、h1要素としてマークアップすべきだろうと言われる方も多いと思われます。しかし、上記の通りHTML文書の作成者が妥当だと判断したマークアップなので、作成者がどういう意図でマークアップしたのかを知らない限り、たとえそれがどんなマークアップでもNGとは言えないのが本来だと思われます。

だから、文章等から第三者が推測で意味の妥当性を気にするより、マークアップから意味を捉える方が自然じゃないでしょうか。少なくとも、Webブラウザはそのように動作しているはずだと思います。

このように考えると、「テーブルレイアウトも問題はない」という話にならなくもないことになります。(*2)作成者が表だと信じて疑わなければ、table要素としてマークアップするのは当然だからです。

テーブルレイアウトを例に出すのは良くなかったかもしれないので、もう一つ。

例えば、em要素としてマークアップされていたら、「この部分は強意である」と考えられますが、これを「強意とするのはおかしい」等と思う人は、居るかもしれませんが、そんなに居ないと思います。それと同じ事です。

マークアップとは本来そういうものではないでしょうか。

「hn要素としてマークアップすべき」だとか「これはtableじゃない」ではなく、「hn要素でマークアップした方がコンピュータには優しいですよ」や「これはtableなんですか?」などと言うのが自然だと思います。

「ああすべき、こうすべき」などと言う議論は楽しいですが、そういう場や意味の妥当性を尋ねられない限り、ダメだしする方が間違っているのではないかと思う今日この頃です。

色々書いてみましたが、取り敢えず「自分の好きなようにやれば良いんじゃないか」という事です。

*1
プログラムが自然言語の意味として妥当かどうかなんて判断できるとは思えませんし、人工知能のようなもので自然言語を理解している(かのように動作する)プログラムには意味付けは必要ないはずなので、無視して良いと思います。
*2
アクセシビリティ等に関してはまた別の話ということでお願いします。