3. 適合性: 必要条件と推奨事項

目次

  1. 用語の定義
  2. 適合性
  3. エラーの規定について
  4. text/css Content-Type

3.1 用語の定義(Definitions)

この章からを正式なCSS2仕様とする。 まず最初に、文書作成者、ユーザ及び実装者間での約束事について述べる。

本仕様に出てくるMUSTMUST NOTREQUIREDSHALLSHALL NOTSHOULDSHOULD NOTRECOMMENDEDMAYOPTIONALなどの重要語は、[RFC2119]に定められた通り解釈しなければならない。 しかし、読み易さを考慮して、本仕様ではこれらの単語を大文字のみで記述することはない。

本仕様では、文書作成者及びUAに対して適宜好ましい実例を推奨する。 これらの推奨事項は規範的なものではなく、推奨事項の実現によって本仕様への適合性が得られるわけではない。 これらの推奨事項は、文中では「We recommend ...」「This specification recommends ...」あるいはこれに準ずる表現で示す。

Style sheet - スタイルシート
文書の体裁を指定した一連の文。

スタイルシートには3通りの異なる出所がある。 すなわち文書作成者ユーザ、及びUAである。 これら3者の相互関係については[6 カスケード処理と継承]を参照のこと。

Valid style sheet - 正当なスタイルシート
スタイルシートの正当性は用いるCSSの版に依り異なってくる。 CSS1において正当なスタイルシートはすべてCSS2においても正当である。 しかし、CSS1からの変更に伴い、CSS1準拠のスタイルシートがCSS2においてやや異なる意味を持つ場合が稀にある。

正当なCSS2スタイルシートは[D CSS2の文法]に従って記述しなければならない。 更に、そこに含まれる@規則、プロパティ名、及びその値は、本仕様に定められたものでなければならない。 それ以外のものは不正(illegal)である。

Source document - ソース文書
1つ以上のスタイルシートが参照する文書のこと。 ソース文書は、文書を要素の木構造として表現する構造化言語に依って符号化されている。 各要素はその種類を識別する為の名称、任意指定の多数の属性、及び空の場合もあり得る内容から構成される。
Document language - 構造化言語
ソース文書を記述する為の符号化言語。 たとえばHTMLやXML応用など。
Element - 要素
(SGML用語。詳細は[ISO8879]を参照) 構造化言語の主要な構成単位。 CSSスタイルシートの殆どの規則は、出力形態を指定するのにこれら要素の名称を用いる。 たとえばHTMLで言うとP、TABLE、OLなど。
Replaced element - 置換要素
CSSフォーマッタがその内在寸法のみを認識する要素のこと。 HTMLではIMG、INPUT、TEXTAREA、SELECT、OBJECTなどが置換要素の例になる。 たとえばIMG要素の内容は、src属性が指し示す画像によってしばしば置き換えられる。 CSSでは、内在寸法の取得方法は定めない。
Intrinsic dimensions - 内在寸法
ある要素の幅及び高さがその要素自身によって定められて他者の状況に依存しない時、その要素の寸法のこと。 CSS2では、あらゆる置換要素が、そして置換要素だけが内在寸法を持つと考える。
Attribute - 属性
要素に関連付けられる1種のパラメータ。 自身の名称とその値から構成される。
Content - 内容
ソース文書内において、要素に関連付けられた内容のこと。 全要素が内容を持っているという訳ではなく、内容を持たない要素をであると言う。 要素の内容はテキスト情報や多くの下位要素を含むことができ、内容として下位要素を含む要素を、下位要素のと呼ぶ。
Rendered content - 表示済み内容
対応するスタイルシートに従って表示が完了した後の内容のこと。 置換要素の表示済み内容はソース文書の外部から取り込まれる。 要素の代替テキストや、スタイルシートによって直接に、あるいは暗黙に挿入される項目なども、表示済み内容だと言える。 HTMLのalt属性値や、リストでの黒丸や番号などがその例である。
Document tree - 木構造
ソース文書内における、符号化された要素の木構造のこと。 この木構造内では、ルート要素以外の要素は、必ず1つの親を有する。
Child - 子供
BがAの親要素であり、かつその時に限り、AはBの子供であると言う。
Descendant - 子孫
AがBの子要素である時、あるいはAが「Bの子孫にあたるC」の子要素である時、AはBの子孫であると言う。
Ancestor - 祖先
BがAの子孫要素であり、かつその時に限り、AはBの祖先であると言う。
Sibling - 兄弟
AとBが同一の親要素を持ち、かつその時に限り、AはBの兄弟であると言う。 更に木構造内でAがBよりも前にある時、Aは兄であると言う。 同様に木構造内でAがBよりも後にある時、Aは弟であると言う。
Preceding element - 先行(する)要素
AがBの祖先要素であるか、あるいはBの兄要素である時、AはBに先行すると言う。
Following element - 後行(する)要素
AがBの先行要素であり、かつその時に限り、AはBに後行すると言う。
Author - 文書作成者
文書及び関連スタイルシートを記述する人のこと。 オーサリングツールとは文書及び関連スタイルシートを生成するツールのことである。
User - ユーザ
文書及び関連スタイルシートを見る、聞く、あるいは利用するためにUAとやり取りを行う人のこと。 ユーザは自らの好みを符号化した、その人個人のスタイルシートを使用できる。
User agent - UA
構造化言語によって記述された文書を解釈し、本仕様の約束に従って関連スタイルシートを適用するプログラムのこと。 UAには、文書を画面に表示したり、音声で読み上げたり、印刷したり、別の文書形式に変換したりするものがある。

以下はHTMLで符号化されたソース文書の例である:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>   
  <TITLE>My home page</TITLE>
  <BODY>
    <H1>My home page</H1>
    <P>Welcome to my home page! Let me tell you about my favorite
		composers:
    <UL>
      <LI> Elvis Costello
      <LI> Johannes Brahms
      <LI> Georges Brassens
    </UL>
  </BODY>
</HTML>

この木構造は次の様になる:

文書木構造のサンプル [説明]

HTMLの定義に従えば、ソース文書内にHEAD要素が存在しなくても、解析の際にはその存在が推量されて木構造の一部に組み込まれることになる。 同様に、P要素やLI要素の終了タグがソース文書内に無い場合、それらの要素がどこで終了するかはパーサが認識する。

3.2 適合性(Conformance)

この章では、CSS2の仕様に限定した範囲で適合性を定義する。 将来版のCSSに適合するには、他の異なる要件を満たさねばならない場合もある。

本仕様に適合するUAは、一般に以下の項目を遵守する必要がある:

  1. 少なくとも1つのCSS2媒体型に対応しなければならない。
  2. 各ソース文書について、対応している媒体型に適用可能な関連スタイルシートをすべて探索しなければならない。 ネットワーク・エラーなどの理由で取得不可能なスタイルシートがあった場合でも、とりあえず取得できたスタイルシートだけを適用して文書を表現しなければならない。
  3. 本仕様に従ってスタイルシートを解析しなければならない。 特に、すべての@規則、ブロック、宣言、及びセレクタを認識しなければならない(詳細は[D CSS2の文法]を参照)。 UAは、対応する媒体型に有効なプロパティを見つけると、プロパティ定義に従ってその値を解析しなければならない。 すなわち、UAはすべての正当な値を受け付けて、不正な値を含む宣言をすべて無視しなければならない。 また、UAは対応していない媒体型専用の規則を無視しなければならない。
  4. カスケート処理と継承の規則、そしてプロパティ定義に従って、木構造内の各要素について適用可能な全プロパティに値を割り当てなければならない。
  5. ソース文書に代替スタイルシートが存在すれば(たとえば[HTML40]におけるalternateキーワード付きLINK要素)、UAは、それらのスタイルシートからユーザが1つを選択する手段を提供し、選択されたスタイルシートを適用しなければならない。

ただ、すべてのUAが全要件を遵守しなければならない訳ではない:

特定のデバイスによる制約のために本仕様の一部を実装できないとしても(たとえばモノクロのモニターやページが色指定を反映できないなど)、それは不適合を意味しない。

本仕様では、UAがユーザに対して、個人のスタイルシートの選択手段を提供するよう推奨する。

3.3 エラーの規定について(Error conditions)

原則として、本仕様ではUAのエラー処理動作を規定しない。 たとえば、URIの指定先リソースが見つからない場合具体的にどうするか、などは定めない。

ただし、[4.2 検出エラーの処理規則]には従わなければならない。

エラーの処理動作はUAによって様々なので、文書作成者及びユーザは特定のエラー回復動作に依存してはならない。

3.4 text/css Content-Type

CSSスタイルシートは、インターネット上において、符号化情報を伴った一連のバイト列として送信される(詳細は[HTML40]第5章を参照)。 メッセージ実体(message entity)と呼ばれる情報伝送のための構造については[RFC2045]及び[RFC2068]に定義が見られる。 その定義に従いかつContent-Type: text/cssを伴うメッセージ実体が独立したCSS文書である。 text/cssの位置付けは、[RFC2318]にて登録された。



Last modified January 18, 1999.
Translated by Kazuteru OKAHASHI.
mailto:okahashi@nets.ne.jp