文章が余計かもしれないHTML情報源リンク集

1997-1999 (最終更新: 1999年9月9日)
内田明
uchida@happy.email.ne.jp

このページは、HTMLについての 基本的な理解を助けることを目的としたリンク集です。 日本語の読み書きが不得手な方や、 特別な応用方法を知りたい方には、たぶん役立ちません。

HTMLとは何者なのか

HTMLの概略

HTMLというのは、主に World Wide Web で共有する ハイパーテキスト形式のオンライン文書を作る際に用いるものです。 例えばこのページのように、見出し部分を <h2>HTMLとは何者なのか</h2> とマーク付けしたりして、テキストデータの部分部分が「見出し」 「段落」「箇条書き」「ハイパーリンク」 などの役割を持った1カタマリであることを示します。 マーク付けしたテキストデータをWWWブラウザで眺めると、 今ご覧のような状態に見えるというわけです。

また、HTMLには、テキストの役割を表す能力に加えて、 当該HTMLファイルに含まれない外部のテキストや、画像ファイル、 音声ファイルなどを「ページ」の中に割り付けるよう指示する能力もあります。

HTMLは、特定のハードウエアやソフトウエアに縛られることなく 相互運用可能であるようなマーク付けルール体系として、SGMLによって定義づけられています。 全体像をざっくり理解するには、 現在内田が制作中の「はじめてのWebドキュメントづくり」をどうぞ。

HTMLの仕様とその邦訳

HTMLは、1990年代の初めに Tim Berners-Lee によって原型が作られ、 1998年までの間に、3段階にわたって体系化が成されました。 市販の入門書・参考書の多くが、この、HTML 2.0、HTML 3.2、 HTML 4.0のどれかに基づいた解説を行っている筈です (中には体系化案として書かれた文書であるHTML+HTML 3.0に基づくものや、 原型に近い時期の文書に基づくものもあったりします)。 基本的な内容は各段階において変わっていませんけれど、 商業的な理由や無知に基づく不可思議な解説が行われている場合もあるので、注意が必要です。

HTML 2.0(とその国際化仕様であるHTML 2.x)は Internet Engineering Task Force が仕様書としてまとめた文書であるRFC1866(国際化仕様はRFC2070) として公開されており、HTML 3.2とHTML 4.0は World Wide Web Consortium が仕様を公開しています。全て邦訳が試みられていますので、 邦訳を参考にして仕様を読むことが可能です。

HTML 2.0の仕様

国内からのアクセスには、ftp://ring.aist.go.jp/pub/doc/RFC/rfc1866.txtをどうぞ。

邦訳には、sf's HTML Page所収の、大西隆さんによる「RFC1866翻訳計画」による翻訳http://www.age.or.jp/x/sf/HT/HTML/RFC1866J.TXTと、 それに基づく、魔術幻燈HTML研究室の改訳「超越書類表記法 第2.0版」があります。

HTML 2.0の国際化仕様

国内からのアクセスには、ftp://ring.aist.go.jp/pub/doc/RFC/rfc2070.txtをどうぞ。

邦訳には、魔術幻燈HTML研究室「超越書類表記法の国際化」があります。

HTML 3.2の仕様

原典はhttp://www.w3.org/TR/REC-html32.htmlです。

邦訳には、魔術幻燈HTML研究室「HTML第3.2版仕様参考書」などがあります。

HTML 4.0の仕様

原典はhttp://www.w3.org/TR/REC-html40/です。

邦訳は、内田明他による「HTML 4.0仕様書邦訳計画」をどうぞ。

仕様理解の参考

仕様の邦訳以外にも、仕様の理解に役立つものがあります。

HTMLの将来

HTMLの将来については、2つの大きな道筋ができつつあるようです。 1つは、ISOによる標準化作業など、SGMLアプリケーションのまま、 HTML 4.0のサブセット規格を作って運用する道筋。 もう1つは、XMLをベースにしてモジュール化したHTML 4.0である 「XHTML」を作る道筋です。

ISO標準であるような仕様がどのようなものになりそうかについては、 Final Draft International Standard ISO/IEC 15445:1999及びUser's Guide to ISO/IEC 15445:1999をご参照のこと。

W3Cによる作業については、HTML Activity Pageをご参照のこと。

なお、1998年12月に公開が始まった“HTMLのXML化”の作業は、 1999年8月24日付で「XHTML 1.0: The Extensible HyperText Markup Language」勧告提案となっています。 (1999年3月4日付の作業文書を、どら猫本舗さんが邦訳なさっています。)

相互運用性が高いHTML文書の作り方について

再生環境限定の回避

HTMLは本来、 様々な機械や様々なソフトウエアで利用できるように という意図で設計されていますから、「Netscape Navigator X.x でご覧下さい」「Microsoft Internet Explorer X.x でご覧下さい」というのは、 有効な使い方であるとは言えません。 ある文書が「利用できる・できない」という次元から 「利用しやすい・しにくい」という次元まで、 HTML文書を作る場合のマナーについて、 現在ではアクセシビリティという概念での説明が用意されています。 以下をご参照下さい。

アクセシビリティだけが、 使い回しの利く文書や利用しやすい文書の作り方に関する 拠りどころとなるわけではありません。以下をご参照下さい。

書き手側でいくら標準規格に沿った文書を作っても、 ブラウザの実装が標準規格に沿っていなければ 実際の文書利用に不都合が生じかねません。 「The Web Standards Project」は、 (主に)W3C標準を各ベンダがどの程度守っているかを観察したり、 各ベンダに対して標準に従うよう意見したりしています。

MSIE 5.0 for Win95/98 や MSIE 4.5 for Mac が「どのくらいヘボいか」を知るために、MozillaM4で、このページや「CSS1テスト集」を試してみよう!

HTML仕様の国際化と文字の扱い

相互運用性を確保するため、HTMLの仕様は、テキスト中で使える文字を 「文書文字集合(HTML文字集合)」という形で規定しています。 規定があることによって、ある特定の文字符号化方法では 直接バイトコードによって指し示すことのできない文字でも、 「数値文字参照」によって表現することが可能になっています。 また逆に、 HTMLのテキストとしては表せない文字が何であるかも分かりますので、 グラフィックファイルにしなければ伝達できない文字は何か ということも分かります。

もう少しだけ詳しい解説は、「HTML化する文章と文字」をどうぞ。

文書の検証

うっかりミスや、誤解に基づく間違いなどは、 なかなかゼロにはなりません。 マーク付けの検証サービスを利用してみましょう。

WWWに置くHTML文書と文字符号化方法

WWWにあるHTML文書は、WWWクライアント(ブラウザ)からの取得 要求を受けたWWWサーバが該当する文書を読み手の手元に届けることで、 読まれます。この際に文書そのものとは別に当該文書が どのような文字符号化方式によって符号化されたテキストファイルであるかが WWWクライアントの元に届けられないと、 原理的には正確な文字符号化方式の判定が行えず、 受信したデータを元の文字列に復元できない危険があります。 暗号の解き方を記した文を暗号で記録した場合、 その暗号がどういう暗号なのかは暗号文書とは別に伝えないと 解読でない、ということですね。

WWWのリソース転送手段であるHTTPの場合、 文書そのものとは別に「HTTP応答ヘッダ」によって、 この種のメタ情報を伝達するという枠組みが定められています。 文字符号化方式に関するメタ情報は、 Content-Typeフィールドのcharsetパラメタによって 伝達します。

HTML文書の冒頭付近に記す(ことが奨励されている)次のMETA宣言は、 このHTTP応答ヘッダに「"content=text/html; charset=ISO-2022-JP"」 という値を持つContent-Typeフィールドを書き出すよう サーバに指示することを目的としているはずなのですが、 現実には目的通りには機能していません。

<meta http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP">

むしろ、HTTP 1.1 仕様や HTML 4.0 仕様の規定に反して、 HTTP転送によって取得し読まれつつあるファイルに関しても、HTTP応答ヘッダの内容ではなくMETA宣言によって charset(ファイルの文字符号化方法)を判断する、 という困った実装のブラウザが多いようです。

まずは『文字符号化方法を記したMETA宣言の地位を低下させようと企む理由とエトセトラ』を眺めていただき、 その企みに乗っていただく方が増えるよう祈る次第です。

さて、文書の書き手が利用しているサービスプロバイダが使っているサーバが CERN httpd や Apache httpd であれば「AddType」コマンドにより、 また Apache では「AddCharset」コマンドによって、 拡張子を利用したMIMEタイプとcharsetパラメタの設定が行えます。

「.htaccess」ファイルが利用できれば 書き手の個々が上記コマンドを利用した設定を行えますし、 サーバ管理者に頼めばルートで設定してくれるかもしれません。

このようなケースにおいて現実的に可能且つ効果的な拡張子セットとして、 内田は、suffix_guideline_981106.txtというメモを書き、 この最新版を叩き台にした文書を元に賛同者を募って W3CのI18N部会に提出して審議を仰いでみようと思っています。 また、ありがたいことに1999年4月末に、ASAHIネットで上記に基づくAddCharset設定が行われました。 興味とご関心をお持ちの方は、ぜひご一読の上、 ご意見ご感想をお寄せ下さい。

1998年11月13日に拾ったHTTP応答ヘッダ例をご覧頂くと、 多くの所でApacheが使われていることがお判り頂けると思います。 また、Netcraft Web Server Surveyには、 より広い範囲を偏りなくリサーチした結果が掲げられています。 ぜひAddCharsetやAddTypeを活用し、HTTP 1.1仕様を上手に使いましょう。

なお、上記のメモは以下の文書に捧げられています。

関連情報

Cascading Style Sheets

HTML文書を画面・紙面・音声などで再生する場合に、 どのような表現形をとるか、 そのスタイル設定を行うための仕組みがスタイルシートです。 現在仕様が公開されているスタイルシート記述言語には、 W3CによるCSS1とCSS2があります。

CSS1の仕様

原典は、http://www.w3.org/TR/REC-CSS1/です。

邦訳には、岡橋一輝さん「Cascading Style Sheets, level 1 (Japanese)」などがあります。

CSS2の仕様

原典は、http://www.w3.org/TR/REC-CSS2/です。

邦訳には、岡橋一輝さん「Cascading Style Sheets, Level 2 (Japanese)」があります。

CSSを勉強する手がかりとして、以下が大変参考になります。

XML

XML (eXtensible Markup Language) というのは、 ネットワークでの利用に特化したSGMLと呼べる、 マーク付けルール定義・運用のための基礎体系です。

XML1.0の仕様

原典は、http://www.w3.org/TR/1998/REC-xml-19980210で得られるXML文書が多分正当なものです。

仕様案の邦訳が、工業技術院の標準情報「TR X 0008:1998」として公開されています。

XMLを勉強する手がかりとして、以下が大変参考になります。

SGML

SGMLはISO標準(ISO 8879)であり、邦訳してJIS規格化されてもいます。 JIS規格(JIS X 4151:1992)はCALS技術研究組合によってHTML文書化されたものがSGMLindex.htmlとして公開されています。

SGMLを勉強する手掛かりとして、以下が大変参考になります。