Jintrick.netagenda2008年08月アーカイブ → 2008年08月13日

正しいHTML

今、「正しいHTML」を反省するのは個人的に非常に興味深いことだ。

HTMLだと「仕樣的に正しくないエラー」の部分はユーザエージェントが適當に訂正するので、最終的に處理されるのは「正しい状態の文書」である筈。

闇黒日記(平成二十年八月十日)より

理想的にはそうあって欲しいものの、実際にはレガシーな記述に対応するため、あるいは後方互換性のために訂正後の「状態」がHTMLのスキーマに対して妥当にならない場合がある。

見出し要素(hn要素; n=1,2,3,4,5,6)。これはHTMLの暗黒時代に字の大きさを変更するために使われていた為か、事実上ブロック要素を子に持てることになってしまっている。

<h2>見出し<p>本文は大きな文字に――</p>

ここに仕様的な誤りがあるが、これを正しく訂正するならp要素の開始タグの前にh2の終了タグが補われるべきであることはHTML4.01 のDTDを読めば自明だ。しかしそのような補正が行われることはなく、p要素はh2要素の子要素として扱われてしまう。知っている限りのグラフィカルブラウザ全てがそうだ。後方互換性の保持をgoalとした場合にはこれが「正しい状態」であるとは言えるが、しかし妥当性に関する人為的なエラーを補完してくれてはいない。

この手のマークアップに関するミスはブラウザで見れば一発で分かる(ことが多い)。見えない部分はブラウザが訂正して勝手に情報セットを構築している(かもしれない)。曖昧なことしか言えないな。

が、その氣なら、エラーを含むHTML文書をサーヴァが訂正して發送する事だつて可能な訣で、さうなると作り手が豫め仕樣的なエラーを正しておくと云つた行爲は意味がなくなる。モバイルの機器向けサーヴィスの場合、豫めデータを弄つて送るやうな事が一般化してゐる――傳送徑路のサーヴィス提供者の介入もあり得ると云ふ話だ。

結局、最初に作られる文書自體が「仕樣に照らして妥當かどうか」を問題にする事が、或程度ナンセンスと言へる。或文書に仕樣上エラーがある・ないを言つても始まらない――仕樣がある以上、機械的な訂正は簡單に出來るからだ。

闇黒日記(平成二十年八月十日)より

前述の例ようなミスは原理的には自動で訂正することができる。たとえば私個人の環境ではμTidy Libを利用することができる。だが人為的なよくあるエラーを全部正すことを自動化できるかといえば、それは難しい。たとえばタグの閉じ忘れといっても、見出し要素の例のようにブロック要素を内容に持てないなら終了タグを補うのは容易だが、blockquote要素ならどうか。この要素の終了タグを閉じ忘れるとそれ以降引用でなくても引用として解釈されてしまい、それは親要素が終了するまで(親要素がbody要素なら文書の最後まで)続くかもしれない。終了タグの適切な挿入箇所はスキーマから自明であるとは限らない。

要素の的確なマークアップはその文書を作った人間にしかできないが、マークアップという行為を隠すことはできる。文書を、機械的に仕様に適合させるHTMLエディタを使えばよい。一般的に文書といえばMicrosoft Wordだが(嘘)、Wordはハイパーテキストエディタでもあるので、Wordでハイパーテキストを作成すれば、仕様に適合した正しいHTML文書に変換するのは簡単だ。これはまさに機械的にできる。何年か前にアウトラインモードで作成させたWord文書をXML形式で保存したものを、XHTML文書に変換するXSLTインスタンスを書こうとして、でもXML Schema文書を読むのがかったるくて途中でやめたことがある。スキーマがRelax NGで書かれていてXSLT2.0のよい実装があれば今すぐにXSLTインスタンスを書き始めるだろうが、今挑戦するならHTML形式で保存させたものをHTMLパーサで変換させるだろうな。

手持ちのWord 2003はHTMLの各要素との互換性がちょっと今一だが、カスタマイズすれば何とかなるレベル。Word 2007は「ぶろぐ」を投稿できるといううたい文句だったので試用版で試してみたところ、ハイパーテキストエディタとしてはまるで進化していなかった。ハイパーリンクの挿入でリンクタイプの設定もできない。しかし(生産性が向上したかは分らないが)ユーザビリティが激しく向上しているので購入することにした。何ができて、どうすればできるのかがインターフェイスを触っただけで大体理解できた。脱線。

そこで僕等は文書の見出しレヴェルとかを意識したマーク附けをやつたりしてゐる訣だけれども、これが何處まで有意義であるか、或は有意であるか、が問題。見た目で判斷するデザイナが作つたサイトであつても、そこが或テーマに關して唯一のものである・最良のものである場合、リンクがたくさん張られる事がある ――そもそも何んなに見た目をデザインしても、情報は文字ベースである訣で、要素を或程度無視して檢索エンジンも情報の價値を判斷する事がある。「SEO 的に有利」と言はれるマーク附けの仕方も、現實にはそれほど有效とはなつてゐないし、それで大體世の中巧くまはつてゐる。となると、セマンティック・ウェブつて何なのだらう。

闇黒日記(平成二十年八月十日)より

妥当性に関する正しさの話から、要素を的確にマークアップすることに関する正しさの話へ。

マークアップは所詮計算機の行う応用の世界の話であって、コンテンツの価値に本質的な影響を与えることはできそうにない。その応用すら怪しいとなれば、マークアップを行う意味を見失いかねない。たとえばGoogleのdefine検索も、dfn要素やdl要素を見ているわけではなく、URLに「glossary」が含まれるかどうかとか、クエリの前後関係とか、そんな所を見ているようだ。コンテンツの価値を正しく判断するためには、でたらめに利用されがちな「タグ」は無視するよりほかない。HTMLの要件であるtitle要素と、ハイパーテキストのエッセンスであるa要素、この二つぐらいだろう無視すべきでない要素は。

セマンティック・ウェブも、確かに既存のコンテンツにメタデータを与えたからといってその価値を増減するものではないが、しかしその応用によって生み出される新たなコンテンツやウェブサービスは当然新たな価値を生み出す。と、思う。少なくとも理想的にはそう。

論理マークアップという行為はコンテンツに付加価値を与えるために行うものではなく(ハイパーリンクの作成を除く)、コンテンツをメディア※1から解放するために行うものだと思う。しかしメディアの種類が増えていったとしても結局そのメディア側のソフトウェアで、正しくないHTMLを何とか利用可能にしてくれる可能性はある。既存の情報資源をより多く利用可能なソフトウェアが「勝つ」わけだから。正しいHTMLに有意なメリットが目に見えて表れるかどうかは、今後どれだけ正しいHTMLが「普通」になっていくかにかかっている。

※1 ユーザースタイルシートがカスタマイズされた各個人のウェブブラウザや、様々な大きさに変更されたウィンドウは、異なる媒体であると見ることもできる。


webmaster@jintrick.net
公開: 2008年08月13日
カテゴリ: HTML ,ウェブデザイン