見栄えの分離とアクセサビリティ
トップ > HTMLリファレンス > HTML概要 > 見栄えの分離とアクセサビリティHTML は現在、W3C という非営利団体によって議論され、「Recommendation(推奨仕様、勧告)」として公開されます。HTML4.0 の策定においては、HTML の方向性についての見直しが行われました。その主なものが「意味と見栄えの分離」と「アクセサビリティ」です。
「意味と見栄えの分離」は、HTML を「意味」だけをマークアップする言語として位置づけ、「見栄え」は HTML とは別の言語、スタイルシート に分離するというものです。(→「WEB_スタイルシート入門」)
例えば、<b>、<i>、<tt> や、<font>、<center> など、見栄えを定義するタグや、align=center などの見栄えを定義する属性は好ましくないものと位置づけられ、代わりに、<strong>、<em>、<code> など意味を定義するタグや、どうしても見栄えを指定したい場合は、スタイルシートを使用することが推奨されています。
見栄えの情報をスタイルシートに分離しておくことにより、スタイルシートを変更するだけで、例えば「冬の感じのスタイルシート」から「春の感じのスタイルシート」に入れ替えるだけで、複数のウェブページの見栄えを一度に変更することができます。
「アクセシビリティ」は、例えば、テキストしか表示できないブラウザを使っていたり、目の見えない人が音声ブラウザを使ったり、目の弱い人が大きなフォントを用いたりする際など、誰でも、どんなブラウザ(仕様書では UA=User Agent と呼ばれています)でも、情報にアクセスしやすくしてあげようという考えです。
例えば、<img> タグには alt属性が必須のものとして定義されました。これは、音声ブラウザやテキストブラウザなどの画像を表示できないブラウザであっても、そこにどんな画像があるのかの情報を的確に伝えようという発想から生まれたものです。
例えば、音声ブラウザにとって「太字」や「斜体」などの情報は意味を持ちませんが、「強調」などの情報であれば、その部分を強く読むなどの実装が考えられます。また、目の弱い人が、「文字は大きく、全体のコントラストを強く」といった自分なりのスタイルシートを適用して読む事も可能になります。
このように、「意味と見栄えの分離」と「アクセサビリティ」の間には密接な関係があります。
「見栄えのタグや属性は使用すべきでない」という方向は決まりましたが、<font> や <center> などのタグ、bgcolor などの属性をいきなり「使うな」というのは無理があります。そこで、HTML4.01を Strict(厳格な)仕様と、Transitional(過渡的な)仕様の2つのレベルに別け、見栄えのタグや属性は Transitional レベルの仕様として定義されました。
また、Transitional にしか現れないタグや属性は、大半が「非推奨(Deprecated)」なものとして分類されています。
HTML4.01で定義されるタグの内、下記にあげるものは、非推奨のもの(Deprecated)と分類されています。
その他、bgcolor、background などいつくかの属性なども Deprecated に分類されています。(→「HTMLサポート状況一覧」)
Deprecated の分類の理由としては下記などがあげられます。
- 見栄えを定義するもの(「意味と見栄えの分離」の原則による)
- 現在ではほとんど使用されていないもの
- 他のタグに統一されるもの
本書で H4t(HTML4.01 Transitional)と記述されているものは、殆どが、Deprecated に分類されたタグや属性です。
Deprecated なタグや属性は、「将来廃止されるかもしれない(may)」と説明されています。実際に、HTML の後継規格である XHTML 1.1(2001年5月31日に勧告)では正式に廃止されました。
これは難しい問題です。私も Deprecated なタグや属性を使用せずに、スタイルシートに移行することを試みたのですが、スタイルシートをまだ実装していないブラウザが市場に残っていたり、ブラウザのバグや実装の差違がかなり多く、手放しで移行するにはまだ問題が多いと判断しています。
Deprecated なタグや属性は、XHTML1.1 では正式に廃止されましたが、市場が XHTML に移行するのはまだもうしばらく先のようですし、XHTML1.1 では独自定義のタグセット(モジュール)と併用できるので、<font> などを独自定義のタグとして使用することは可能です。
私としてはまず、Deprecated なものを使用する/しないの議論よりも先に、現状の一般ブラウザ、テキストブラウザ、音声ブラウザでちゃんと伝えたいことが伝わるかのチェックの方を優先して欲しいと思っています。