HTML4.0について

トップ > アラカルト > HTML4.0について

W3Cについて

HTMLの標準化はWWW Consortium、通称 W3C という組織によって行われています。元CERNで、WWWの産みの親であるティム・バーナーズ・リー氏らが設立し、MIT、INRIA、および日本の慶応大学の3組織などが運営する非営利団体です。

W3C は Microsoft社や Netscape社や各社、各団体、各個人などと調整をとり、最も望ましいと思われる標準仕様を検討し、WD から PR を経て、最終的に REC という形で公開します。

略称種別意味
RECRecommendation勧告
PRProposed Recommendation勧告提案
WDWorking Draft草案
NOTENotesノート

W3Cが発行する技術文書の一覧は、下記URLを参照してください。

HTMLの歴史

古い歴史については私もあまりよく知らないのですが、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の入手先

HTML4.0 の仕様書(英語)は下記URLから入手できます。

下記URLから日本語訳を入手できます。

HTML4.0のタグと属性の一覧は、下記で確認できます。

HTML4.0での主な変更点

フレーム機能がサポートされました。

<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>, <xxx style="...">

その他にも次のタグが追加されています。

<abbr>, <acronym>, <bdo>, <del>, <ins>, <q>

StrictとTransitional

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 Communicator 4.0は、まだまだ HTML4.0 のレベルには達していないようです。

面白いのは、IE3.0のみがサポートしていたタグ(<col>、<object>など)はHTML4.0に多く採用されているのに対して、Netscape 3.0のみがサポートしていたタグ(<multicol>、<spacer>など)は殆どHTML4.0に採用されていないということです。

それどころか、<font>、<center>など、Netscapeが追加したタグの多くが「悪しきタグ」として Strict から外されています。

MicrosoftがW3Cの標準を先取りして開発しているのか、MicrosoftがW3Cを牛耳っているのか・・・どうも、釈然としないところがあります。

HTMLのポリシーとは

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もスタイルシートを完全にはサポートしておらず、両者の表示にばらつきがあります。特にNetscape Communicator 4.0での実装はひどく、使い物になりません。

確認が大変:IE4.0で確認しながらスタイルシートを用いて作成したページをIE3.0、Netscape 3.0、Netscape 4.0で表示してみると、表示の違いに、8割以上の人が愕然とするのではないでしょうか。

ポリシーが中途半端:「意味」を残して「見栄え」を排除しようとしているのにonClickや<button>を追加するなんざ、ポリシーが中途半端すぎませんか?

自分たちが守れないものを押し付けるな:よく見ると、W3Cのホームページ(http://www.w3.org/)自体、レイアウトのためにテーブルを使用していたりするようです。

スタイルシートは「標準」ではない:「標準」なんだから従うべきという意見がありますが、HTML4.0やスタイルシートは「Standard」ではなく「Recommendation(勧告・推奨)」です。

インターネット上の標準は通常IETFという機関で、最低2つ以上の実装例があり、互換性が保たれているか、現状の業界標準とてらしあわせて問題は発生しないかなど、十分な審議をもって可決されます。ところが、W3Cはこうした手順を十分にふまないまま「勧告」として公開してしまいました。逆に言うと、そういう手順をふまえずに発表しているから「標準」とは言わず、「勧告・推奨」としているのかもしれません。

マスコミも「勧告」と「標準」の違いも認識しないまま、HTML4.0を新しい「標準仕様」として宣伝しました。ただでさえ、Microsoft社のブラウザ無料攻撃にあって資金的にも苦しかったNetscape社が中途半端な対応版を出荷せざるを得なかった原因もそこらへんにあると思っています。

私の見解

では、どうすればよいのでしょうか? 私の見解としては、

文書の意味を定義するだけで、見栄えを定義するべきではない

というポリシーを貫くことをあきらめて、

HTMLでは見栄えも定義してしまおう!!

と、ポリシーの方を変えてしまえばよいのだと私は思っています。下記のようなタグなんかもあると便利ですよね。

<pict line="10,10,100,100">
<pict box="20,20,80,80">
<text x=50 y=50>ははは</text>

もちろん、スタイルシートがもう少し安定してきて、見栄えと意味を分離して効率よく書きたい人はそうすればいいし、特に分離する必要の無い人は分離しないで書けばいいし、知らないタグや表現できないタグは読み飛ばせばいいし・・・

私のこの意見には賛否両論あり、特に学識の高い「ポリシー重視派」の方からは反対意見も多いのですが、広めることが非常に困難なポリシーはポリシーにするべきじゃないと私は思います。

ほとんどのブラウザで全く同じ「見栄え」のホームページを作成できたら嬉しいですよね。(現在ではPDFとかを使用するか、全部画像にするかしないと無理)


Copyright (C) 1996-1999 杜甫々
1999年10月17日
http://www.tohoho-web.com/wwwxx009.htm