HTMLの標準化はWWW Consortium、通称 W3C という組織によって行われています。元CERNで、WWWの産みの親であるティム・バーナーズ・リー氏らが設立し、MIT、INRIA、および日本の慶応大学の3組織などが運営する非営利団体です。→ W3C: http://www.w3.org/
W3C は Microsoft社や Netscape社や各社、各団体、各個人などと調整をとり、最も望ましいと思われる標準仕様を検討し、WD から PR を経て、最終的に REC という形で公開します。
REC Recommendation 勧告 PR Proposed Recommendation 勧告提案 WD Working Draft 草案 NOTE Notes ノート W3Cが発行する技術文書の一覧は、下記URLを参照してください。
http://www.w3.org/TR/
古い歴史については私もあまりよく知らないのですが、HTML2.0というのがRFCという文書で規定されています。 その後も、テーブル機能の追加など、ちょこちょことRFCで追加定義されているようです。その後、HTMLの時期バージョンがいろいろ検討されていましたが、この間に、Netscape社やMicrosoft社は、自社のWebブラウザに<BLINK>や<MARQUEE>など、独自のタグを追加していきました。独自タグの追加については、「標準を無視した暴挙である」とか、「標準を待っていては技術革新はできない」などと、賛否両論でした。
W3Cでは、HTML2.0の次バージョンであるHTML3.0を検討していましたが、これは、Netscape社やMicrosoft社の動向をうまく取り入れることができず、調整難の末、完全に廃案になってしまいました。
その後、HTML3.2が「勧告」となりましたが、これはHTML3.0とは全く別物です。
そして、現在、HTML4.0が最新バージョンとして「勧告」されています。
HTML4.0 の仕様書(英語)は下記URLから入手できます。http://www.w3.org/TR/REC-html40下記URLから日本語訳を入手できます。http://www.asahi-net.or.jp/~sd5a-ucd/ref-html40j/index.htmlHTML4.0のタグと属性の一覧は、下記で確認できます。HTMLサポート状況一覧
フレーム機能がサポートされました。<FRAME>, <FRAMESET>, <IFRAME>, <NOFRAMES>, <XXX TARGET="...">フォーム機能が強化されました。<BUTTON>, <FIELDSET>, <LEGEND>, <LABEL>, <OPTGROUP>, <XXX ACCESSKEY="...">, <XXX TABINDEX="...">テーブル機能が強化されました。<COL>, <COLGROUP>, <TBODY>, <THEAD>, <TFOOT>スクリプトやオブジェクト埋め込み機能が強化されました。 <SCRIPT>はHTML3.2でも定義されていたようです。 今回も、定義しているのは枠組みだけで、JavaScript や VBScript や Java については何も触れられていません。<NOSCRIPT>, <OBJECT>, <PARAM>, <XXX onClick="...">などスタイルシートがサポートされました。<SPAN>, <XXXX STYLE="...">その他にも次のタグが追加されています。<ABBR>, <ACRONYM>, <BDO>, <DEL>, <INS>, <Q>
HTML4.0には、「Strict(厳格)」という仕様と「Transitional(慣例)」という2つのレベルの定義があります。現在の HTML は「見栄えをHTMLで記述しない」というポリシーを推し進めようとしており、「Strict」では、<FONT>、<CENTER>、<U>、<S>など、見栄えに関する多くのタグが使用禁止されています。 (しかし、不思議なことに<BIG>や<B>は禁止されていないんですね。)
しかも、<BODY>タグのすぐ後ろに <IMG> タグを記述してはならないなど、タグの有無だけでなく、いろいろな制限があるようです。
しかし、「Strict」はあまりにも厳格すぎるという意見もあったのでしょうか、上記タグも使用許可し、さらに、フレーム機能なども加えた仕様を「Transitional」として公開しました。
W3Cとしては「Strict」を使って欲しがっているようですが、企業内での文書を統一するなどの目的が無い限り「Transitional」を使用しておけば問題はないと思います。
Internet Explorer 4.0は、HTML4.0 の機能の大半を取り入れています。 Netscape Navigator 4.0は、まだまだ HTML4.0 のレベルには達していないようです。面白いのは、IE3.0のみがサポートしていたタグ(<COL>、<OBJECT>など)はHTML4.0に多く採用されているのに対して、NN3.0のみがサポートしていたタグ(<MULTICOL>、<SPACER>など)は殆どHTML4.0に採用されていないということです。
それどころか、<FONT>、<CENTER>など、NNが追加したタグの多くが「悪しきタグ」として Strict から外されています。
MicrosoftがW3Cの標準を先取りして開発しているのか、MicrosoftがW3Cを牛耳っているのか・・・どうも、釈然としないところがあります。
HTMLはSGML(企業間で文書をやりとりする際の書式規格の一種)をベースにしていますが、SGMLには次のポリシーがあります。
文書の意味を定義するだけで、見栄えを定義するべきではない そもそもSGMLでは標準的なブラウザというものは存在せず、章や段落もHTMLブラウザのように表示したり、ツリー的なビューアで表示したり、いろいろな表示手段で見ることを想定して作成されます。
HTMLもSGMLをベースとしているのですが、ブラウザでの「見栄え」を制御せざるをえなかったことや、Netscape社による機能拡張により、SGMLのポリシーから逸脱したタグが実装されるようになってきました。
上記ポリシーに従うと、<B>、<I>、<FONT>、<BIG>、<CENTER>などのタグは「見栄え」を制御する「悪しきタグ」なのだそうです。可能な物については「見栄え」ではなく「意味」を定義するタグに置き換える、例えば、<B>の代わりに<STRONG>を用いることが勧告されています。
配置の目的にテーブルを用いたり、1行開ける目的で<P>を用いたり、単なる字下げの目的で<BLOCKQUOTE>を用いたりすることも、タグの本来の意味を無視した「悪しき用法」なのだそうです。
<B>を<STRONG>に置き換えるのは簡単ですが、<FONT SIZE=n>は何に置き換えればよいのでしょうか。HTMLの標準化組織である W3C は、この答えとしてスタイルシートを考案しました。ヘッダ部の<STYLE>〜</STYLE>の間に「見栄え」に関する記述をすべて隠蔽してしまい、タグで記述する部分からは「見栄え」の定義を取り去って、「意味」の定義だけを残そうというものです。詳細は「とほほのスタイルシート入門」を参照してください。
スタイルシートは「標準」なので、これからはどんどん使用すべきという意見があります。私も使用してみようとチャレンジしたのですが、いろいろ問題がありすぎ、現状、無理してまで使用すべきものではないという結論に達しています。そのいくつかの理由を以下に紹介します。ブラウザの実装に問題がありすぎ:現状、NetscapeもMicrosoftもスタイルシートを完全にはサポートしておらず、両者の表示にばらつきがあります。(NNの方がひどい)
確認が大変:IE4.0で確認しながらスタイルシートを用いて作成したページをIE3.0、NN3.0、NN4.0で表示してみると、表示の違いに、8割以上の人が愕然とするのではないでしょうか。
メリットが無い:文書から見栄えを分離なんて言っていますが、<FONT COLOR=red> と書くのと <SPAN CLASS=colorRed> と書くのでは、結局一緒ですよね。
スタイルシートは「標準」ではない:「標準」なんだから従うべきという意見がありますが、HTML4.0やスタイルシートは「Standard」ではなく「Recommendation(勧告・推奨)」です。
エスペラント語反対:ここまで<FONT>や<CENTER>が広まっているのに、今更 HTML4.0 strict + CSS を使えというのは、母国語に慣れた人たちにエスペラント語を使えというのと同じです。
ポリシーが中途半端:「意味」を残して「見栄え」を排除しようとしているのにonClickや<BUTTON>を追加するなんざ、ポリシーが中途半端すぎませんか?
自分たちが守れないものを押し付けるな:よく見ると、W3Cのホームページ(http://www.w3.org/)自体、レイアウトのためにテーブルを使用していたりするようです。
では、どうすればよいのでしょうか? 私の見解としては、
文書の意味を定義するだけで、見栄えを定義するべきではない というポリシーを貫くことをあきらめて、
HTMLでは見栄えも定義してしまおう!! と、ポリシーの方を変えてしまえばよいのだと私は思っています。下記のようなタグなんかもあると便利なのになぁ。
<PICT LINE="10,10,100,100"> <PICT BOX="20,20,80,80"> <TEXT X=50 Y=50>ははは</TEXT>私のこの意見には賛否両論あり、特に学識の高い「ポリシー重視派」の方からは反対意見も多いのですが、広めることが非常に困難なポリシーはポリシーにするべきじゃないと私は思います。
ほとんどのブラウザで全く同じ「見栄え」のホームページを作成できたら嬉しいですよね。(現在ではPDFとかを使用するか、全部画像にするかしないと無理)