HTMLとは、World Wide Web(WWW)における、情報共有のための文書フォーマットです。Webサイトを公開するには、通常、HTML文書を作成する必要があります。HTML文書とは、文書を構成する部分が、HTMLの仕様に基づいて形式的に明示されている文書です。そして、ここで言う「HTMLの仕様」は、World Wide Web Consorsium(W3C)で策定・勧告されています。
地球規模での配信を目的に情報を公開するためには、全てのコンピュータが潜在的に理解可能であるような出版用母語の一種である、世界中で理解される言語が必要となる。World Wide Webで使われる出版言語は、HTML (HyperText Markup Languageの略)である。
HTML文書が、ブラウザやプラットフォームの違いを超えてうまく働くべきであるということは、多くが認めるところである。(略)もし【相互運用性確保の】努力が成されなければ、Webは互換性のないフォーマット毎に分け隔てられた世界に分割され、すべての関係者にとっての商業的可能性が減少することとなるであろう、大きなリスクを負うこととなる。
(略)
HTMLは、どんな環境からもWebの情報を利用できるようにすべきだという方針の下に開発されている。(略)
もともとHTMLは、情報共有のための文書フォーマットでしたが、インターネットとWWWの爆発的な普及に伴い、多くの人がHTML文書を作成するようになって、HTMLは、「情報発信」あるいは「コミュニケーション」のためのツールとして使われるようになりました。そこで、「情報共有」の手段としてのHTMLの機能は無視され、ブラウザでの見た目のみが重視されるようになってしまいました。これにブラウザメーカーの独自拡張などが拍車をかけ、HTMLは、本来の用途とは異なる使われ方をしていたのです。(今でも一部ではそうです。)
そのような状況下でW3Cは、HTMLを本来の「情報共有」の目的に回帰させるため、「見た目」の機能をCSSで実現するようにし、「文書本体」と「その見た目を決定する情報」を分離し、HTMLとCSSとして、仕様を策定し、勧告したのです。
このようにして、HTMLは文書を構成する部分(表題、見出し、段落、リスト…)を明示し、CSSはその表現方法(文字の大きさ、色、背景…)を指定する、といった役割を分担することになりました。
今でも、この仕様書に準じた「正しいHTML」について、様々な議論が交わされています。「仕様書に準じた文書を書くべきだ」と「仕様書に準じてなくたって読めればそれで良いじゃないか」といった単純な対立から、「仕様書に準じるとはどういうことなのか」「正しいとは何か」といった観念的な問題まで様々です。
私はこれらの点については単純に考えています。仕様書に準じた文書がHTML文書なのですから、HTML文書を作成したい私が仕様書に準じるのは当然のことです。しかもこの仕様書は、何処かの誰かが適当にデッチ上げたものではなく、多くの人たちが知恵を絞って議論して決めたものですから、準じるに足る十分な合理性があるでしょう。
そもそも、もし仕様書が無かったとしたら、何を基にして文書を作成したらよいのでしょうか。私は途方に暮れてしまいます。
W3Cが勧告するHTMLの仕様には色々と種類があります。その中で、私はいわゆるISO-HTMLに準拠してマークアップしています。その理由は、ISO-HTMLがISOであり、JISだからです。正式な国際規格なのですから、これに準じて文書を作成しておけば、今後問題を起こすことはそうなさそうです。なお、ISO-HTMLに準拠した文書は、同時にW3Cの勧告するHTML4.01にも適合した文書となりますから、W3Cの勧告にも準じていることになります。ISO-HTMLには制約が多いのですが、その分シンプルで、扱いやすい仕様であると私は考えます。
ISO-HTMLとは、ISO/IEC 15445:2000のことで、ISO(国際標準化機構)とIEC(国際電気標準会議)とが定めた国際規格です。同時にJIS X 4156:2000として、JIS規格にもなっています。
ISO-HTMLとしてマークアップするための規則は、DTD(Document Type Definition)で定められています。無理にDTDを読まなくても、ユーザーズガイドや多くの解説サイトを読めばその規則について知ることはできるわけですが、ここでは、勉強も兼ねてDTDを読んでいきます。理解できないところは後回しにしてとりあえず分かる所から読んでいくつもりです。
Pre-HTMLに関係する事柄についてはここでは省略します。私がhtml文書を作成する際、Pre-HTMLを作成していないからです。しかし、Pre-HTMLを作成することにこめられた意図は理解しておく必要があります。というよりも、その意図そのものがISO-HTMLの理念といえます。すなわち、「文書の階層構造」を意識して文書を作成することです。私は、普通に文章を書けば、その文章は自然と階層構造をもつと思います。
ここでは、マークアップする際の細かい規則、たとえば、段落(P)要素はブロック要素を含んではならない、といったことを理解することを目的としました。
ISO-HTMLのより詳しい解説としては、野嵜さんのISO-HTML夜話があります。ご一読をお勧めします。