HTMLとセマンティクス

「階層」という概念(セマンティクス)を重視するとのことで、パンくずリストが3種類紹介されている。この記事以外でも我的春秋では「セマンティクス」という語がたびたび使われているのだが、この「セマンティクス」はセマンティック・ウェブと同じ意味なのだろうか。だとしたら、首を傾げたくなる。(違うということです。コメント欄参照。)階層型構造リニア型構造の例に挙げられているHTMLは、サイトの構造に対応しており一見よさそうだ。しかし、サイトの構造とリストの構造が対応していても、そもそもコンピュータはそれがサイトの構造を表しているパンくずリストであることを理解できない。コンピュータから見れば、それらは「入れ子になった順不同リスト」「序列リスト」以上のものではない。換言すれば、HTMLでは仕様書に定義されていないことをコンピュータが理解することはできないということだ。HTMLで何かの構造を表すことは、直ちにセマンティック・ウェブとは結びつかないということを言いたい。

HTMLは構造化言語でありそれをもって構造を示すことに何か問題があるのか、と思われるかもしれないが、それは何も問題ない。ただ、HTMLは文書をマークアップするための言語であり、文書に現れないような要素の構造を表すことに使うのはHTML本来の在り方ではなく、そうしたところでそれをコンピュータが理解することはできない。リストはリストなのだ。たとえclass="topic-path"などとしてみたところで、それはコンピュータにとっては「"topic-path"というクラス名を持つリスト」でしかない。

と言うか、セマンティクスを重視するならa要素にrel/rev属性を加えてリンクの関係性を明示するのが先ではないか。例えば、<a href="page2" rel="next">とすれば、page2はその文書から見て"next"であるとコンピュータが理解できる。これはいくらパンくずリストを工夫しても不可能なことだ。

以上が我的春秋をに言いたかったことで、ここから先は私の信条なのだが、HTMLはコンピュータに理解させるための言語というよりも、最終的に人間が読むための言語なのだ。最初にHTMLを読むのはユーザーエージェントに内蔵されたパーサだ。しかし、パースされたHTMLの情報は変換され、スタイルシートと結合されて、人間に伝えられる。ユーザーエージェントは正しくユーザーの代理人であり、主人は人間である。

私がHTMLを書くときのポリシーを挙げるなら、「多くの人に情報が伝わるような形式」「一貫性がある」「私の感覚」の三つになる。一番目は先に述べた通りHTMLにおいては人間が主であるという立場から、アクセシビリティ&ユーザビリティを重視するということだ。だから私は、出典をcite属性でしか明示しない引用や[1]、link要素のみのナビゲーションや、application/xhtml+xmlなXHTMLには反対する。「一貫性がある」というのは、マークアップが一貫していることで情報が伝わりやすくなる、加えて一貫性を欠いたマークアップは私が気持悪いという理由によるものだ。私はこのサイト(ブログ以外のコンテンツも含む)の全ページに共通のナビゲーションを手作業で記述し、要素の使い方、タイトルのつけ方にも法則性を持たせている。一貫性のない企業のウェブサイトでよく迷子になる私の経験からすれば、これは利用者にとって分かりやすい筈だと思う。そして、「私の感覚」で自然に感じられるマークアップを心掛ける。

いや、後半はどうでもいいのだが、たまにこんなことを書きたい気分になる。

  1. 何のことか分からない人は、引用元の表示と表記の改変に関する議論 - 徒委記を参照。

転載元リソース情報

URI
http://elastic965.80code.com/blog/2007/02/html-semantics
作成日
2007年02月08日

2008年5月19日

案内

広告

広告

このページについてつぶやく コメント一覧