HTMLのバージョンって何ですか?

[上に] [前に] [次に]
Asuka [E-Mail] 1998/01/12(月) 16:10:34
よくHTML3.2だとかHTML4.0という名前を耳にするのですが、
いったいこれは何を表しているんでしょうか。

また、このバージョンを判断するにはどうすればいいのでしょうか。
よろしくお願いします。

Daikun [E-Mail] 1998/01/13(火) 01:22:17
HTMLのバージョンのことですね。
これは、「このタグはこんな意味で使いましょう」と決められたものです。
ただいま手元にある2冊の本をまとめたところ、次のようになりました。
(ただし多少古い本です)

HTML 0 ---- 非常に基本的な書式のみ(スペックは「不明」と堂々と載ってたりして(^^;))
HTML 1.0 -- 93年6月。0にグラフィックイメージなどをサポートしたもの。
HTML + ---- 93年11月。大幅なタグの拡張。
HTML 2.0 -- 95年2月。FORM関係のタグが追加された。
HTML 3.0 -- 数式関係がサポートされた(HTML+で採用され、HTML2.0で採用されなかった、
TABLEなども追加されている)

まぁ、これが正式な規格なのでしょうが、HTMLの場合、NetscapeやIEなど、
「ブラウザ独自のタグ」なるもの(つまり規格外)が存在する一方、
規格にあって、ブラウザに対応しないもの(数式関係は全部(^^;))も
存在しています。

ですからHPを作る側にとっては、HTMLのバージョンはあまり問題ではなく、
どのブラウザでどのタグが使えるか、が問題になるのです。

ちなみに、僕の持っている本はいずれも1996年上半期に出されたものです。
その後、HTML関係の記事は特に読んでいないのですが、
きっと新たにHTML4.0が発表されたのですね。
(Dynamic Fontとかについてなど、なのでしょうか?)
友人から聞いたうわさでは、数式関係はいずれTeX(理工系には普及している、
数式を書くのに便利なワープロみたいなもの)と互換性を持つ
などと言っていますが、本当なのでしょうか?

いずれにせよ、問題はNNやIEと言ったブラウザで使えるかどうかなので、
最後の「バージョンを判断する」の質問には答えられません(^^;)

Asuka [E-Mail] 1998/01/13(火) 18:56:26
[[解決]]
レスありがとうございます。

フム・・・バージョンは判断できませんか・・・
でも気にしなくてもよさそうですね。
なんか本までとって調べていただいたみたいで、
本当に恐縮です。

確かに、重要なのはブラウザでちゃんと表示できるかどうか
ですね。わかりました。解決にさせていただきます。

どうもありがとうございました。また何かあったら(^^;)
お願いいたします。




繭春 2000/01/19(水) 00:15:26
HTMLって例えるならば何なんですか??
初めて聞く言葉なので全然わかりません。

EMI 2000/01/19(水) 00:38:56
HTML3.0は破棄されています。これを使用してはいけません。
ちなみに、3.0以降HTMLで数式はサポートされていません。
数式をサポートするものとして、MathMLというものがあるらしいです。
私はよく知りませんが。

また、HTML 0(初耳です)・HTML 1.0・HTML +も正式な仕様はありません。
これらを使用したHTML文書を書いてはいけません。

ところで、正式に採用されているHTMLはHTML2.0以外には次のようなものがあります。
それぞれ、以下の文書型定義宣言とともに使用します。

HTML2.x‥‥‥HTML2.0の国際化対応バージョン
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML i18n//EN">

HTML3.2‥‥‥HTML2.0に表現力を強化したもの。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

HTML4.01 Strict‥‥‥HTML2.xにスタイルシート・スクリプト表などの機能を加えたもの。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

HTML4.01 Transitional‥‥‥HTML4.01 StrictにHTML3.2の要素を加えたもの
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

HTML4.01 Frameset‥‥‥フレーム文書を作るために使用されるHTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

まぁ、上の説明は非常に簡単なので、あまり正確ではないですが。
とりあえず、以上が正式なHTMLの規格です。
他にもHTML4.0があるんですけど、あまり関係ないんで省略。

あ、HTML2.0の文書型定義宣言は
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">です。

文書型定義宣言は、そのHTMLがどのバージョンで書かれているかを示すために必要なものです。
HTML文書は、必ず文書型定義宣言ではじめなければなりません。

EMI 2000/01/19(水) 01:13:15
追加です。
HTMLのバージョンを判断するには最初の文書型定義宣言を見ます。

ただ、巷に氾濫するHTML文書には、文書型定義宣言が付いていないか、
付いていても文書型定義に添っていないのがほとんどですが。

また、以下のリンクでHTML文書が文書型定義に添っているかどうかチェックすることができます。

Another HTML-LINT
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html

W3C HTML Validation Service
http://validator.w3.org/

とほほ 2000/01/19(水) 03:01:08
前にも書いたかもしれませんが・・・

> HTML3.0は破棄されています。これを使用してはいけません。
> 正式に採用されているHTMLは・・・
> HTML文書は、必ず文書型定義宣言ではじめなければなりません。

インターネットにおける標準は、IETFという組織によって決められます。
現在、インターネット標準になっているのは、IPやTCPなどごく一部の
プロトコルに限られています。

インターネット標準になるには、すくなくとも、2つ以上の実装例があり、
それが相互に互換性を持っていることが確認される(つまり、仕様書に
不明確な点が無いかが検証される)という手順経る必要があります。

しかし、HTML3.2 や HTML4.0 などの仕様書は、こうした手順をふまないまま、
W3Cという組織から「勧告」として公開されています。勧告=Recommendation
は、「推奨」という意味もあります。

もちろん、インターネット上のやりとりを円満にするために「勧告」
に従ったHTML文書を書く方が望ましいのは事実ですが、従わなくては
ならないとか、勧告に従わなければHTMLではないとか言うのは、
ちょっと言い過ぎのような気がしています。

私はどちらかというと、HTML3.2やHTML4.0の仕様を完全に把握する
なら、DOCTYPEを書けばいいし、完全に理解していないのなら、
DOCTYPEは書かない方がよいと思っています。

もちろん、すべての人が完全に把握するか、把握しなくても完全な
HTMLを吐き出すエディタがあれば理想なのでしょうが、現実は、そ
う甘くはないようで・・・

# あ、ただ、理想に近づこうという努力は、行うべきでないとは
# 言っていないです・・・・(^^;)

とほほ 2000/01/19(水) 03:09:33
読み返してみると、要点がぼやけていますね。
言いたかったのは・・・

「<!DOCTYPE>は書かなきゃいけない。」という言葉に惑わされて、
HTML4.0の仕様も理解していないのに、無茶苦茶なHTMLにDOCTYPE
をつけている・・・という人を増やしたくない。

<!DOCTYPE>は、本当に、その仕様に準拠していることを明示するため
に使用して欲しい。

準拠もしていないんだったら、つけないで欲しい。
(HTML4.0はあくまで推奨ですから、HTML4.0自体に準拠しないという
選択肢もある訳ですから・・・)

wosamu 2000/01/19(水) 06:28:27
こういうこというとお叱りを受けそうなのですが。
HTMLの仕様に完全に準拠した形で記述したなら
すべての(またはほとんどの)環境で同じように解釈されるというなら
仕様を理解して記述していきたいと私は思うのですが現状はどうなんでしょうか?
現在仕様を理解できていないのでわからないのですが、
ここで聞きかじった範囲では必ずしもそうではないように思えるのですが。

三原克大 [E-Mail] [HomePage] 2000/01/19(水) 11:28:31
とほほ様(管理人者でいらっしゃいますから)の指摘は
論理的整合性があるのですが、
ツールが解釈に困ろうと人間が感情を害そうと
DOCTYPE 宣言をつけてほしいと私は考えています。

理由は、Asuka さんの最初の質問、
  HTML のバージョンを判断する手段があるのか
への答え
  DOCTYPE 宣言が無い限り厳密には判断できない
からです。

確かに、歴史的経緯を知っている人が見れば分かりますし
HTML 4.01 Transitiional は誤解されることを期待していますが、
HTML は必ずしも上方互換性があるわけではありませんから
より以前に策定された仕様なら正しい HTML 文書もあります。

仕様に準拠していないと指摘するには、
準拠するつもりの仕様を明言してもらってはじめて具体的になります。
EMI さんが紹介するツールも、
DOCTYPE 宣言がない HTML 文書には独断を下して
はじめて仕様への適合性を判定できるんですから。

仕様を把握していなかったとしても
DOCTYPE 宣言を指定してもらえれば
いちゃもんのつけ方も有用になる、そう考えています。

t 2000/01/20(木) 04:51:32
私は、とほほさんのご意見に賛成です。

 > 「<!DOCTYPE>は書かなきゃいけない。」という言葉に惑わされて、
 > HTML4.0の仕様も理解していないのに、無茶苦茶なHTMLにDOCTYPE
 > をつけている・・・という人を増やしたくない。

HTMLにおいて、
文書型定義宣言(DOCTYPE宣言)、DTD、又は「HTMLのバージョン」 は、
現実としてまったく意味を成さないものであり、
ソースを見て存在を確認できるだけのものです。

そして、あるHTMLの仕様に完全に準拠した形で記述したなら
すべての(またはほとんどの)環境で同じように解釈されるという
わけではないと思います。(wosamu さんのご質問に対して)
例:W3CのHTML4の視聴覚障害者用に追加されたタグ(要素)など
 # 古いHTML仕様ならば「タグの意味の解釈」は、
 # ほとんどの環境で同じようにされるはずですが。

又、意味の解釈のみならずほとんどの環境で同じ様に表示させようと思ったら、
前出のW3C勧告のHTML仕様やIETFのHTML仕様に準拠してたら、現状では
到底不可能orムチャクチャ難しいです。(表示させたいものによるが)
 # 表示(ビジュアル的なもののコントロール)に関して言えば、まだ、
 # テーブルでレイアウト+1px透過GIF+CSSでフォントサイズpx指定
 # といったものに頼るしかないと思います。

W3Cは確かに、CSSやXML・XSL等の仕様/規格作り・標準化の取り組みなどで、
WEB関連技術をリードしている重要で尊重すべき存在ですが、
そもそも文書型定義宣言(DOCTYPE宣言)は、SGMLのDTDを示す宣言であり、
それはW3CのHTML DTDを使わなきゃいけないという事ではないと
理解しております。従って、
 > 正式に採用されているHTMLは・・・
といった表現はおかしいと思います。

以上書いた事で、私の勘違いや認識に間違いがあれば
恥(アホ)の上塗りになりますが、、、
この件で、「技術の標準化への動きに対する尊重」という点ではなく、
ただ単純に「これが正式な仕様だから、こう記述して完璧に準拠しなきゃダメ」
って言うのは、
一般的に理系人間が陥りやすい(と言われている?)
用意されている解への盲目的な執拗なまでの絶対服従に過ぎないから
シカトした方がいいと思います。
 # 偏見?ちょっと毒っぽい?でも、この手の人、煩すぎます


NNとMSIEの独自拡張が進みすぎた現在、
CSSもまともに使えるわけではないので、(特にNN4は問題多すぎ!)
過渡期的に「誰でも満足できるHTMLのDTD」があればいいのでは
ないでしょうか?
W3CのHTML4.01 Transitional (http://www.w3.org/TR/html401/loose.dtd)
が、一番自由なDTDだと思うので、
http://validator.w3.org/ で自分のHTMLを試して、
出るエラーのところのDTDを修正してオリジナルなものを作れば、
SGML的にも正しいものが出来るのではないでしょうか?
 # それでも現実として意味ないし、時間の無駄かも

#げっ、早く寝なくては。。

moci 2000/01/20(木) 06:34:22
> すべての(またはほとんどの)環境で同じように解釈されるという
> わけではないと思います。(wosamu さんのご質問に対して)

と書きながら、

> 又、意味の解釈のみならずほとんどの環境で同じ様に表示させようと思ったら、

とも書いてしまうことからして、「解釈」を単に「表示」と
取り違えてらっしゃるのではないでしょうか。
仕様に定められていないことまで期待するのは間違いです。

仕様に従ってHTMLを記述することの利点は、ひとえに
仕様に定められた範囲内で仕様通りの結果を期待できる
ということです。逆に言えば、それ「だけ」です。
それ「以上」はありえません。それが仕様というものです。

おそらくは「表示を統一させたい」という欲求からの発言と思いますが、
そのような趣旨で表示を統一させる目的を持たない部分を攻撃するのは
なんの意味もありません。その意味において

> ただ単純に「これが正式な仕様だから、こう記述して完璧に準拠しなきゃダメ」

という態度に反対なことには、異論はありません。理系人間にそういう
態度をとる人が多いなら、そのような理系人間は仕様というものを
理解していないとしか言いようがありません。理解していない仕様に
絶対服従を求めたり、逆に批判したりするのは、どちらもけして
誉められたことではないと思いますよ。

[上に] [前に] [次に]