FireBird DBMS を使う
[ Prev 6. このプログラムの詳細 ] [ Top 目次 ] [ Next 目次 ]

7. HTML と標準

このプログラム (世界の鳥類名検索辞典) は、可能な限り正確な、文法を遵守した HTML を生成します。

今後、メンテナンスの際の作者の不注意に間違えない限り、XHTML1.0/Strict に、ほぼ 100% 合致します。

世の中の WEB ページには、あまりに文法違反が多いのですが、正しく文法を守ることは、別に難しいことじゃありません。
その意識さえあれば。

7.1. RFC 1958

The Internet の初期から、ネットワーク社会のために、多くの標準・規格が提案されてきました。

それらは、RFC (Request For Comment) という形で文書化され、インターネットの拠り所となっています。

例えば、有名な RFC 1958 Architectural Principles of the Internet (インターネット構築の原則) の一節を見ましょう。

3.9 Be strict when sending and tolerant when receiving. Implementations must follow specifications precisely when sending to the network, and tolerate faulty input from the network. When in doubt, discard faulty input silently, without returning an error message unless this is required by the specification.

3.9 送信時には厳格で、受信時には寛大であるべきです。実装はネットワークに送信する時に正確に仕様書に従い、ネットワークからの欠陥がある入力を大目に見なくてはなりません。疑いがあれば、仕様書に要求されない限り、エラーメッセージを返さないで問題のある入力を黙って捨ててください。

さまざまな地域の、さまざまな環境の、いろいろな立場の人が等しく利用できコミュニケーションを行うための知恵であり、インターネットに「参加」するものの義務です。

そのための原則が「送る時は標準を厳格に守り、受け取るときは標準の解釈違いに対しては寛容に」です。

7.2. 標準の意味

言うまでもありませんが、HTML は「言語」です。
コンピュータが扱う他の言語同様、厳格な文法が定められています。

他の言語処理系と異なるのは、受け取り側 (ブラウザ等) は、できるだけ誤りに寛容に緩やかに対応しようとすることです。
実装の文法解釈に対する姿勢が緩やかであるということであって、決して文法定義が曖昧なわけではありません。

WEB サイトを作り、公開するときには厳格に文法に従うよう努めましょう。

現実はどうでしょうか。

HTML の文法は厳格に仕様が定められていますから、コンピュータで検査することが可能です。

そのための、プログラムの一つが「Another HTML Lint」です。
Another HTML-lint プライマリサイト(現在 GET メソッドを休止しているようです)

慶應大学のミラーです。
Another HTML-lint 慶應大学のミラー

私の自宅当サイトでも細々とミラーさせていただいています。
Another HTML-lint oosato.org のミラー
これで、任意の WEB ページをチェックしてみてください。

あまりのエラーの多さに唖然とすると思います。

多くの WEB サイトが (そして WEB 制作解説本の多くが) W3C の HTML 標準ではなく、ブラウザの実装に合せています。ブラウザのバージョンアップの度に WEB 制作現場は蜂の巣をつついたような大騒ぎです。

曲がった家に対して、その寸法に合せた家具を作るから、家の修理が行われたり、新居に引っ越すと家具は全て作り直しになります。なぜ最初から標準サイズで作らないの?

この、送り出し側の「標準無視・ブラウザ建て付け制作」が多くの問題を引き起こします。

文法エラーのないWEB サイトが即ち「良いサイト」とは限りませんが、しかし、「良いサイト」の必要最小限の条件ではあります。

正しい HTML を書きましょう。ブラウザ依存から抜け出しましょう。
HTML を書くなら規格書を読みましょう。
たまたま、あるブラウザで表示されたからといって、それで満足しないようにしましょう。

7.3. はじめに言葉ありき

「はじめに言葉ありき、言葉は神とともにあり、言葉は神である」 (聖マタイ)

第 1章 1.4. データについて でも少し触れました。
WEB 上のもっとも基本的な資源、text/plain を正しく表示しないブラウザがあります。

Microsoft Internet Explorer の「Content sniffing」問題です。
プレーンテキストの文書を text/plain として正しく送り出しても、Internet Explorer はエンティティヘッダを無視し、text/plain を強引に text/html として解釈しようとします。
なんという仕様なんでしょう。

Microsoft はこの対策として、以下のようなアナウンスをしました。
Internet Explorer 8 のセキュリティ(Sniffing オプトアウト)
インターネット標準を無視したがためにセキュリティホールが発生したことへの対策です。
ただの自業自得に過ぎません。

この場当たりな対策が、世の WEB 屋さんの間ではなぜか好意的に受け取られています。

でも、なんですかこれは!
text/plain を text/plain として解釈して欲しけりゃ、こういうオプションを付けて送り出しなさい、と。

をぃおぃ。
HTML として解釈するべきものは text/html で出す、生 TEXT ならば text/plain で出す。そういう簡潔で明瞭なルールをなぜ破壊する。
既定の安全で合理的な仕様に対する無意味な変更を、なぜ世界中のインターネット参加者に強いるのでしょう。

この問題の本質を考えましょう。

インターネットの黎明期より、さまざまな文書が text/plain で発表されてきました。
前項の RFC 1958 の文書もその一つです。

RFC、技術文書、ソフトウェアのマニュアル、そしてソースコードそのものなど、text/plain で送り出される文書は多いのです。

これらの、文書全てに Internet Explorer のためのオプションを付けなさい、さもなくば表示は保証しません、と言っているのです。

もとより、そのようなサイトの古典的文書を変更することなど不可能です。

秦の始皇帝に始まりナチスドイツまで、さまざまな「焚書坑儒」が行われてきました。
人類はその度に、貴重な文化を失ってきました。

もう、ファシストや独裁者は消滅したように見えます。しかし、巨大 IT 資本はいまも「焚書」を続けています。

言葉 (Logos) を守りましょう。それが文化の証なのですから。

[ Prev 6. このプログラムの詳細 ] [ Top 目次 ] [ Next 目次 ]
written by © 2009,OOSATO,Kazzrou : kazz_atmark_kk.iij4u.or.jp

この HTML を検査する。 ( XHTML 1.0 Strict で書かれています )
Another HTML Lint Gateway ( Mirrored by htmllint.oosato.org )