HTMLに代表される Web文書を記述するためのガイド
私が Web文書を作成する際に考慮していることをまとめてみました。 技術的な事柄ではなく、Web文書作成に関する思想的な点を中心にまとめています。 すでに Webページを作成している人にも参考になると思います。
本来は HTML の仕様書を読むのが一番です。 特に HTML4.01 の仕様書 (日本語訳) には、HTML 文書を制作する際に注意することや心掛けることなどを含めた HTML の総合的な解説が詳しく書かれています。
しかしながら、初めての人にいきなり仕様書を読めというのも酷な話です。 ここでは、いわゆる「ホームページ」を開設するための情報ではなく、 流行や目新しい技術にとらわれず、誰もにやさしい Web文書を記述するための情報と、参考になる資料を紹介していきたいと思います。
また、この手の解説に多い宗教がかった議論は避け、できるだけ W3C, IETF, ISO などの公共性の高い組織による規格や資料を元に進めていきたいと思います。
正確な情報を心がけていますが、筆者の認識不足、不勉強による誤解や間違いがあるかもしれません。 メールなどでご指摘していただけると幸いです。
さあ、あなたはこれから Web (WWW: World Wide Web) を利用して情報を公開しようとしています。 それはあなたの趣味の話題についてでも、会社の宣伝でもかまいません。 Web を使えば、あなたの公開した情報は世界中の人が見ることができるのです。
ここで情報を公開といいましたが、現在 Web 上で情報を公開するには文書を使用するのが一般的です。 文書は人間が情報を伝達するための手段として世界中で使用されています。
さて、世界にはさまざまな「言語」「習慣」などの「文化」を持った人々が存在し、文書の書き方の形式はまさに千差万別です。 あなたが学校で習った作文手法で書かれた文書は、あなたと同じ文化を持つ人なら読んで理解することができますが、他の文化圏の人にも同様であるとは限りません。 文書の書き方の文化が異なるために、あなたが書いた文書を読んでもらっても、あなたが伝えたいことを正しく解釈されない恐れもあります。
そこで、世界中に広がっている Web で情報を公開するには、世界中のみんなが同じルール (規格) を用いる必要があります。 みんなが共通のルールに従って文書を書けば、みんなが情報を得ることができるのです。簡単な理屈ですね。
また、世の中には身体的なハンディキャップを背負っている人もいます。 もしあなたの書いた文書がそのような人のことを考えず、例えば「目が見えること」に依存した作りになっていたら、その情報は視覚障碍を持つ人にとってまったくの無価値になってしまいます。 あなたが伝えたい情報が、あなたの単なる認識不足の結果伝わらないようなことでは Web を使って情報を公開する意味がありません。
本来、Web の仕組み自体は障碍を持つ人にも等しく情報を伝えられるようになっています。 しかし、それは情報を公開する側が正しい認識を持って記述している必要があります。 そして、それは決して難しいことではありません。
本文では、Web で情報公開するために共通のルールで描かれた文書を、広義の文書と区別するために Web文書と呼ぶことにします。
Web が登場する以前から、コンピュータを利用する人々 (特に研究者) の間に、世界中のみんなで文書を共有したいという考えがありました。 みんなで共有するためには、共通のルール (規格) を定めないといけません。
ところが、文書は、その使用される場面や用途によってさまざまな書き方 (形式) があります。 例えば、文書といっても小説と家電製品の取扱説明書では求められる文書形式が異なるのは明らかです。 情報を共有するためには、このような用途ごとに別々のルールを定める必要があります。
そこで登場したのが SGML (Standard Generalized Markup Language) という国際標準規格です。 SGML は、さまざまな用途ごとに必要な「文書形式」を定めるための標準規格です。 つまり、ルールを作るためのルールが SGML なのです。
これは最高法規である「憲法」と、それに基づいて定められる「法律」の関係を思い浮べるとわかりやすいでしょう。 刑法や商法など用途ごとに必要な「法律」というルールを、「憲法」という大きなルールにしたがって定めるのです。 ここでは「憲法」は「SGML」、「法律」は「さまざまな用途で必要な文書形式」と置き換えられます。
さて、SGML は「ルールを作るためのルール」と簡単に言いましたが、実際にはどのような方法で文書のルールを定めているのでしょうか。
一般に、文書は様々な性質の「要素」 (Elements) の集まりによって構成されています。 例えば、文書の構造体を表す「見出し」「段落」「表」「リスト」「図・画像」や、他の文書へのつながりを示す「リンク」などの要素です。 SGML は、この文書中の「要素」の始まりと終わりを、その要素の名前がつけられた「タグ」という目印で区切ってゆき、文書の構造を明かにするという方法を採りました。 文書を要素ごとにタグで区切っていく作業を「マークアップ」といいます。
規格に従って正しくマークアップされた文書は「パーザ」や「ユーザーエージェント」と呼ばれるプログラムによって適切に処理され、表示や読み上げなどのさまざまな方法で利用できるようになります。
どのような要素をマークアップするかは各分野の用途ごとに定めます。 具体的には、使用する要素を SGML の文書型定義 (DTD: Document Type Definition) としてまとめることです。 こうして SGML を使用して定めた規格をマークアップ言語といいます。 つまり、SGML とはマークアップ言語を定義するための国際標準規格なのです。 実際に、さまざまな分野でマークアップ言語が使用されています。
もちろん、Web で情報公開するためのマークアップ言語も SGML を使用して規格化されています。
マークアップ言語で記述された文書は、それぞれの規格に従った専門のプログラムを介してさまざまな処理をおこなうことができます。 このマークアップ言語を処理するプログラムを、ユーザーエージェント (UA: User Agent) といいます。
ユーザーエージェントにはさまざまなものがあります。 代表的なものとして、人間が読めるように整形して表示する視覚系のブラウザや、文書を読み上げたり点字出力する非視覚系のブラウザがあげられます。 また、文書を検索するサーチロボットや、文書に何らかの処理を施して転送するプロクシなど、人間からは間接的なところで文書の自動処理をするものもあります。
Web で公開する文書を作成するには、SGML によって定められた HTML (Hypertext Markup Language) というマークアップ言語を使います。 現在 HTML は W3C (World Wide Web Consortium) という組織によって策定されています。
最新規格の HTML 4.01 では、さまざまな先進的な機能やアクセシビリティー思想、国際化対応が実装され、これからの Web文書の標準規格となります。 あなたが Web 文書を記述するときはこの HTML 4.01 を用います。
「規格」というとむずかしくて堅苦しいイメージがありますが、HTML 4.01 の規格書は平易な文で書かれており、Web の基礎から順に、理解しやすいように分類して構成されています。 文中には用語説明へのふんだんなリンクもあり、読者の理解を助ける形になっています。
HTML 4.01 の規格書の構成を大まかに分類すると
となっています。 そして、HTML のリファレンスは「文書の構造」「文書の見栄え」「インタラクティビティ」の 3つの大きなテーマに沿って詳しく書かれています。
HTML 4.01 の規格書の原文は英語で書かれていますが、有志の方々が日本語訳したものを公開しています。
現在、標準規格として有効な HTML には次のものがあります。 ただし、W3C は最新規格である HTML 4.01 に準拠した文書を記述するよう求めます。 また、国際工業規格である ISO からも規格として発行されています。 それ以外は過去との互換性のために保持されています。
HTML 2.0 の国際化版として次の規格が定められています。
HTML 2.0 は、すべての HTML の元となる基本的な規格です。 文書型宣言が記されていない HTML 文書は HTML 2.0 準拠のものとして扱うように定められています。
HTML 3.2 は、いわゆるブラウザ戦争に押されて、なし崩しに規格化された観もあり、その実装は本来の SGML の思想からズレてしまいました。
RFC2070 は、HTML 2.0 の国際化版として規格化されましたが、その成果は最新規格の HTML 4.0 に受け継がれ、より優れた国際化に対応しています。
SGML マークアップ言語である HTML は文書の構造をマークアップする言語であり、その文書をどのようなレイアウト (スタイル) で表示するかは定められていません。
そこで HTML 4.01 では、文書制作者や利用者が、文書の画面表示や印刷するときのレイアウト、音声出力するときの声トーンなどの設定をするために、スタイルシートという仕組みが定められています。
HTML に対応したスタイルシートには、 W3C の CSS (Cascading Style Sheets) という規格があります。 CSS にはレベル 1 (CSS1) とレベル 2 (CSS2) があります。 CSS1 は基本的な画面レイアウトを指定できます。 CSS2 は CSS1 よりも複雑なレイアウトや音声出力や印刷に対応しています。
CSS の規格書の原文は英語で書かれていますが、有志の方々が日本語訳したものを公開しています。
スタイルシートを指定しない場合はブラウザに組み込まれたスタイルシートが使われますが、これは各ブラウザごとに違います。
文書の構造部分 (HTML 文書) とレイアウト情報 (スタイルシート) とを分離することで、その文書が訴求力を増すことと更新が容易になることがHTMLワーキンググループの経験から判明しています。
Web文書を記述する際に重要なのが「アクセシビリティー」です。 これは、「誰でも、どのような環境からでも、その情報に等しくアクセスできるようにする」という考え方です。
Web 文書を閲覧する人の中には、あなた自身とは非常に違う状況で操作している人が大勢いることを考えてください。
- 見る、聞く、動くことができないかもしれません。またある種の情報を容易にもしくはまったく認識できないかもしれません。
- 文書を読んだり理解するのが難しいかもしれません。
- キーボードやマウスを使用をしてないか、使用できないかもしれません。
- テキスト専用画面・小画面もしくは低速度のインターネット接続かもしれません。
- 文書が書かれている言語を話さないか、十分理解していないかもしれません。
- 目や耳もしくは手が使えないか、ふさがった状況 (運転中や騒音環境) にいるのかもしれません。
- ブラウザが初期のバージョンであったり、全く違ったブラウザや音声ブラウザかもしれません。また異なる操作システムかもしれません。
障碍者など、肉体的なハンディを持つ人々も Web を利用して情報を得ています。 また、PDAやカーナビゲーションシステム、携帯電話などのモバイル機器を使用して Web 文書を閲覧している人もいます。 これらモバイル機器は、「表示スペースが小さい」、「処理能力が非力である」、「回線速度が遅い」、「入力装置が限定されている」など、パソコンに比べて機能が限定されています。
HTML は、このようなさまざまなハンディを持つ人々や、限られた機能しか持たない機器を使用している人々にも、容易にアクセスできる Web 文書を制作できるように設計されています。 しかし、このようなより多くの人々に情報を伝えるためには、正しい認識を持って Web 文書を記述しなければなりません。
そのために W3C の Web Accessibility Initiative (WAI) によって、 Web Content Accessibility Guidelines 1.0 (加藤泰孝さん訳) として具体的なガイドラインが定められています。
このガイドラインで定めるアクセシビリティを実現するための具体的な技術文書が WAI から W3C Note Techniques for Web Content Accessibility Guidelines 1.0 (加藤泰孝さん訳) として公開されています。 同じく WAI から HTML 4.0 でアクセス性を向上させるための資料 "HTML 4.0 Accessibility Improvements" (加藤泰孝さん訳) が公開されています。
HTML 4.0 文書をモバイル機器からできる限りアクセスしやすく作成する方法についてのガイドラインが W3C Note HTML 4.0 Guidelines for Mobile Access (どら猫本舗さん訳) として公開されています。
Web 文書の一般的な記述スタイルについては、W3C の Style Guide for online hypertext (神崎正英さん訳) が参考になります。
人間が文書を記述する以上、ミスや勘違いはつきものです。 また、アクセス性に関わる不適切な記述は自分では気づきにくいものです。 Web で公開する文書は人に読んでもらうものですから、公開する前にできるだけミスを取り除くよう努力すべきです。
自分の文書の問題点を検証するにはいくつかの方法があります。 検証プログラムを使ってミスや不適切なマークアップを検出したり、いろいろなブラウザや環境で文書を読んでみることです。 また、人に読んでもらって批評してもらうことは、特に言葉づかいやアクセス性を確認するよい方法です。 このような文書の検証は、記述の早い段階から何度もおこなうのが望ましいでしょう。 アクセス上の問題が早い段階でわかれば、修正やそれを避けることが容易になります。
WAI "Web Content Accessibility Guidelines 1.0" の付録には、検証についての資料があります。
検証プログラムにはさまざまなものがあります。 参考にいくつか見てみましょう。
W3C のおこなっている HTML 文書検証サービスです。 Web 上で簡単に利用できます。 文書のマークアップミスや一部のアクセス性について検証します。 検証結果は英語で表示されますが、日本語の文書も検証できます。
W3C のおこなっている CSS 検証サービスです。 Web 上で簡単に利用できます。 CSS の構文について検証します。 HTML 文書を指定してその文書のスタイルシートを検証することもできます。
W3C の公開している HTML 文書検証プログラムです。 自分の PC 上で簡単に利用できます。 文書のマークアップミスや一部のアクセス性について検証、修正をします。 検証結果は英語で表示されますが、オプションを指定することにより日本語の文書も検証できます。 また、ソースコードが公開されているので、自分で日本語化することもできます。 現在は HTML Tidy Project で開発が続いています。
k16 さんによる HTML 文書検証サービスです。 Web 上で簡単に利用できます。 HTML の DTD や規格書に照らし合わせた文書のマークアップミスや、各種のアクセス性について検証します。 日本語の文書の検証ができ、結果は日本語で表示されます。