制作者の活動(PR)。

堀北真希ちゃんにうさ耳を着けた制作者の創作キャラクタ。次
主な作品

ソフトコンタクトレンズを入れる堀北真希うさぎ(うさ耳女子大生)を描いたイラストと仮想CM動画〜平成一桁頃のボシュロム『オプティマ』CM風に〜

現行のHTML規格。

HTMLには、さまざまな規格があります。

当サイトでは、PC向けには現行推奨規格であるXHTML 1.0 ストリクトを推奨しておりますが、他にも幾つかの規格があります。

現行のHTML規格・目次。

旧来のHTMLとXHTML。

XHTMLが策定されるまでのHTMLは、XHTMLと較べると大きな違いが幾つかあります。

旧来のHTMLのXHTMLとの違い。

一言で言えば、ベースとなる記述言語が旧来のHTMLではSGMLと呼ばれる言語である事に対し、XHTMLのベースとなる言語はXMLとなっている事が大きな違いです。

HTMLは、XHTMLと以下の点で異なります。

タグの省略がある程度認められていた。
XHTMLではタグの省略は一切出来ませんが、旧来のHTMLではタグを書かなくても要素の開始/終了点が明らかな場合はタグを省略する事が出来ました。
空要素には終了タグを付けない。
XHTMLでは空要素と言えども終了タグを付ける事になっていますが、旧来のHTMLでは空要素に終了タグを付けてはいけない事になっております。
要素名・属性名を大文字で書いても良い。
XML宣言を文頭に書かず、<!DOCTYPE>宣言から始める。

こうして見ると、旧来のHTMLはXHTMLより自由度が高いように見えるかも知れませんが、実際には旧来のHTMLは却って自由度を下げているといえます。

なぜXHTMLには制約が多いのか。

HTMLの、と言うよりSGML応用言語の欠点として、以下のようなものがありました。

要素が予め決まっていて、一切追加出来ない。

このため、必要な要素が無い場合もあり、その際には既存の要素を拡大解釈して使うしかありません。

他規格のSGML応用言語を同居させる事が出来ない
要素が固定されていて変更出来ないのなら、代りのSGML応用言語を併用出来ればいいのですが、そんな事も出来ません。

一方XHTMLのベースとなっているXMLでは、これらの問題点が全て解消されております。

要素を自由に定義する事が出来る。
XHTML等のXML応用言語でも、適宜要素を拡張する事が出来ます。
他規格のXML応用言語を同居させる事が可能
例えばXHTMLは数学の記述に適さない為、数式部分にはMathML(数式専用のXML応用言語)を用いると言った事が可能になります。

自由な拡張や他規格の言語との同居を可能にするには、マークアップでのタグの省略を禁じなければなりません。

要素名・属性名を小文字で書かなければならないのは、XMLでは大文字小文字を区別する仕様になっているからですが、これはパーサ(文法解析プログラム)の負担を減らす事もあるのでしょう。

XML宣言の導入は、文字コードの正確な判断に役立ちます。

このように、XHTMLでの制約は、より高度な機能を実現する為のものと言えるのです。

旧来のHTML規格。

旧来のHTML規格には、以下のものがありますが、XHTMLが策定された今日ではわざわざ覚える事も無いと思われます。

HTML 2.0/2.x。

HTML初の公式規格で、現在はどちらも正式に廃止され、現行規格ではありません。

従って、ウェブ制作者は新たなウェブを作る際にはHTML 3.2以降を利用しなければなりません。

HTML 2.0とHTML 2.xの違いは、lang属性(XHTMLでのxml:lang属性)があるか無いかです。

HTML 4.01はHTML 2.xをベースに拡張したものです。

破棄された規格のため、文書型宣言については割愛させていただきます。

HTML 3.2。

主にネットスケープとインターネットエクスプローラに搭載された独自仕様タグの中で汎用性が高いものを標準規格として追認したものです。

当時、ネットスケープとマイクロソフトは、シェアを奪うために独自仕様の物理要素を多数追加して、その結果あるブラウザ向けに書かれたウェブページが他のブラウザでは満足に見られないと言うような弊害が多発しました。

これでは、ウェブの相互運用性に問題が生じると言う事で、設立間も無い標準化団体・W3Cは物理要素を標準化する事としたのです。

その結果勧告されたのがこのHTML 3.2と言うものです。

尚、HTML 3.2は厳密にはlang属性(XHTMLでのxml:lang属性)による言語指定が出来ないため、日本語文書には使えない規格です。実際には日本語文字を用いたと言うだけで文法エラーにはしませんが。

また、HTML 3.2は現在でも推奨はされないものの、現行規格として存続しております。

HTML 3.2の文書型宣言は以下の通りです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

HTML 4.01。

現行推奨規格のXHTML 1.0のベースとなった規格です。

HTML 3.2が現状の物理要素を追認したものに対して、HTML 4.0(HTML 4.01の旧版)ではより本来のHTMLのあり方に近い物になりました。

HTML 4.01の考え方 - 相互運用性の向上。

そもそも、HTMLと言う言語は、ウェブ文書のフォーマットを特定のソフトに依存させない事に主眼が置かれていました。

どんなヴューワを用いていても、ウェブ文書を適切に利用出来るようになるからです(相互運用性の確保)。

その後、ウェブが爆発的に普及して一般社会にも浸透して行く上で、この相互運用性と言う考え方は「障碍のある閲覧者でも問題無く利用出来るようにする事」などと言ったより一般的な問題に対する考え方に発展して行きました。

その答えとして、特定の環境に依存しない仕様を目指した訳です。

この他、相互運用性を高めるために以下のような措置が執られました。

物理要素の大半を排除

物理要素は、音声ブラウザや点字出力では適切な表現が出来ません(例えば「赤い文字」を音声や点字ではどう表現すべきでしょうか? 無理ですね)。

そこで、<font>要素など特に相互運用性を奪う物理要素を排除し、CSS(カスケーディングスタイルシート)などのユーザ定義スタイルシートを利用する事で物理要素を使わない方向に持って行きました。

国際化に対応

ウェブが国際化するにつれて、当然、外国語文書なども多数出廻る事になります。

言語に合わせたブラウザのスタイルシートにどう対応するか, 将来の実現を目指している自動翻訳のサポートをどうやって実現するかなど、外国語文書でも問題無く利用出来るようにするには、仕様でも配慮が必要でした。

HTML 4.0ではlang属性(XHTMLでのxml:lang属性)などが追加され、日本語文書でも問題無く使えます。

とは言え、物理マークアップが主流だった当時、この新しい方向に一般のウェブ制作者が即座に対応出来るとは思えず、またウェブブラウザのメーカにとってもこれらの仕様に即座に対応する事は困難でした。

そこで、旧来のウェブ文書で多用されていた排除すべき要素を排除すべきと言いながらも残しておいた移行期間中の規格も合わせて用意されたのです。

この他、HTML 3.2で導入を見送られたフレームについても、別文書型で対応する事にしました。

HTML 4.01の"三つの型"。

以上の理由から、HTML 4.01には大きく分けて以下の三つの規格があります。

HTML 4.01 ストリクト(正式版)。

HTML 3.2やむを得ず導入した物理要素タグ・物理属性の大半を排除した、いわば正式版の規格です。

HTML 4.01 ストリクトの文書型宣言は以下の通りです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 トランジッショナル。

HTML 3.2やむを得ず導入した物理要素タグ・物理属性などの大半を残した、いわば移行期間中の規格です。

排除すべき要素・属性の大半はCSSや他の要素で置換えが出来ますし、実はその方が便利なのですが、どうしてもCSSに対応していない(グラフィカルな)旧型ブラウザにも対応したい場合などはこの文書型を使う事が許されます。

HTML 4.01 トランジッショナルの文書型宣言は以下の通りです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 フレームセット。

フレーム文書に対応した規格です。

フレーム以外はトランジッショナルと同じです。

実際問題として、フレームを利用しないのであればトランジッショナル規格で充分です。

HTML 4.01 フレームセットの文書型宣言は以下の通りです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

ISO-HTML(JIS-HTML)。

正式にはISO/IEC 15445:2000と言う国際規格です。

日本でもJISが標準規格として採用しております。

基本的にはHTML 4.01 ストリクトを更に厳しくしたものです。

具体的には、

などと言った規制があります。

文書型宣言は以下の通りです(二つありますがどちらを用いても構いません)。

追記。(平成16年12月17日)

文書型宣言は仕様上は二つあるうちのどちらを用いても構わないのですが、インターネットエクスプローラでのCSSの処理を考えると、前者の方が宜しいようです。

XHTMLの規格。

SGMLが持つさまざまな欠点を改善した規格がXMLです。

そのXMLの元でHTMLを再定義した規格がXHTMLとなります。

XHTML 1.0。

現在、W3Cが現行推奨規格として指定しているものです。

HTML 4.01をXML化したもので、従ってストリクト・トランジッショナル・フレームセットの三つの型があります。

本来はストリクトが望ましいのですが、CSSに対応していない(グラフィカルな)ウェブブラウザの事を配慮して物理要素や属性などを用いたい場合はストリクトで無い文書型を採る事が許されます。

各文書型の文書型宣言はそれぞれ以下の通りとなります。

XHTML 1.0 ストリクト(正式版)。

HTML 4.01 ストリクトをXML化したもので、XHTML 1.0の正式版と言えます。

CSSに対応したグラフィカルなPC向けウェブブラウザが現在ほぼ十割を占めている現状からすれば、最も使い易い仕様と言えます。

XHTML 1.0 ストリクトの文書型宣言は以下の通りです。

<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 トランジッショナル。

HTML 4.01 トランジッショナルをXML化したもので、HTML 3.2でやむを得ず導入している物理要素などが残されております。

旧式のグラフィカルなウェブブラウザでもある程度の見栄えを確保したい場合などに利用しても良いとの事ですが、現在ではそう言う旧式のブラウザは殆ど残っていないので、わざわざこの仕様を用いる必然性もないでしょう。

XHTML 1.0 トランジッショナルの文書型宣言は以下の通りです。

<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 フレームセット。

HTML 4.01 フレームセットをXML化したもので、フレーム機能を利用するための文書型です。

フレーム以外に関しては、HTML 4.01 トランジッショナルと全く同じ文書型となります。

フレーム機能を使いたい場合はこの文書型を撰べば良いでしょう。

XHTML 1.0 フレームセットの文書型宣言は以下の通りです。

<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1。

XHTMLの最新の規格です。W3Cはまだ現行推奨規格にはしていませんが、現在ではもう現行規格にしても問題は余り無いと思われます。

XHTML 1.0策定後にXHTMLの要素をカテゴリー分けし(正式にはモジュール化といいます)、その中で標準的なモジュールを集めた規格です。

文書型宣言は以下の通りです。

<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

XHTML ベーシック。

XHTML 1.1で解説したXHTMLのモジュールの中で、最小限必要と思われるものだけを集めた規格です。

主に携帯電話などの低スペック端末向けに考案されたものですが、PC向けサイトに使う事も出来ます。

文書型宣言は以下の通りです。

<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

XHTML モバイル・プロファイル。

OMA(携帯電話向けウェブの規格を定める団体)の内部組織「WAPフォーラム」が策定したXHTMLです。

XHTML ベーシックを若干拡張したものですが、XHTML 1.0 トランジッショナルにも完全に含まれるものです。従って、モバイル向けとはいえ、PC向けサイトに使う事も出来ます。

文書型宣言は以下の通りです。

<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

XHTML プライマリ。(平成16年12月17日)

この規格は私的な規格なのですが、興味深いものなので解説しておきます。

ISO-HTML(JIS-HTML)XHTML ベーシックは性質が全く異なるものですが、無駄の無いシンプルな仕様であるという点ではどちらも良く似た規格と言えます。

XHTML プライマリはXHTML ベーシックのサブセットにISO-HTMLの構造的な意味付けを加えた規格で、空要素タグの表記を代えるなどするだけでISO-HTML準拠の文書にもなります。

現在ヴァージョンは1.1となっており、その文書型宣言は以下の通りとなります。

<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC "+//IDN purl.org/net/lena//DTD XHTML Primary 1.1//EN" "http://purl.org/net/lena/xhtml-primary11.dtd">

どの文書型を撰ぶべきか? (平成16年12月18日)

文書型が沢山あると、その内のどれを撰べば良いのか分からなくなるかも知れません。

ここでは、どの文書型が適切かを考えて見ましょう。

XHTMLかHTMLか?

実のところ、XHTMLで問題は無いでしょう。

ただ、XML宣言が問題になる事があり(これは実はサーヴァが文書を送出する際に文字コードを指定するようにしていれば、UTF-8コードで無くても省略する事が出来ます)、その為HTMLを用いた方がいい場合があるかも知れません。

また、ISO-HTMLのような徹底した構造化文法を導入している仕様は、XHTMLでは私的規格のXHTML プライマリぐらいしか無く、このためにISO-HTMLを選択すると言う事もあります。

携帯端末対応にするか?

この場合、携帯端末向けのXHTML ベーシックXHTML モバイル・プロファイルを用いると良いでしょう。

どちらも、現在のところPCでも問題無い仕様ですが、PCと共有するならXHTML ベーシックの方が良いかも知れません。

また、在来機ではCSSが使えないため、やむを得ずXHTML 1.0 トランジッショナルを用いると言う手もあるでしょう。

JAVAスクリプトを用いるか?

JAVAスクリプトを用いる場合。

JAVAスクリプトを用いる場合、文書型はXHTML 1.0, XHTML 1.1HTML 4.01のいずれかとなります。

その他の文書型には、<script>要素が定義されていないからです。

JAVAスクリプトを一切用いない場合。

逆にJAVAスクリプトを一切用いない場合、文書型としてXHTML ベーシックISO-HTMLを撰ぶ事も出来ます。

特に文章をしっかり公開出来れば充分だ(小説や日記など)と言う方には、これらの文書型には無駄なものが一切無いので検討に値するでしょう。

ルビ付きテキストを使うか?

HTML文書中にルビ付きテキストを含めたい場合は、XHTML 1.1以外の文書型は使えません。

旧来のブラウザへはどの程度配慮する?

旧来のブラウザのためにサポートされてきた要素や属性の中には、XHTML 1.1, XHTML ベーシック及びISO-HTMLなどでは削除されているものがあります。

ブラウザ配慮で文書型を撰ぶ例。

例えば、<a>要素などのname属性はXHTML 1.1及びXHTML ベーシックではサポートされません。

これらに関してはid属性を用いれば良いのですが、ネットスケープ 4.xなどid属性を認識しないブラウザもあります。

もっとも、<a>要素のname属性をid属性に置換えても、当該箇所にフォーカスが移らないだけでページが全く見られなくなる訳ではありません

この場合、配慮としては以下の二段階のレヴェルがあると思います。

終点アンカーにフォーカスが移らないのを重大な問題と考える。

この場合は、name属性を排除していないXHTML 1.0, HTML 4.01またはISO-HTMLを撰べば良いでしょう。

サポートしていないとは言え一応閲覧は可能なのだから、配慮は特に不要と判断する。

この場合は、XHTML 1.1XHTML ベーシックを用いる事も出来ます。

この他にも、ブラウザの実装に配慮して排除勧告が出ている要素や属性を用いざるを得ない場合があるでしょう。

そう言った場合にはXHTML 1.0 トランジッショナルHTML 4.01 トランジッショナルを用いざるを得ません。

まとめ。

いろいろ意見があると思いますが、制作者は思うに必要以上に大きな仕様は必要無いと言う事です。

例えばXHTMLなら仕様の小さい順に、

  1. XHTML ベーシック
  2. XHTML モバイル・プロファイル
  3. XHTML 1.1
  4. XHTML 1.0 ストリクト
  5. XHTML 1.0 トランジッショナル

となり、HTMLだったら同様に小さい順に、

  1. ISO-HTML
  2. HTML 4.01 ストリクト
  3. HTML 4.01 トランジッショナル

となります。

実際にどんなウェブを作りたいのかを考えた上で、目的に合った文書型を撰ぶようにして下さい

追記・同一サイトで異なる文書型を混在させる事について。

実際のところ、各ウェブページが同一サイトに属しているからと言って、文書型を統一する必要はありません

各文書は独立したウェブページとなっている筈ですので、あるページでは<a>要素にname属性を使いたいからXHTML 1.0 ストリクトにして、他のページではそう言ったものが一切要らないからXHTML ベーシックと言うような使い分けも全く問題はありません。

こだわる方もいるかも知れませんが、文書型を必要に応じて撰ぶ事自体には全く問題はありません。

しらぎくのウェブサイト作成入門サイトマップ

ページ外へのご案内。

marguerite.site@gmail.com