HTML 3.2 リファレンス仕様書


W3C:REC-html32

HTML 3.2 リファレンス仕様書

W3C勧告 1997年1月14日

著者(原文):Dave Raggett <dsr@w3.org>


この文書の位置づけ

この文書は、W3Cメンバーおよびその他の利害関係者によって検討され、ディレクターによってW3C勧告として公布されているものである。この文書は安定的な文書であり、参照資料として用いたり、他の文書から規範的リファレンスとして引用してもよい。勧告の作成におけるW3Cの役割は、仕様書に注意をひき、その広範な普及を推進することである。これはウェブの機能性と相互運用性とを拡張するものである。

現行のW3C勧告およびその他の技術文書の一覧は、http://www.w3.org/pub/WWW/TR/ で見ることができる。


概要

HTML (the HyperText Markup Language) は、プラットフォームからプラットフォームへと運搬できるハイパーテキスト文書を制作するために使われる簡素なマークアップ言語である。HTML文書は、広範なアプリケーションからの情報を表現するために適した一般的な意味論をもつSGML文書である。この仕様書はHTMLバージョン3.2を定義するものである。HTML 3.2 は、1996年初の推奨される慣習を捉え、そうしたものとしてHTML 2.0 (RFC 1866) を置き換えるものとして使われることを狙いとする。


目次


HTML 3.2 への導入

HTML 3.2 はHTMLのためのW3Cの仕様書であり、1996年初に IBM, Microsoft, Netscape Communications Corporation, Novell, SoftQuad, Spyglass, Sun Microsystems を含むベンダーとともに開発された。HTML 3.2 は、既存の標準であるHTML 2.0 との完全な後方互換性を提供しつつ、テーブル(組み表)やアプレット、画像の周りのテキストの流れといった広く普及している機能を追加するものである。

W3Cは、アクセシビリティ機能やマルチメディアオブジェクト、スクリプト、スタイルシート、レイアウト、フォーム、数学、国際化のための拡張について、ベンダーと共に作業を続けている。W3Cは、この作業を将来のバージョンのHTMLで組み込む予定である。

SGMLアプリケーションとしてのHTML

HTML 3.2 は、国際規格 ISO 8879 (Standard Generalized Markup Language) に適合しているSGMLアプリケーションである。SGMLアプリケーションとして、適合的なHTML 3.2 文書の文法は、SGML宣言文書型宣言(DTD)の組み合わせによって定義される。この仕様書は、HTML 3.2 エレメントの目指されている解釈を定義し、それ以外ではDTD内で表現不能なさらなる制約を許容文法に課している。

レコード境界についてのSGML規則は、トリッキーである。特に、開始タグの直後に続くレコード端は切り捨てられるべきである。たとえば、

<P>
テキスト

<P>テキスト

と等価である。

同様に、終了タグの直前に来るレコード端は切り捨てられるべきである。たとえば、

テキスト
</P>

テキスト</P>

と等価である。

リテラルテキスト(例.PRE エレメント)内部を除き、HTMLは、空白キャラクタの連続的な連なりを、単一のスペース(ASCIIコード 32)と等価であるものとして扱う。これらの規則は、マークアップテキストを直接に編集するときに、制作者に相当な柔軟性を与える。HTMLについての将来の見直しで、水平タブキャラクタ(ASCIIコード 9)を、結び付けられたスタイルシートにより定義されるタブ規則との関連で解釈することが認められるかもしれない。

PCDATA 内容または CDATA アトリビュート内のSGMLエンティティは、パーサ(解析器)によって展開され、たとえば、&#233; は ISO Latin-1 キャラクタコード 233(鋭アクセントつきの小文字のe)に展開される。これはまた、たとえば &eacute; というように、名前つきキャラクタエンティティとして書くこともできただろう。& キャラクタは、&amp; という名前つきキャラクタエンティティを用いて、自分自身の能力において取り込み可能である。

もしアトリビュート値が、文字(a~zとA~Z)、数字(0~9)、ハイフン(ASCIIコード 45)、ピリオド(ASCIIコード 46)しか含んでいないならば、HTMLはアトリビュート値を引用符で括らないことを認める。アトリビュート値は、二重引用符または単引用符(それぞれASCIIコード 34、39)を用いて引用できる。値が二重引用符で区切られているときは、アトリビュート値の中に単引用符を含めることができ、その逆も可能である。

ユーザエージェントの中には、以下のアトリビュートについてアトリビュート最小化を要求するものがあることに注意すること。COMPACTISMAPCHECKEDNOWRAPNOSHADENOhref. COMPACT=COMPACTISMAP=ISMAP といった文法は、HTML 3.2 DTDによれば正当であるが、これらのユーザエージェントでは受け付けられない。

HTML 3.2 とともに用いるためのSGML宣言とDTDは、付録に与えられている。HTMLの解析についての踏み込んだガイドラインは、WD-html-lex に与えられている。


HTML文書の構造

HTML 3.2 文書は、<!DOCTYPE> 宣言で始まり、1つの HEAD エレメントと、その後に1つの BODY エレメントとを含んだ1つの HTML エレメントとが続いたものである。

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  <HTML>
  <HEAD>
  <TITLE>人口動態の研究</TITLE>
  ... その他のヘッダエレメント
  </HEAD>
  <BODY>
  ... 文書の本文
  </BODY>
  </HTML>

実際は、どのような場合にも HTML 3.2 DTDに適合するパーサは HTMLHEADBODY の開始タグや終了タグを推測できるから、これらはマークアップから省略できる。

適合的なHTML 3.2 文書はすべて、HTML 3.2 文書を他のバージョンのHTMLから区別するために必要となる <!DOCTYPE> 宣言で始まらなければならない。HTML仕様書は、記憶単位とは無関係である。結果として、文書型宣言が同じ記憶単位(すなわちファイル)内に置かれていることは要求されない。もし、すべてのHTMLファイルがHTML 3.2 仕様書に適合していることがわかっているならば、ウェブサイトは動的にHTMLファイルを文書型宣言と組み合わせることを選んでもかまわない。

HTML 3.2 文書はすべて、叙述的な title エレメントも含んでいなければならない。したがって、最小限のHTML 3.2 文書はこのように見える。

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  <TITLE>人口動態の研究</TITLE>

注意:W3Cメンバー組織によってHTML 3.2 仕様書が承認された現在では、"Final" という単語が "Draft" を置き換える。


HEAD エレメント

これは文書のヘッダを含むが、HEAD の開始タグと終了タグはつねに両方とも省略することができる。文書ヘッダの中身は、以下のエレメントの順不同の集積である。

<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK">

<!ELEMENT HEAD O O  (%head.content) +(%head.misc)>

%head.misc エンティティは、関連するエレメントが、HEAD 内部の任意の場所に複数回発生できるようにするために用いられる。以下のエレメントは、文書ヘッダの一部分となることができる。

TITLE 文書の表題を定義するものであり、つねに必要である。
ISINDEX 単純なキーワード検索のためのものである。PROMPT アトリビュートを見ること。
BASE 相対指定URLを解釈するためのベースURLを定義する。
SCRIPT スクリプト言語で将来利用するために予約済み。
STYLE スクリプト言語で将来利用するために予約済み。
META メタ情報を name/value の対として供給するために使用される。
LINK 他の文書との関係を定義するために使用される。

TITLESCRIPTSTYLE は、コンテナ (container) であり、開始タグと終了タグの両方を必要とする。その他のエレメントはコンテナではないので、終了タグは禁止される。適合的なブラウザは、SCRIPT および STYLE エレメントの内容をレンダリングしないことになることに注意すること。

TITLE

<!ELEMENT TITLE - -  (#PCDATA)* -(%head.misc)>

HTML 3.2 文書はすべて、文書の HEAD 内にちょうど1つの TITLE エレメントをもたなければならない。これは、ユーザエージェントのウィンドウキャプションなどに表示できる、アドバイス的な表題を提供するものである。内容モデルは PCDATA である。結果として、アクセント付きキャラクタを表わしたり、& や < などといった特殊文字をエスケープするために、キャラクタエンティティを使うことができる。マークアップは、TITLE エレメントの内容には許容されない。

TITLE エレメントの例:

    <TITLE>人口動態の研究</TITLE>

STYLE, SCRIPT

<!ELEMENT STYLE  - - CDATA -- スタイル情報のための場所を確保する -->
<!ELEMENT SCRIPT - - CDATA -- スクリプト命令のための場所を確保する -->

これらは、スタイルシートやクライアントサイドのスクリプトを将来のバージョンのHTMLにおいて導入するための場所を確保するものである。ユーザエージェントは、これらのエレメントの内容を隠すべきである。

これらのエレメントは、内容型として、 CDATA で定義されている。結果として、これらはSGMLキャラクタしか含むことができない。すべてのマークアップキャラクタや区切り文字は無視されて、アプリケーションにデータとして渡される。ただし、ネームキャラクタ [a-zA-Z] が直後に続く ETAGO (">/") 区切り文字は除く。これは、ETAGO が不正であればエラーは起こるものの、エレメントの終了タグ(または、それがネストされているエレメントの終了タグ)は認識されることを意味する。

ISINDEX

    <!ELEMENT ISINDEX - O EMPTY>
    <!ATTLIST ISINDEX
        prompt CDATA #IMPLIED -- プロンプトメッセージ -->

ISINDEX エレメントは、ユーザエージェントが、クエリー文字列を入れるための単行テキスト入力フィールドを提供するべきことを示す。入れられるキャラクタ数には制限がない。PROMPT アトリビュートを用いて、入力フィールドにプロンプト文字列を指定することなどができる。

    <ISINDEX PROMPT="Search Phrase">

ISINDEX の意味論は現在のところ、親文書のためのベースURLが HTTP URL であるときにのみ、よく定義されている。普通、ユーザが Enter(リターン)キーを押すと、クエリー文字列はこの文書のためのベースURLで識別されるサーバに渡される。たとえば、入れられたクエリー文字列が "ten green apples" であり、ベースURLが

    http://www.acme.com/

であれば、生成されるクエリーは

    http://www.acme.com/?ten+green+apples"

となる。スペースキャラクタは "+" キャラクタに割り当てられ、通常のURLキャラクタエスケープ機構が適用されることに注意すること。さらなる詳細は、HTTP仕様書を見ること。

注意 として、クエリーのためのキャラクタセットをURLが指定できる現行メカニズムは存在しないので、実際にはクエリー文字列は Latin-1 に制限される。

BASE

    <!ELEMENT BASE - O EMPTY>
    <!ATTLIST BASE
        href %URL  #REQUIRED
        >

BASE エレメントは、URL仕様書によって与えられた規則を用いて、相対指定URLを解釈するためのベースURLを与える。例.

    <BASE href="http://www.acme.com/intro.html">
     ...
    <IMG SRC="icons/logo.gif">

画像は

    http://www.acme.com/common/logo.gif

と解釈される。

BASE エレメントが存在しなければ、文書URLが用いられるべきである。ベースURLは文書に結び付けられたHTTPヘッダによって上書きされる場合があるので、これは必ずしも文書を要求するために用いられるURLと同じではないことに注意すること。

META

<!ELEMENT META - O EMPTY    -- 一般的メタ情報 -->
<!ATTLIST META
        http-equiv  NAME    #IMPLIED  -- HTTP 応答ヘッダ名  --
        name        NAME    #IMPLIED  -- メタ情報名       --
        content     CDATA   #REQUIRED -- 結び付けられる情報     --
        >

META エレメントを使って、制作者や廃棄日、キーワードリストなどといった、文書の詳細情報を記述する name/value の対を組み込むことができる。NAME アトリビュートはプロパティ名を指定し、CONTENT アトリビュートはプロパティ値を指定する。例.

    <META NAME="Author" CONTENT="Dave Raggett">

HTTP-EQUIV アトリビュートは、NAME アトリビュートの代わりに用いることができ、文書がHTTP (the Hypertext Transfer Protocol) 経由で引き出されるときに特別な重要性をもつ。HTTPサーバは、HTTP-EQUIV アトリビュートによって指定されたプロパティ名を用いて、RFC 822 様式のヘッダをHTTP応答の中に作成する場合がある。もっとも、これは一定のHTTPヘッダを設定するのには使えない。詳細はHTTP仕様書を見ること。

    <META HTTP-EQUIV="Expires" CONTENT="Tue, 20 Aug 1996 14:25:27 GMT">

は、

    Expires: Tue, 20 Aug 1996 14:25:27 GMT

といったHTTPヘッダを生むことになる。

これを使って、キャッシュは、関連づけられた文書の新鮮なコピーをいつ取ってくるべきかを決定することができる。

LINK

LINK は、他の文書またはリソースとの関係を定義するための、メディア非依存の手段を提供する。LINK は、きわめて初期の頃からHTMLの構成部分であったが、それを利用するブラウザはまだ少数である(ほとんどはまだ LINK エレメントを無視する)。

LINK エレメントは、主として このように利用できる。

  1. 文書特有のナビゲーションツールバーまたはメニューのため
  2. HTMLファイルの集合を印刷された文書にどのようにレンダリングされるかを制御するため
  3. スタイルシートやスクリプトといった関連づけられたリソースをリンクするため
  4. 現在の文書の代替形式を提供するため
    <!ELEMENT LINK - O EMPTY>
    <!ATTLIST LINK
        href    %URL    #IMPLIED    -- リンク先リソースを表わすURL --
        rel     CDATA   #IMPLIED    -- 前方リンク型 --
        rev     CDATA   #IMPLIED    -- 逆リンク型 --
        title   CDATA   #IMPLIED    -- アドバイス的な表題文字列 --
        >
href
リンク先のリソースを指すURLを指定する。
rel
「リンク型」としても知られる前方関連。親文書から href アトリビュートで指定されたリソースへの、名前つき関連を指定する。いくつかの慣習は確立しているものの、HTMLリンク関係はまだ標準化されていない。
rev
これは、逆関連を定義する。REV=relation がある文書Aから文書Bへのリンクは、REL=relation がある文書Bから文書Aへのリンクと同じリンクを表現する。REV=made は、ときに、mailto URL を用いた制作者の電子メールアドレスか、制作者のホームページかを使って、文書制作者を識別するために用いられる。
title
リンク先のアドバイス的な表題。

ここにあるのは、提案されている relationship 値である。

rel=top
リンクは、たとえば集積の最初または表ページといった階層構造の頂上を参照する。
rel=contents
リンクは、目次として働く文書を参照する。
rel=index
リンクは、現在の文書のためのインデックスを提供する文書を参照する。
rel=glossary
リンクは、現在の文書に関連する用語のまとめを提供する文書を参照する。
rel=copyright
リンクは、現在の文書の著作権表示を参照する。
rel=next
リンクは、順路で次に訪れるべき文書を参照する。これは、たとえば、次のページを先読みするために使うことができる。
rel=previous
リンクは、順路の前のページを参照する。
rel=help
リンクは、たとえばより広い内容を記述して関連文書へのより深いリンクを提示するなどといったヘルプを提示する文書を参照する。これは、迷子になった読者に再び方向を示すことを狙うものである。
rel=search
リンクは、ページの集積に関連する資料検索のためのページを参照する。

LINK エレメントの例:

    <LINK REL=Contents href=toc.html>
    <LINK REL=Previous href=doc31.html>
    <LINK REL=Next href=doc33.html>

    <LINK REL=Chapter REV=Contents href=chapter2.html>

BODY エレメント

これは、文書の本体を包含する。BODY の開始タグと終了タグの双方は省略してもよい。本体は、広い範囲のエレメントを包含することができる。

キーアトリビュートは、BACKGROUNDBGCOLORTEXTLINKVLINKALINK である。これらを使って、リピート表示される背景画像に加えて、背景色や、通常テキストやハイパーリンクのための前景色を設定できる。

<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*">

<!ENTITY % color "CDATA" -- 色の指定: #HHHHHH @@ details? -->

<!ENTITY % body-color-attrs "
        bgcolor %color #IMPLIED
        text %color #IMPLIED
        link %color #IMPLIED
        vlink %color #IMPLIED
        alink %color #IMPLIED
        ">

<!ELEMENT BODY O O  %body.content>
<!ATTLIST BODY
        background %URL #IMPLIED  -- 文書背景のためのテキスチュアタイル --
        %body-color-attrs;  -- bgcolor, text, link, vlink, alink --
        >

例:

 <body bgcolor=white text=black link=red vlink=maroon alink=fuchsia>
bgcolor
文書本文のための背景色を指定する。色の値の文法は下記を見ること。
text
文書テキストを筆記表示するために用いられる色を指定する。これは一般的に、BGCOLOR または BACKGROUND アトリビュートで背景色が変更されているときに用いられる。
link
未訪問のハイパーテキストリンクを表わすテキストを筆記表示するために用いられる色を指定する。
vlink
訪問済みのハイパーテキストリンクを表わすテキストを筆記表示するために用いられる色を指定する。
alink
ユーザがリンクをクリックした瞬間のハイパーテキストを表わすテキストを筆記表示するために用いられるハイライト色を指定する。
background
文書背景をタイル上に埋めつくすために使われることになる画像のURLを指定する。

は、sRGB色空間において、16進数(例.COLOR="#COFFCO")または広く理解されている16の色名のうちの1つとして与えられる。これらの色は元来、Windows VGAパレットでサポートされている標準的な16色としてピックアップされたものである。

色の名前とsRGB値
Black Black = "#000000" Green Green = "#008000"
Silver Silver = "#C0C0C0" Lime Lime = "#00FF00"
Gray Gray = "#808080" Olive Olive = "#808000"
White White = "#FFFFFF" Yellow Yellow = "#FFFF00"
Maroon Maroon = "#800000" Navy Navy = "#000080"
Red Red = "#FF0000" Blue Blue = "#0000FF"
Purple Purple = "#800080" Teal Teal = "#008080"
Fuchsia Fuchsia = "#FF00FF" Aqua Aqua = "#00FFFF"

ブロックレベルエレメントとテキストレベルエレメント

文書本文内に出現できるほとんどのエレメントは、2つのグループのうちの1つに分けられる。改段を生じるブロックレベルエレメントと、改段を生じないテキストレベルエレメントである。一般的なブロックレベルエレメントには、H1 ~ H6(見出し)、P(段落)、LI(リストの項目)、HR(水平線)がある。一般的なテキストレベルエレメントには、EMIBFONT(キャラクタの強調)、A(ハイパーテキストリンク)、IMGAPPLET(埋めこみオブジェクト)、BR(改行)がある。ブロックレベルエレメントは、一般的に、テキストレベルまたは他のブロックレベルエレメント(見出しエレメントおよびアドレスエレメントは除く)のコンテナとして活動するが、テキストレベルエレメントは、他のテキストレベルエレメントだけしか包含できない。正確なモデルは、エレメントに依存する。

見出し

<!--
  見出しには H1(重要性最高)から H6(重要性最低)までの6レベルがある。
-->

<!ELEMENT ( %heading )  - -  (%text;)*>
<!ATTLIST ( %heading )
        align  (left|center|right) #IMPLIED
        >

H1H2H3H4H5H6 は、文書の見出しを表わすのに用いられる。つねに開始タグと終了タグが必要である。H1 エレメントは H2 エレメントなどより重要であり、H6 エレメントが最も重要性の低いエレメントを定義する。より重要な見出しは通常、重要性の低い見出しよりも大きなフォントでレンダリングされる。見出し内部のテキストの配置を設定するには、オプションの ALIGN アトリビュートを使う。たとえば、

  <H1 ALIGN=CENTER> ... 中央寄せの見出し ... </H1>

デフォルトは左揃えであるが、これは親エレメントの DIV または CENTER エレメントによって上書きできる。

ADDRESS

    <!ENTITY % address.content "((%text;) | P)*">

    <!ELEMENT ADDRESS - - %address.content>

ADDRESS エレメントは、開始タグと終了タグを必要とし、現在の文書の作者やコンタクトの詳細などの情報を指定する。ユーザエージェントは、前後に改段をつけて内容をレンダリングするべきである。内容は、段落、プレインテキスト、%text エンティティで定義されているテキスト風エレメントに制限される。

例:

<ADDRESS>
ニュースレター編集者<BR>
J.R. Brown<BR>
8723 Buena Vista, Smallville, CT 01234<BR>
Tel: +1 (123) 456 7890
</ADDRESS>

ブロックエレメント

P 段落
段落エレメントは、開始タグを必要とするが、終了タグはいつでも省略できる。段落内部のテキスト配置を設定するには、たとえば <P ALING=RIGHT> というように ALIGN アトリビュートを使う。
UL 順不同リスト
これは、開始タグと終了タグを必要とし、個別のリスト項目を表わす LI エレメントを1つ以上包含する。
OL 順序つき(すなわち番号つき)リスト
これは、開始タグと終了タグを必要とし、個別のリスト項目を表わす LI エレメントを1つ以上包含する。
DL 定義リスト
これは、開始タグと終了タグを必要とし、用語を与える DT エレメントと、対応する定義を与える DD エレメントを内包する。
PRE フォーマット済みテキスト
開始タグと終了タグを必要とする。このエレメントは、固定幅フォントでレンダリングされ、空白キャラクタや改行キャラクタによって定義されたレイアウトを保存する。
DIV 文書の分割
開始タグと終了タグを必要とする。それが包含しているブロックエレメントのテキスト配置を設定するために、ALIGN アトリビュートとともに用いられる。ALIGN には LEFTCENTERRIGHT のうち1つをとることができる。
CENTER テキスト配置
開始タグと終了タグを必要とする。CENTER エレメントによって包含されたテキスト行を中央寄せにするために用いられる。より一般的な解決策は、DIV を見ること。
BLOCKQUOTE 引用文章
開始タグと終了タグが必要である。広い引用を包含するために用いられ、普通はインデントされたマージンをつけてレンダリングされる。
FORM 書き込み式フォーム
開始タグと終了タグが必要である。このエレメントは、HTTPサーバによって処理するための書き込み式フォームを定義するために用いられる。アトリビュートは ACTIONMETHODENCTYPE である。フォームエレメントはネストできない。
ISINDEX 原始的なHTMLフォーム
コンテナではないので、終了タグは禁じられる。これは、FORM よりも早く現れたものであり、単業テキスト入力フィールドをもつ、このエレメントにより暗示される単純な種類のフォームを表わすために使われる。ISINDEX は、文書のヘッダまたは本文中に現れることができる。
HR 水平線
コンテナではないので、終了タグは禁止される。アトリビュートは、ALIGNNOSHADESIZEWIDTH である。
TABLE ネスト可能
開始タグと終了タグを必要とする。それぞれのテーブル(組み表)は、任意的な CAPTION に、テーブルの行を定義する TR エレメントが1つ以上続く。それぞれの行は、TH または TD エレメントで定義された1つ以上のセル(桝目)をもつ。TABLE エレメントのアトリビュートは、WIDTHBORDERCELLSPACINGCELLPADDING である。

段落

    <!ELEMENT P     - O (%text)*>
    <!ATTLIST P
        align  (left|center|right) #IMPLIED
        >

P エレメントは、段落をマークアップするために使われる。これはコンテナであり、開始タグが必要である。終了タグは、いつでもパーサによって推測できるから、任意的である。ユーザエージェントは、P エレメントの前後に改段を置くべきである。レンダリングはユーザエージェント依存であるが、テキストは一般的に利用可能な空間に収まるように折り返される。

例:

    <P>これは最初の段落です。
    <P>これは2番目の段落です。

たいてい、段落は端揃えにレンダリングされ、右マージンはでこぼこである。ALIGN アトリビュートを使って、明示的に水平方向の配置を指定できる。

align=left
段落は左端揃えにレンダリングされる。
align=center
段落は中央寄せされる。
align=right
段落は右端揃えに表示される。

例:

<p align=center>これは中央寄せの段落です。
<p align=right>そして、これは右端揃えの段落です。

デフォルトは left 配置であるが、親 DIV エレメントまたは CENTER エレメントによって上書きできる。

リスト

リスト項目は、ネストされたリストを含め、ブロックレベルおよびテキストレベルの項目を包含できる。ただし、見出しとアドレスエレメントは除く。この制限は、%flow エンティティを通じて定義されている。

無順序リスト

    <!ELEMENT UL - -  (LI)+>
    <!ENTITY % ULStyle "disc|square|circle">

    <!ATTLIST UL -- 順序つきリスト --
        type    (%ULStyle)   #IMPLIED   -- マークのスタイル --
        compact (compact)    #IMPLIED   -- 項目間隔を縮める --
        >

    <!ELEMENT LI - O %flow -- list item -->
    <!ATTLIST LI
        type   (%LIStyle)    #IMPLIED   -- リスト項目スタイル --
        >

順序つきリストは、このような形式をとる。

    <UL>
      <LI> ... 1つ目のリスト項目
      <LI> ... 2つ目のリスト項目
      ...
    </UL>

UL エレメントは、順序つきリストを表わすのに使われる。開始タグと終了タグの両方がつねに必要である。LI エレメントは、個別のリスト項目を表わすのに使われる。LI エレメントの終了タグは、つねに省略可能である。LI エレメントはネストされたリストを包含できることに注意すること。COMPACT アトリビュートは、ユーザエージェントに対し、よりコンパクトな様式で項目をレンダリングするようにとのヒントとして使うことができる。

TYPE アトリビュートを使って、UL および LI エレメントに、マークのスタイルを設定できる。許容されている値は、"disc"、"squiare"、"circle" である。デフォルトは一般に、リストのネストレベルに依存する。

この一覧は、1993年に Mosaic によって使われたオリジナルのマークの形を表わすように選ばれている。

順序つき(すなわち番号つき)リスト

    <!ELEMENT OL - -  (LI)+>
    <!ATTLIST OL -- 順序つきリスト --
        type      CDATA      #IMPLIED   -- ナンバリングスタイル --
        start     NUMBER     #IMPLIED   -- 続き番号の始点 --
        compact  (compact)   #IMPLIED   -- 項目間隔を縮める --
        >

    <!ELEMENT LI - O %flow -- リスト項目 -->
    <!ATTLIST LI
        type      CDATA      #IMPLIED   -- リスト項目スタイル --
        value     NUMBER     #IMPLIED   -- 番号シーケンスの設定 --
        >

順序つき(すなわち番号つき)リストは、このような形式をとる。

    <OL>
      <LI> ... 1つ目の項目
      <LI> ... 2つ目の項目
      ...
    </OL>

OL START アトリビュートを使って、番号の並びを初期化できる(デフォルトでは1に初期化される)。LI エレメントの VALUE アトリビュートを使えば、後からでも設定できる。これらのアトリビュートはともに、整数値を期待している。ナンバリングを以前のリストから続けることや、欠けた値を飛ばすことは、明示的な番号を与えなければ示すことができない。

COMPACT アトリビュートは、ユーザエージェントがよりコンパクトなスタイルでリストをレンダリングするようにとの暗示として使うことができる。OLTYPE アトリビュートは、リスト項目に番号のスタイルを設定できるようにする。

Type 番号のスタイル
1 アラビア数字 1, 2, 3, ...
a アルファベット小文字 a, b, c, ...
A アルファベット大文字 A, B, C, ...
i ローマ数字小文字 i, ii, iii, ...
I ローマ数字大文字 I, II, III, ...

定義リスト

<!-- 定義リスト - 用語は DT で表わし、その定義は DD で表わす -->

<!ELEMENT DL    - -  (DT|DD)+>
<!ATTLIST DL
        compact (compact) #IMPLIED -- よりコンパクトなスタイル --
        >

<!ELEMENT DT - O  (%text)*>
<!ELEMENT DD - O  %flow;>

定義リストは、次のような形式をとる。

  <DL>
    <DT> 用語名
    <DD> 用語の定義
    ...
  </DL>

DT エレメントは、テキストレベルエレメントのコンテナとして働くだけであるが、DD エレメントは、見出しエレメントとアドレスエレメントを除くブロックレベルエレメントも持つことができる。

例:

<DL>
<DT>用語1<dd>これは1つ目の用語の定義です。
<DT>用語2<dd>これは2つ目の用語の定義です。
</DL>

これは、たとえばこのようにレンダリングされる。

用語1
これは1つ目の用語の定義です。
用語2
これは2つ目の用語の定義です。

COMPACT アトリビュートは、DL エレメントで、ユーザエージェントにリストをよりコンパクトな様式でレンダリングするようにとの暗示として使うことができる。

DIR および MENU

<!ELEMENT (DIR|MENU) - -  (LI)+ -(%block)>
<!ATTLIST (DIR|MENU)
        compact (compact) #IMPLIED
        >

これらのエレメントは、初期の頃からHTMLの一部分であった。これらは、UL エレメントに似た、順序なしのリストを意図している。ユーザエージェントは、DIR エレメントは複数列のディレクトリリストにレンダリングし、MENU エレメントは単列のメニューリストにレンダリングすることが勧められる。実際には、Mosaic およびその他のほとんどのユーザエージェントは、このアドバイスを無視し、代わりに DIRMENUUL エレメントと同じ方法でレンダリングする。

フォーマット済みテキスト

<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
<!ATTLIST PRE
        width NUMBER #implied
        >

PRE エレメントを使って、フォーマット済みテキストを取り込むことができる。ユーザエージェントは、スペースや改行キャラクタといった空白キャラクタに結び付けられたスペーシングを保存しつつ、これを固定幅フォントでレンダリングする。PRE エレメント内部では、自動ワードラップは不能とされるべきである。

SGML規格は、パーサが、開始タグの直後や終了タグの直前の改行を除去することを要求することに注意すること。

PRE は、たとえば IMGBIGSMALLSUBSUPFONT といった、画像やフォントサイズの変更を生じるエレメントを除いて、段落と同じコンテントモデルをもつ。

少数ではあるが、WIDTH アトリビュートをサポートするユーザエージェントがある。これは、ユーザエージェントに、必要な幅をキャラクタ数でヒントを与えるものである。ユーザエージェントは、これを使って、適切なフォントサイズを選択したり、内容を適切にインデントすることができる。

ここに、PRE エレメントの例がある。Shelley の韻文 (To a Skylark) である。

<PRE>
       Higher still and higher
         From the earth thou springest
       Like a cloud of fire;
         The blue deep thou wingest,
And singing still dost soar, and soaring ever singest.
</PRE>
これは、このようにレンダリングされる。
       Higher still and higher
         From the earth thou springest
       Like a cloud of fire;
         The blue deep thou wingest,
And singing still dost soar, and soaring ever singest.

水平タブキャラクタ(Unicode、US ASCII、ISO 8859-1 ではコード番号 9 にエンコードされている)は、その行が8の倍数のキャラクタ数になるような最小の非ゼロ数のスペースとして解釈されるべきである。タブ間隔を他の値に設定することが編集時の一般的な慣習であり、文書の整置の誤りを導くことから、タブの使用はしないように強く勧められる。

XMP および LISTINGPLAINTEXT

<![ %HTML.Deprecated [

<!ENTITY % literal "CDATA"
        -- 唯一のマークアップ信号が省略のない終了タグである
        歴史的で非適合的な解析モード
        -->

<!ELEMENT (XMP|LISTING) - -  %literal>
<!ELEMENT PLAINTEXT - O %literal>

]]>

これらは廃止されつつあるタグであり、フォーマットテキストを表わすための、PRE の導入以前からあるタグである。ユーザエージェントは、後方互換性のために、これらをサポートしてもよい。制作者は、これらを新しい文書に使うことを避けるべきである!

DIV, CENTER

<!ELEMENT DIV - - %body.content>
<!ATTLIST DIV
        align   (left|center|right) #IMPLIED -- 以後のテキストの配置 --
        >

<!-- CENTER は ALIGN=CENTER のある DIV の簡略表記である -->
<!ELEMENT center - - %body.content>

DIV エレメントを使って、HTML文書を各部分の階層構造として構造化できる。ALIGN アトリビュートを使うと、DIV エレメントの内容の内部にあるエレメントに、水平方向のデフォルトの配置を設定できる。その値は、LEFTCENTERRIGHT に限定され、 段落エレメント <P> と同じように定義されている。

DIV はブロックレベルエレメントであるので、オープンな P エレメントを終結させることになることに注意すること。これ以外では、ユーザエージェントは、DIV エレメントの前後に改段をレンダリングしないことと期待される。CENTER は、DIVALIGN=CENTER をつけたのとまったく等価である。DIVCENTER はともに、開始タグと終了タグを必要とする。

CENTER は、HTML 3.0 の DIV エレメントのサポートを追加する以前に、Netscape によって導入されたものである。それが広く普及しているため、HTML 3.2 でも維持されている。

BLOCKQUOTE

<!ELEMENT BLOCKQUOTE - - %body.content>

これは、他の作品からのブロック引用を囲むために用いられる。開始タグと終了タグの両方が必要である。しばしば、これはインデントされてレンダリングされる。たとえば、こうである。

They went in single file, running like hounds on a strong scent, and an eager light was in their eyes. Nearly due west the broad swath of the marching Orcs tramped its ugly slot; the sweet grass of Rohan had been bruised and blackened as they passed.

"The Two Towers" (J.R.R. Tolkien) より

FORM

<!ENTITY % HTTP-Method "GET | POST"
        -- HTTP仕様書の通り
        -->

<!ELEMENT FORM - - %body.content -(FORM)>
<!ATTLIST FORM
        action %URL #IMPLIED  -- サーバ側フォームのハンドラ --
        method (%HTTP-Method) GET -- HTTP仕様書を見ること --
        enctype %Content-Type; "application/x-www-form-urlencoded"
        >

これはHTMLフォームを定義するために用いられるものである。同じ文書内に2つ以上のフォームを持つことができる。開始タグと終了タグの両方が必要である。きわめて単純なフォームには、ISINDEX エレメントを使うこともできる。フォームは、広範なHTMLマークアップを含むことができる。この中には、単行または複数行のテキストフィールドや、ラジオボタングループ、チェックボックス、メニューといった、数種類のフォームフィールドを含む。

action
これは、たとえば action="mailto:foo@bar.com" として電子メール経由でフォームをポストするために使われるURLか、あるいはたとえば action="http://www.acme.com/cgi-bin/register.pl" としてHTTP経由でサーバサイドのフォームハンドラを起動するために使われるURLを指定する。
method
action アトリビュートがHTTPサーバを指定するとき、method アトリビュートは、フォームの内容をサーバに送るためにどのHTTPメソッドが使われるかを決定する。GETPOST のいずれかをとることができ、デフォルトは GET とされている。
enctype
これは、フォームの内容をエンコードするために用いられるメカニズムを決定する。デフォルトは application/x-www-form-urlencoded とされている。

フォームの扱いについての詳細は、RFC 1867 において与えられている。

HR - 水平線

水平線は、話題の転換を示すために用いてよい。スピーチベースのユーザエージェントでは、たとえばポーズ(一時停止)として実行できるであろう。

<!ELEMENT HR    - O EMPTY>
<!ATTLIST HR
        align (left|right|center) #IMPLIED
        noshade (noshade) #IMPLIED
        size  %Pixels #IMPLIED
        width %Length #IMPLIED
        >

HR エレメントはコンテナではないので、終了タグは禁止される。アトリビュートは、ALIGNNOSHADESIZEWIDTH である。

align
これは、水平線が置かれるのが、現在の左右マージンの間の空間の左か中央か右かを決定するものであり、それぞれ aling=leftalign=centeralign=right と表わす。デフォルトでは、水平線は中央寄せにされる。
noshade
このアトリビュートは、ユーザエージェントが、伝統的な2色の溝としてではなく、水平線を単色無地でレンダリングするように要求する。
size
これを使って、水平線の高さをピクセル数で設定できる。
width
これを使って、水平線の横幅を、ピクセル数(例.WIDTH=100)または、現在の左右マージン間のパーセンテージ(例.width="50%")で設定できる。デフォルトは 100% である。

テーブル(組み表)

HTML 3.2 は、RFC 1942 で与えられ、組み表素材をマークアップしたりレイアウト目的で使うことができる、広く普及している仕様書の下位セットを取り込む。後者の役割は、普通、音声またはテキスト専用のユーザエージェントに、レンダリング時の問題を生じさせる。

<!-- ウィンドウとの相対比較によるテーブルの水平方向の配置 -->
<!ENTITY % Where "(left|center|right)">

<!-- セル内容のための水平配置アトリビュート -->
<!ENTITY % cell.halign
        "align  (left|center|right) #IMPLIED"
        >

<!-- セル内容のための垂直配置アトリビュート -->
<!ENTITY % cell.valign
        "valign  (top|middle|bottom)  #IMPLIED"
        >

<!ELEMENT table - - (caption?, tr+)>
<!ELEMENT tr - O (th|td)*>
<!ELEMENT (th|td) - O %body.content>

<!ATTLIST table                       -- table エレメント --
        align     %Where;   #IMPLIED  -- ウィンドウとの相対比較によるテーブルの位置 --
        width     %Length   #IMPLIED  -- ウィンドウとの相対比較によるテーブルの幅 --
        border    %Pixels   #IMPLIED  -- テーブルの周囲の枠の幅を制御する --
        cellspacing %Pixels #IMPLIED  -- セル間の隙間 --
        cellpadding %Pixels #IMPLIED  -- セル内部の隙間 --
        >

<!ELEMENT CAPTION - - (%text;)* -- テーブルまたは図の表題 -->
<!ATTLIST CAPTION
        align (top|bottom) #IMPLIED
        >

<!ATTLIST tr                       -- テーブルの行 --
        %cell.halign;              -- セル内の水平配置 --
        %cell.valign;              -- セル内の垂直配置 --
        >

<!ATTLIST (th|td)                  -- 見出しセルまたはデータセル --
        nowrap (nowrap)  #IMPLIED  -- ワードラップを抑制する --
        rowspan NUMBER   1         -- セルがまたがる行数 --
        colspan NUMBER   1         -- セルがまたがる列数 --
        %cell.halign;              -- セル内の水平配置 --
        %cell.valign;              -- セル内の垂直配置 --
        width   %Pixels  #IMPLIED  -- セルに示唆される幅 --
        height  %Pixels  #IMPLIED  -- セルに示唆される高さ --
        >

テーブルは、一般的に次のような形式をとる。

  <TABLE BORDER=3 CELLSPACING=2 CELLPADDING=2 WIDTH="80%">
  <CAPTION> ... テーブルの表題 ... </CAPTION>
  <TR><TD> 1つ目のセル <TD> 2つ目のセル
  <TR> ...
  ...
  </TABLE>

TABLE のアトリビュートはすべて任意的である。デフォルトでは、テーブルは、周囲のボーダー(境界線)なしでレンダリングされる。テーブルは、内容に適合するように自動的にサイズを決定されるが、WIDTH アトリビュートを使ってテーブルの幅を設定することもできる。BORDERCELLSPACINGCELLPADDING は、テーブルの外観についてさらに踏み込んだ制御を提供する。表題は、ALIGN アトリビュートによってテーブルの上端または下端にレンダリングされる。

テーブルの各行は、TR エレメントの中に包含されるが、終了タグはつねに省略可能である。テーブルのセルは、データ用は TD で定義され、見出し用は TH で定義される。TR のように、これらはコンテナであるが、終了タグを引きずらずに与えることができる。TH および TD は、いくつかのアトリビュートをサポートする。ALIGNVALIGN はセルの内容の配置を表わし、ROWSPANCOLSPAN は2列以上または2行以上にまたがるセルを表わす。セルは、フォームフィールドや他のテーブルを含め、多様なブロックレベルまたはテキストレベルのエレメントを包含できる。

TABLE エレメントは、つねに開始タグと終了タグを必要とする。以下のアトリビュートをサポートする。

align
これは、大文字小文字の区別のない次の値のうちの1つをとる。LEFTCENTERRIGHT. これは、現在の左右マージンとの関係で、テーブルの水平方向の配置を指定する。デフォルトは left 配置であるが、親 DIV または CENTER エレメントで上書きできる。
width
このアトリビュートがなければ、テーブル幅は、テーブルの内容から自動的に決定される。WIDTH アトリビュートを使うと、テーブル幅に、ピクセル数(例.WIDTH=212)または、現在の左右マージン間の空間のパーセンテージ(例.WIDTH="80%")をもって、固定値を設定できる。
border
このアトリビュートを使って、テーブルの周囲の外ボーダーの幅に、与えられたピクセル数(例.BORDER=4)を指定できる。値を0に設定すると、ボーダーをすべて抑制することができる。このアトリビュートがなければ、ボーダーは抑制されるべきである。ブラウザの中には、<TABLE BORDER>BORDER=1 と同じ意味で受け付けるものがある。
cellspacing
伝統的なDTPソフトウェアでは、隣接するテーブルセルは共通のボーダーを共有する。これは、HTMLには当てはまらない。各セルは、隣りあうセルの周りのボーダーから分離されている独自のボーダーを与えられるのである。この分離は、CELLSPACING アトリビュートを使って、ピクセル数で設定できる(例.CELLSPACING=10)。テーブルボーダと最も外側のセルのボーダーとの間の分離も、同じ値が決定する。
cellpadding
これは、各セルの周囲のボーダーとそのセルの内容との間のパディングを、ピクセル数で設定する。

CAPTION エレメントは、ALIGN という1つのアトリビュートを持ち、これは ALING=TOPALIGN=BOTTOM かのいずれかをとることができる。これを使って、それぞれ表題がテーブルの上や下に置かれるように強制することができる。ほとんどのユーザエージェントは、表題をテーブルの上に置くことをデフォルトとする。CAPTION はつねに開始タグと終了タグの両方を必要とする。表題は、%text エンティティで定義されているように、プレインテキストとテキストレベルエレメントとに限定される。ブロックレベルエレメントは許容されない。

TR またはテーブル行エレメントは、開始タグを必要とするが、終了タグはつねに放置できる。TR は、テーブルセルにとってのコンテナとして働く。これは2つのアトリビュートを持つ。

align
セル内容の水平方向のデフォルト配置を設定する。これは、大文字小文字を区別しない次の値のうちから1つをとる。LEFTCENTERRIGHT. 段落エレメントの ALIGN と同じ役割をする。
valign
これを使って、各セル内部のセル内容の垂直方向のデフォルト配置を設定できる。これは、大文字小文字を区別しない次の値から1つをとる。TOPMIDDLEBOTTOM. それぞれ、セルの内容を、セルの上端、中央、下端に位置決定する。

テーブルのセルを定義するには、2つのエレメントがある。TH は見出しセルを表わすのに使われ、TD はデータセルを表わすのに使われる。この区別は、ユーザエージェントが、見だしとデータを違ったフォントでレンダリングできるようにし、スピーチベースのブラウザがよりよい仕事をすることを可能にする。THTD の開始タグはつねに必要であるが、終了タグは放っておける。テーブルセルは以下のアトリビュートを持つことができる。

nowrap
このアトリビュートがあれば、このセルの内容では自動ワードラップはオフにされる(例.<TD NOWRAP>)。これは、切れ目を作らないスペースを表わす &nbsp; エンティティをセル内容の中で使うのと等価である。
rowspan
これは、このセルがまたがる行の数を指定する正の整数値をとる。デフォルトは1である。
colspan
これは、このセルがまたがる列の数を指定する正の整数値をとる。デフォルトは1である。
align
セルの内容の水平方向のデフォルト配列を指定し、テーブル行の ALIGN アトリビュートを上書きする。取る値は同じ LEFTCENTERRIGHT である。セルに ALIGN アトリビュートを指定しなければ、デフォルトは、<td> には left 配置であり、<th> には center 配置であるが、TR エレメント上の ALIGN でこのデフォルト値を上書きできる。
valign
セル内容の垂直方向のデフォルト配置を指定し、テーブル行の VALIGN アトリビュートを上書きする。取る値は同じ TOPMIDDLEBOTTOM である。セルに VALIGN アトリビュートを指定しなければ、デフォルトは middle であるが、このデフォルト値は TR エレメントの VALIGN アトリビュートで上書きできる。
width
セルのパディングを除いたセル内容の幅を、ピクセル数で示唆する。同じ列の他のセルの必要幅と矛盾するときを除き、通常はこの値が使われることになる。
height
セルのパディングを除いた、セルの内容の高さをピクセル数で示唆する。同じ行の他のセルの必要高と矛盾するときを除き、通常はこの値が使われることになる。

テーブルは通例として、外側のボーダーは斜面として浮き上がらせて浅浮き彫り状にレンダリングされ、個別のセルはこの浮き上がった面に掘り込まれる。個別のセルの周囲のボーダーは、そのセルが明示的な内容を有しているときに限り、描画される。空白は、&nbsp; を除いて、この目的には意味がない。

テーブルのサイズを自動的に決定するのに使われるアルゴリズムは、各セルの最小および最大の要求幅を考慮に入れるべきである。これは、各列の最小および最大の要求幅、ひいてはテーブル自体の最小および最大の要求幅を決定するために用いられる。

2列以上にわたるセルは、そのわたる列のそれぞれの幅に影響する。ひとつのアプローチは、これらの列の間でそのセルの最小幅や最大幅を均分することである、もうひとつは、複数列にわたらないセルからの影響に従って案分することである。

ユーザエージェントにとって、単語内部でテキスト行を改行することが必要であったり、望ましかったりする場合がある。そうした場合には、これが起こっている旨の視覚的表示をするようにアドバイスする。

ネストされたテーブルの最大幅や最小幅は、それが発生するセルの最大幅や最小幅に影響する。いったん要求幅がトップレベルのテーブルについてわかれば、そのテーブルの列の幅を割り当てることができる。これは、ネストされたテーブルの幅、ひいてはそうしたテーブルの列の幅の割り当てを可能にする。実際的であれば、すべての列は、少なくともその最小幅が割り当てられるべきである。余分な空間はどれも、その後、各列の最小幅要求と最大幅要求との間の差に比例して分割されるよう示唆される。

幅および高さのピクセル値は画面上のピクセルを参照しており、レーザープリンタなどといった解像度のきわめて高いデバイスへのレンダリングのときには適切な因数が掛けられるべきであることに注意すること。たとえばユーザエージェントが、75dpi(1インチあたり75ピクセル)のディスプレイを持ち、600dpi のレーザープリンタにレンダリングされるのであれば、HTMLアトリビュートに与えられたピクセル値は因数8を掛けられるべきである。


テキストレベルエレメント

これらは、改段を起こさない。キャラクタのスタイルを定義するテキストレベルエレメントは、一般的にネスト可能である。他のテキストレベルエレメントを包含することができるが、ブロックレベルエレメントは包含できない。

フォントスタイルエレメント

これらはすべて、開始タグと終了タグが必要である。例.

  この中には<B>太字のテキスト</B>があります。

テキストレベルエレメントは、適切にネストしなければならない。以下の例は誤りである。

  この中には<B>太字や<I></B>斜字体のテキスト</I>があります。
ユーザエージェントは、ネストされた強調を尊重するために最善を尽くすべきである。例.
  この中には<B>太字で<I>斜字体のテキスト</I></B>があります。

利用可能なフォントが制限されているところや、音声出力用には、代替手段を使って、強調の差をレンダリングするべきである。

TT テレタイプまたは固定幅 (monospaced) テキスト
I イタリック(斜字体)テキストスタイル
B ボールド(太字)テキストスタイル
U 下線つきテキストスタイル
STRIKE 取消線テキストスタイル
BIG 大きいフォントでテキストを置く
SMALL 小さいフォントでテキストを置く
SUB 下付きスタイルでテキストを置く
SUP 上付きスタイルでテキストを置く

注意:将来のバージョンのHTMLは、HTML3.0に由来するより簡潔な "S" タグを好み、STRIKE を漸次廃止するかもしれない。

フレーズエレメント

これらはすべて、開始タグと終了タグが必要である。例.

  この中には、<EM>強調されたテキスト</EM>がある。
EM 基本的な強調であり、概してイタリックフォントでレンダリングされる。
STRONG 強い強調であり、概してボールドフォントでレンダリングされる。
DFN 囲まれている用語の例を定義する。
CODE プログラムコードからの抜粋を表わすのに用いられる。
SAMP プログラムやスクリプトなどからの出力例を表わすのに用いられる。
KBD ユーザによってタイプされるべきテキストを表わすのに用いられる。
VAR 変数またはコマンドの引数を表わすのに用いられる。
CITE 他のソースの引用または参照を表わすのに用いられる。

フォームフィールド

INPUTSELECTTEXTAREA は、FORM エレメント内部でのみ許される。INPUT は、多様なフォームフィールドに使うことができる。このフォームフィールドには、単行テキストフィールド、パスワードフィールド、チェックボックス、ラジオボタン、送信およびリセットボタン、隠しフィールド、ファイルアップロード、画像ボタンがある。SELECT エレメントは、択一メニューまたは複数選択メニューに使われる。TEXTAREA エレメントは、複数行テキストフィールドを定義するために使われる。エレメントの内容は、フィールドを初期化するのに使われる。

INPUT テキストフィールド, ラジオボタン, チェックボックスなど

INPUT エレメントはコンテナではなく、終了タグは禁止される。

<!ENTITY % IAlign "(top|middle|bottom|left|right)">

<!ENTITY % InputType
        "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
            | RESET | FILE | HIDDEN | IMAGE)">

<!ELEMENT INPUT - O EMPTY>
<!ATTLIST INPUT
        type %InputType TEXT     -- どの種類の widget が必要か --
        name  CDATA #IMPLIED     -- submit、reset 以外のすべてのものに必須 --
        value CDATA #IMPLIED     -- radio、checkboxes に必須 --
        checked (checked) #IMPLIED -- ラジオボタン、チェックボックス用 --
        size CDATA  #IMPLIED     -- フィールドの型ごとに特有 --
        maxlength NUMBER #IMPLIED
        src   %URL  #IMPLIED     -- 背景画像つきフィールド用 --
        align %IAlign #IMPLIED   -- 垂直方向、水平方向の配置 --
        >
type
入力フィールドの型を設定するために使われる。
type=text (デフォルト)
単行テキストフィールドであり、その可視的サイズは size アトリビュートを使って設定できる。たとえば、40キャラクタ幅のフィールドは size=40 と表わす。もっとも、ユーザは、テキストを、入力カーソルが視野の中にあるようにフィールドをスクロールさせて、この制限以上の文字をタイプできるべきである。maxlength アトリビュートで、入れられるキャラクタ数に上限を課すことができる。name アトリビュートはフィールドに名前をつけるのに使われ、value アトリビュートは、文書が最初に読みこまれたときにフィールド内に表示されるテキスト文字列を初期化するために用いることができる。
    <input type=text size=40 name=user value="あなたの名前">
type=password
これは type=text のようであるが、* のようなキャラクタを使ってキャラクタをエコーし、パスワードを入れるときに周囲の盗み見るような目からテキストを隠すものである。通常のテキストフィールドとまったく同様に、sizemaxlength アトリビュートを使って、可視長や最大長を制御できる。
    <input type=password size=12 name=pw>
type=checkbox
単純な2値アトリビュート、または同時に複数の値を取りうるアトリビュートを表わすのに用いられる。後者は、同じ name アトリビュートと異なる value アトリビュートとを持ついくつかのチェックボックスフィールドによって表現される。チェックされたチェックボックスはそれぞれが、name が重複することとなる場合でも、送信データの中に分離された name/value の対を生成する。チェックボックスをチェックされた状態に初期化するには、checked アトリビュートを使う。
    <input type=checkbox checked name=uscitizen value=yes>
type=radio
1セットの選択肢の中から単一の値を取ることができるアトリビュートを表わすのに用いられる。グループ内のラジオボタンフィールドはそれぞれが、同じ name を与えられるべきである。ラジオボタンは、明示的な value を必要とする。グループ内のチェックされたラジオボタンだけが、送信されるデータ内に name/value の対を生成する。各グループ内では、checked アトリビュートを使って、初期的に1つのラジオボタンがチェックされているべきである。
    <input type=radio name=age value="0-12">
    <input type=radio name=age value="13-17">
    <input type=radio name=age value="18-25">
    <input type=radio name=age value="26-35" checked>
    <input type=radio name=age value="36-">
type=submit
これは、ユーザがフォームの内容をサーバに送信するためにクリックできるボタンを定義する。ボタンのラベルは、value アトリビュートから設定できる。もし name アトリビュートが与えられていれば、送信ボタンの name/value の対が送信されるデータに取り込まれることになる。フォーム内に数個の送信ボタンを含めることができる。グラフィック送信ボタンについては type=image を見ること。
    <input type=submit value="Party on ...">
type=image
これは、テキスト文字列ではなく画像を用いてレンダリングされるグラフィカルな送信ボタンを表わすのに用いられる。画像のURLは、src アトリビュートで指定される。画像の配置は、align アトリビュートで指定できる。この点で、グラフィック送信ボタンは IMG エレメントと同様に扱われるから、align を left、right、top、middle、bottom に設定できる。クリックされた位置のx、yの値がサーバに渡される。画像フィールドは、2対の name/value として送信データ中に取り込まれる。name は、フィールド名を取って、x値には ".x" を、y値には ".y" を付け足すことにより引き出される。
<p>それでは、マップ上の点を選んでください。

    <input type=image name=point src="map.gif">

注意: 画像フィールドは普通、テキスト専用やスピーチベースのユーザエージェントには問題を引き起こす!

type=reset
これは、ユーザがクリックするとフォームフィールドを文書が最初に読みこまれたときの初期状態にリセットできるボタンを定義する。ラベルは、value アトリビュートを与えることで設定できる。リセットボタンは、決してフォームの内容の一部分として送られない。
    <input type=reset value="Start over ...">
type=file
これは、ユーザがフォームの内容にファイルを添付する手段を提供する。これは、概して、テキストフィールドと、クリックされたときにファイル名を選択するためのファイルブラウザを呼び出す、関連づけられたボタンとでレンダリングされる。ファイル名は、テキストフィールドに直接入れることもできる。ちょうど type=text のように、size アトリビュートを使って、このフィールドの可視幅を平均的なキャラクタ幅で設定できる。maxlength アトリビュートを使えば、ファイル名の長さに上限を設定することができる。たとえば accept="image/*" というように、ACCEPT アトリビュートで与えられる、コンマで区切られた MIME コンテント型のリストに合致するものにファイルの種類を制限する能力をサポートするユーザエージェントもある 踏み込んだ情報は RFC 1867 で見ることができる。
    <input type=file name=photo size=20 accept="image/*">
type=hidden
このフィールドはレンダリングされるべきではないものであり、サーバがフォームで状態情報を記憶するための手段を提供する。これは、フォームが送信されるときに、対応するアトリビュートで定義された name/value の対を使って、サーバに返されることになる。これは、HTTPの無状態性を迂回する作業である。もう一つのアプローチは、HTTP「クッキー」を使うことである。
    <input type=hidden name=customerid value="c2415-345-8563">
name
サーバに送信されるときに、このフィールドの内容を識別するために用いられることになるプロパティ名を定義する。
value
フィールドを初期化し、あるいは送信またはリセットボタンにテキストラベルを提供するために用いられる。
checked
このアトリビュートの存在は、チェックボックスやラジオボタンをチェックされた状態に初期化するために用いられる。
size
たとえば size=20 というように、テキストフィールドの可視幅を、与えられた数の平均的なキャラクタの幅に設定するために用いられる。
maxlength
テキストフィールド内で許容されるキャラクタ数の最大値を設定する。
src
グラフィカル送信ボタンで使う画像を表わすURLを指定する。
align
グラフィック送信ボタンに対して画像の配置を指定するために用いられる。これは、ちょうど IMG の align アトリビュートのように定義され、次の値のうちから1つをとる。topmiddlebottomleftright で、デフォルトは bottom である。

SELECT メニュー

<!ELEMENT SELECT - - (OPTION+)>
<!ATTLIST SELECT
        name CDATA #REQUIRED
        size NUMBER #IMPLIED
        multiple (multiple) #IMPLIED
        >

<!ELEMENT OPTION - O (#PCDATA)*>
<!ATTLIST OPTION
        selected (selected) #IMPLIED
        value  CDATA  #IMPLIED -- エレメント内容のデフォルト --
        >

SELECT は、択一式または多数選択式のメニューを定義するのに用いられる。SELECT エレメントは、開始タグと終了タグを必要とし、メニュー項目を定義する OPTION エレメントを1つ以上含む。択一式メニューは一般的にドロップダウンメニューとしてレンダリングされ、多数選択式メニューは一般的にリストボックスとして表わされる。

例:

    <SELECT NAME="flavor">
    <OPTION VALUE=a>Vanilla
    <OPTION VALUE=b>Strawberry
    <OPTION VALUE=c>Rum and Raisin
    <OPTION VALUE=d>Peach and Orange
    </SELECT>

SELECT アトリビュート:

name
これは、フォームがサーバに送信されたときにメニューの選択を識別するために用いられるプロパティ名を指定する。選択された選択肢はそれぞれが、フォームの内容の一部分として取り込まれる1対のプロパティの name/value になる。
size
これは、多数選択式メニューについて、見える選択肢の数を設定する。
multiple
このアトリビュートがあることは、ユーザが複数選択をできることを示す。デフォルトでは、1つの選択だけが許される。

OPTION アトリビュート:

selected
このアトリビュートが存在する場合、文書が最初読みこまれたときに選択肢が選択される。択一式メニューについて、2つ以上の選択肢が選択されていることはエラーである。
value
フォームの内容が送信されるときに使われるプロパティ名を指定する。これは、親 SELECT エレメントの name アトリビュートによって与えられるプロパティ名と組み合わされる。

TEXTAREA 複数行テキストフィールド

<!-- 複数行テキスト入力フィールド -->

<!ELEMENT TEXTAREA - - (#PCDATA)*>
<!ATTLIST TEXTAREA
        name CDATA #REQUIRED
        rows NUMBER #REQUIRED
        cols NUMBER #REQUIRED
        >

TEXTAREA エレメントは、開始タグと終了タグを必要とする。エレメントの内容は、テキストとキャラクタエンティティに制限される。この内容は、文書が最初に読みこまれたときに示されるテキストを初期化するために用いられる。

例:

    <TEXTAREA NAME=address ROWS=4 COLS=40>
    住所はここに ...
    </TEXTAREA>

ユーザエージェントは、フィールドの内容を送信するとき、行の末尾を CR,LF(ASCIIコード 13,10)に正規化することが勧められる。送信されたデータのキャラクタセットは、先にサーバが代わりのキャラクタセットをサポートできることを示していない限り、ISO Latin-1 であるべきである。

name
これは、フォームがサーバに送信されたときに textarea フィールドを識別するに用いられるプロパティ名を指定する。
rows
見えるテキスト行の数を指定する。ユーザはこれ以上の行を入れることができるべきであり、そこでユーザエージェントは、内容が可視領域を越えて広がるときに、textarea フィールドの内容を通してスクロールする手段を提供するべきである。
cols
可視幅を平均的なキャラクタ幅で指定する。ユーザはこれより長い行を入れることができるべきであり、そこでユーザエージェントは、内容が可視領域を越えて広がるときに、textarea の内容を通してスクロールする手段を提供するべきである。ユーザエージェントは、スクロールの必要なしに長い行を見えるようにしておくため、見えているテキスト行を折り返してもよい。

特殊なテキストレベルエレメント

A(アンカー)、IMGAPPLETFONTBASEFONTBRMAP.

A(アンカー)エレメント

<!ELEMENT A - - (%text)* -(A)>
<!ATTLIST A
        name    CDATA   #IMPLIED    -- 名前つきリンク端 --
        href    %URL    #IMPLIED    -- リンク先リソースのURL --
        rel     CDATA   #IMPLIED    -- 前方リンク型 --
        rev     CDATA   #IMPLIED    -- 逆リンク型 --
        title   CDATA   #IMPLIED    -- アドバイス的表題文字列 --
        >

アンカーはネストできず、つねに開始タグと終了タグを必要とする。これは、たとえば、

   <a href="hands-on.html">幸せ</a>への道

というようにハイパーテキストリンクを定義し、また、たとえば

   <h2><a name=mit>545 Tech Square - ハッカー天国</a></h2>

というようにハイパーテキストリンクのターゲットとして使われる名前つき箇所を定義するために用いられる。

name
これは、現在のHTML文書の射程内で一意的な名前を定義する文字列であるべきである。NAME は、文書の名前つき箇所をターゲットとするURLで使うため、文書のこの部分を名前と関連づけるために用いられる。
href
リンク先リソースを表わすネットワークアドレスとして働くURLを指定する。これは、他のHTML文書や、PDFファイル、画像などであってもかわまない。
rel
「リンク型」としても知られる、前方関係である。これは、リンクされたリソースの集積を印字するときに、リンク先リソースをどのように扱うべきかを決定するために用いることもできる。
rev
これは逆関係を定義する。文書Aから REV=relation をもつ文書Bへのリンクは、文書Bから REL=reration をもつ文書Aへのリンクと同じ関係を表わす。REV=made は、ときに、文書制作者を識別するために用いられ、mailto URL つきの制作者の電子メールアドレスか、制作者のホームページへのリンクかのどちらかである。
title
リンク先のリソースについてのアドバイス的な表題である。

IMG - インライン画像

<!ENTITY % IAlign "(top|middle|bottom|left|right)">

<!ELEMENT IMG    - O EMPTY --  埋め込み画像 -->
<!ATTLIST IMG
        src     %URL     #REQUIRED  -- 埋め込む画像のURL --
        alt     CDATA    #IMPLIED   -- 画像の代わりの表示を表わす --
        align   %IAlign  #IMPLIED   -- 垂直、水平方向の配置 --
        height  %Pixels  #IMPLIED   -- ピクセル単位の示唆される高さ --
        width   %Pixels  #IMPLIED   -- ピクセル単位の示唆される幅 --
        border  %Pixels  #IMPLIED   -- 示唆されるリンクボーダー幅 --
        hspace  %Pixels  #IMPLIED   -- 示唆される水平方向の溝 --
        vspace  %Pixels  #IMPLIED   -- 示唆される垂直方向の溝 --
        usemap  %URL     #IMPLIED   -- クライアント側イメージマップを使う --
        ismap   (ismap)  #IMPLIED   -- サーバ側イメージマップを使う --
        >

画像を挿入するために用いられる。IMG は空エレメントであり、終了タグは禁止される。画像は、現在のテキスト行との相対比較で垂直方向に位置決定でき、また左右に浮動させることができる。テキストフローの制御は、CLEAR アトリビュートつき BR を見ること。

例.  <IMG SRC="canyon.gif" ALT="グランドキャニオン">

IMG エレメントは、以下のアトリビュートをサポートする。

src
このアトリビュートは、IMG エレメントごとに要求される。これは、たとえばGIF、JPEG、PNG画像ファイルといった、画像リソースを表わすURLを指定する。
alt
これは、画像の代わりのテキスト記述を提供し、スピーチペースやテキスト専用のユーザエージェントとの相互運用性を活性化する。
align
これは、画像が発生した現在のテキスト行との相対比較で、その画像をどのように位置決定するかを指定する。

align=top
画像の上端を、現在のテキスト行の上端に揃えて位置決定する。ユーザエージェントによって、これをどのように解釈するかは違っている。IMG エレメント以前のテキスト行に起こったものを考慮に入れ、その後に起こったものは無視するものもある。
align=middle
画像の中央を、現在のテキスト行のベースラインに揃える。
align=bottom
デフォルトであり、画像の下端をベースラインに揃える。
align=left
一時的に現在の右マージンを変更して、画像をこのマージンへ浮動させ、そのため後続のテキストは画像の右側に流される。レンダリングは、マークアップされた現在の画像よりも先に現れる left 配置のテキストまたは画像があるか否かに依存する。そのようなテキスト(画像ではない)は一般的に、後続のテキストは以前の行に続けさせながら、left 配置の画像を新しい行に折り返させる。
align=right
一時的に現在の右マージンを変更して、画像をこのマージンに浮動させ、そのため後続のテキストは画像の左側に流される。レンダリングは、マークアップされた現在の画像よりも先に現れる right 配置のテキストまたは画像があるか否かに依存する。こうした right 配置のテキスト(画像は除く)は、一般的に、後続のテキストを以前の行に続けさせながら、right 配置の画像を新しい行に折り返し表示する。

ブラウザによっては、複数の left 配置または right 配置の画像について、もっともらしいスペーシングを導入するものがある。結果として、制作者は、異なるベンダーから出されているブラウザでは、スペーシングが同じであることを頼ることができない。テキストフローを制御する方法は、BR を見ること。

width
画像の意図される幅を、ピクセル数で指定する。height とともに与えられたときは、これは、画像データがネットワークを通じて到達する前に、ユーザエージェントが画像のためのスクリーンスペースを予約することを可能にする。
height
画像の意図される高さを、ピクセル数で指定する。width とともに与えられたときは、これは、画像データがネットワークを通じて到達する前に、ユーザエージェントが画像のためのスクリーンスペースを予約することを可能にする。
border
IMG エレメントがハイパーテキストリンクの一部分として現れるときは、ユーザエージェントは一般的に、これを、画像の周りに色つき(概して青色)でボーダーを描くことによって示すことになる。このアトリビュートを使うと、このボーダの幅をピクセル数で設定することができる。ボーダーを完全に抑制するためには border=0 を使う。ユーザエージェントは、たとえばマウスポインタを変化させることで、画像がクリック可能である旨の追加的な合図を提供することが勧められる。
hspace
これを使って、画像のすぐ左右に空白を与えることができる。HSPACE アトリビュートは、この空白の幅をピクセル数で設定する。デフォルトでは、HSPACE は非ゼロの小さい数である。
vspace
これを使って、画像の上下に空白を与えることができる。VSPACE アトリビュートは、この空白をピクセル数で設定する。デフォルトでは、VSPACE は非ゼロの小さい数である。
usemap
これを使って、MAP エレメントで定義されているクライアントサイドのイメージマップに、URLフラグメント識別子を与えることができる。
ismap
IMG エレメントはハイパーテキストリンクの一部分であり、ユーザが画像をクリックしたとき ISMAP アトリビュートはその位置をサーバに渡す。このメカニズムは、テキスト専用やスピーチベースのユーザエージェントに問題を生じさせる。可能であるときはいつでも、MAP エレメントを代わりに用いること。

ここにあるのは、ISMAP の使い方の例である。

<a href="/cgibin/navbar.map"><img src=navbar.gif ismap border=0></a>

クリックされた位置は、次のようにしてサーバに渡される。ユーザエージェントは、href アトリビュートによって指定されたURLから、ピクセル単位で、`?' x座標 `,' y座標を付加することで、新しいURLを引き出す。そうしてリンクはこの新しいURLを使ってたどられる。たとえば、もしユーザが x=10、y=27 の位置をクリックしたならば、引き出されるURLは、"/cgibin/navber.map?10,27" ということになる。ボーダーを抑制し、グラフィック的なイデオムを使って画像がクリック可能であることを示すことは、概してよい考えである。

ピクセル値はスクリーンピクセルを参照するものであり、レーザプリンタといったようなきわめて解像度の高いデバイスにレンダリングするときには適切な因数を掛けるべきであることに注意すること。たとえば、もしユーザエージェントが 75dpi の解像度のディスプレイをもち、600dpi のレーザープリンタにレンダリングするのであれば、HTMLアトリビュートに与えられたピクセル値は8という因数を掛けられるべきである。

APPLET (Java アプレット)

<!ELEMENT APPLET - - (PARAM | %text)*>
<!ATTLIST APPLET
        codebase %URL     #IMPLIED   -- コードベース --
        code     CDATA    #REQUIRED  -- クラスファイル --
        alt      CDATA    #IMPLIED   -- アプレットの代わりの表示を表わす --
        name     CDATA    #IMPLIED   -- アプレット名 --
        width    %Pixels  #REQUIRED  -- ピクセル単位の示唆される幅 --
        height   %Pixels  #REQUIRED  -- ピクセル単位の示唆される高さ --
        align    %IAlign  #IMPLIED   -- 垂直方向、水平方向の配置 --
        hspace   %Pixels  #IMPLIED   -- 示唆される水平方向の溝 --
        vspace   %Pixels  #IMPLIED   -- 示唆される垂直方向の溝 --
        >

<!ELEMENT PARAM - O EMPTY>
<!ATTLIST PARAM
    name    NMTOKEN   #REQUIRED  -- パラメータの名前 --
    value   CDATA     #IMPLIED   -- パラメータの値 --
    >

開始タグと終了タグを必要とする。このエレメントは、Java が利用可能なすべてのブラウザでサポートされる。このエレメントは、Java アプレットをHTML文書に埋め込むことを可能にする。APPLET は、アプレットにパラメータを渡すために、関連づけられた PARAM エレメントを使う。PRAM エレメントに続けて、APPLET エレメントの内容を使って、Java をサポートしないユーザエージェントのためにアプレットの代用品を提供するべきである。DTD内の %text エンティティによって定義されているように、この内容はテキストレベルのマークアップに限定される。Java 互換ブラウザは、この余分なHTMLコードは無視する。それを使って、実行中のアプレットのスナップショットを、アプレットが何をしているかを説明するテキストをつけて示すことができる。この領域で他にありそうなものとしては、Java を無視するブラウザのためのより有益なページへのリンクや、ユーザが Java 互換ブラウザをもっていないことを嘲るテキストがある。

ここにあるのは、Java アプレットの単純な例である。

    <applet code="Bubbles.class" width=500 height=500>
    アニメーションするシャボン玉を描く Java アプレット
    </applet>

ここにあるのは、PARAM エレメントを用いた例である。

    <applet code="AudioItem" width=15 height=15>
    <param name=snd value="Hello.au|Welcome.au">
    歓迎の声を再生する Java アプレット
    </applet>
codebase = codebaseURL
この任意的なアトリビュートは、アプレットのベースURL -- アプレットのコードを含んでいるディレクトリまたはフォルダ -- を指定する。このアトリビュートが指定されなければ、文書のURLが用いられる。
code = appletFile
この必須のアトリビュートは、アプレットのコンパイルされた Applet サブクラスを含むファイル名を与える。このファイルは、アプレットのベースURLとの相対指定である。絶対指定にすることはできない。
alt = alternateText
この任意的なアトリビュートは、ブラウザが APPLET タグを理解するけれども Java アプレットを実行できない場合に表示されるべきテキストを指定する。
name = appletInstanceName
この任意的なアトリビュートはアプレットのインスタンスの名前を指定する。これは同じページ上のアプレットが互いに相手を見つけ(てコミュニケートする)ことを可能にする。
width = pixels
height = pixels
これらの必須のアトリビュートは、アプレットの表示領域の幅および高さの初期値を(ピクセル数で)与える。アプレットが生み出すウィンドウやダイアログは含まない。
align = alignment
このアトリビュートは、アプレットの配置を指定する。このアトリビュートは、IMG エレメントとまったく同じように定義される。許容される値は、topmiddlebottomleftright である。デフォルト値は、bottom である。
vspace = pixels
hspace = pixels
これらの任意的なアトリビュートは、アプレットの上下 (VSPACE) および両側 (HSPACE) のピクセル数を指定する。これらは、IMG エレメントの VSPACEHSPACE アトリビュートと同じように扱われる。

PARAM エレメントは、アプレットに、指名されたパラメータを渡すために用いられる。

   <PARAM NAME = appletParameter VALUE = value>

PARAM エレメントは、アプレット特有のパラメータを指定するための唯一の方法である。アプレットは、getParameter() メソッドでパラメータのユーザ指定値を読む。

name = アプレットパラメータ名
value = パラメータ値

&eacute;&#185 といったSGMLキャラクタエンティティは、パラメータ値がアプレットに渡される前に展開される。& キャラクタを取り込むには、&amp; を使う。

注意:PARAM エレメントは、APPLET エレメントの内容の最初に置くべきである。このことはDTDの一部として規定されていないが、これはSGML混合内容モデルの技術性のせいである。

FONT

<!ELEMENT FONT - - (%text)*     -- ローカルなフォント変更 -->
<!ATTLIST FONT
    size    CDATA   #IMPLIED    -- [+]nn 例.size="+1", size=4 --
    color   CDATA   #IMPLIED    -- #RRGGBB 16進表記.例.赤: color="#FF0000" --
    >

開始タグと終了タグを必要とする。これは、挟まれたテキストのフォントサイズおよび/または色を変更することを可能にする。アトリビュートは、SIZECOLOR である。フォントサイズは、ユーザエージェントによって定義された、直接的なフォントサイズの割り当てをもたないスカラー範囲という形で与えられる。FONT エレメントは、将来のHTMLの見直しにおいて、徐々に廃止されるかもしれない。

size
これは、フォントエレメントの内容のフォントサイズを設定する。絶対的フォントサイズとしては 1 から 7 までの範囲の整数で設定でき、また、たとえば size="+1"size="-2" というように、符号つき整数値を用いて相対的フォントサイズを指定することもできる。これは、BASEFONT エレメント(下記を見ること)によって設定されている現在のベースフォントサイズを足すことにより、絶対的フォントサイズに割り当てられる。
color
テキストをなでつける色を設定するのに用いられる。色は、16進数表記のRGBか、BODY エレメントの BGCOLOR アトリビュートで定義されているのと同様の、広く理解されている 色名 として与えられる。

ユーザエージェントの中には、FACE アトリビュートもサポートするものもある。このアトリビュートは、優先順にコンマで区切られたフォント名のリストを受け付けるものである。このアトリビュートは、対応する名前をもつインストール済みフォントを探すために用いられる。FACE はHTML 3.2 の構成部分ではない。

以下は、フォントをそれぞれの絶対的サイズに設定した効果を示している。

size=1 size=2 size=3 size=4 size=5 size=6 size=7

以下は、ベースフォントサイズ 3 を用いて、相対的フォントサイズの効果を示している。

size=-4 size=-3 size=-2 size=-1 size=+1 size=+2 size=+3 size=+4

同じことを、ベースフォント 6 を用いると、こうなる。

size=-4 size=-3 size=-2 size=-1 size=+1 size=+2 size=+3 size=+4

BASEFONT

<!ELEMENT BASEFONT - O EMPTY    -- ベースフォントサイズ(1 から 7) -->
<!ATTLIST BASEFONT
    size    CDATA   #IMPLIED    -- 例.size=4、デフォルトは 3 --
    >

ベースフォントサイズを設定するのに用いられる。BASEFONT は空エレメントであり、終了タグは禁止される。SIZE アトリビュートは、1 から 7 までの範囲の整数値である。ベースフォントサイズは、通常テキストとフォーマット済みテキストには適用されるが、相対指定フォントサイズのある FONT エレメントを使って修正されているところを除いて、見出しには適用されない。

BR

改行を強制するために用いられる。これは空エレメントであり、終了タグは禁止される。CLEAR アトリビュートを使うと、どちらかのマージン上にあるそれ以前の浮動画像を下に動かすことができる。<BR CLEAR=LEFT> は左マージン上にあるそれ以前の浮動画像を下に動かし、<BR CLEAR=RIGHT> は右マージン上にある浮動画像について同じことをし、<BR CLEAR=ALL> は左右両方のマージン上にあるそうした画像について同じことをする。

MAP

MAP エレメントは、クライアントサイズのイメージマップのためのメカニズムを提供する。これは同じ文書内に置くこともできるし、まだ広くサポートされてはいないが分離された文書内でグループ化することもできる。MAP エレメントは、開始タグと終了タグを必要とする。このエレメントは、関連づけられた画像上のホットゾーンを指定し、これらのホットゾーンをURLに結びつける AREA エレメントを1つ以上含む。

<!ENTITY % SHAPE "(rect|circle|poly)">
<!ENTITY % COORDS "CDATA" -- コンマで区切られた数値のリスト -->

<!ELEMENT MAP - - (AREA)+>
<!ATTLIST MAP
    name    CDATA   #REQUIRED
    >

<!ELEMENT AREA - O EMPTY>
<!ATTLIST AREA
    shape   %SHAPE  rect
    coords  %COORDS #IMPLIED  -- 形状を表わす座標を定義する --
    href    %URL    #IMPLIED  -- この地域はハイパーリンクとして活動する --
    nohref (nohref) #IMPLIED  -- この地域にはアクションがない --
    alt     CDATA   #REQUIRED -- 非グラフィカルなユーザエージェントのために必要 --
    >

ここにあるのは、グラフィカルなナビゲーションツールバーの単純な例である。

<img src="navbar.gif" border=0 usemap="#map1">

<map name="map1">
 <area href=guide.html alt="アクセスガイド" shape=rect coords="0,0,118,28">
 <area href=search.html alt="検索" shape=rect coords="184,0,276,28">
 <area href=shortcut.html alt="実行" shape=rect coords="118,0,184,28">
 <area href=top10.html alt="トップ10" shape=rect coords="276,0,373,28">
</map>

MAP エレメントは、名前をマップと関連づけるために用いられる NAME アトリビュートを1つもつ。これは IMG エレメント上の USEMAP アトリビュートにより、URLフラグメント識別子を経由してマップを参照するために用いられる。NAME アトリビュートの値は大文字小文字の区別があることに注意すること。

AREA エレメントは空エレメントであり、終了タグは禁止される。このエレメントは、以下のアトリビュートをとる。SHAPECOORDShrefNOhrefALT. SHAPE アトリビュートと COORDS アトリビュートは、画像上の地域を定義する。SHAPE が省略されれば、SHAPE="RECT" が想定される。

shape=rect coords="left-x, top-y, right-x, bottom-y"

shape=circle coords="center-x, center-y, radius"

shape=poly coords="x1,y1, x2,y2, x3,y3, ..."

xy のところは、関連づけられた画像の左上からピクセル数で測定される。xy の値が接尾語としての百分率記号つきで与えられていれば、値はそれぞれ画像の幅および高さの百分率として解釈されるべきである。例:

   SHAPE=RECT COORDS="0, 0, 50%, 100%"

href アトリビュートは、ハイパーテキストリンクのターゲットを表わすURLを与える。NOhref アトリビュートは、ホットゾーンとして活動しない地域を定義したいときに使われる。これは、ホットゾーンとして活動している下層の地域の中に穴を開けたいときに便利である。

2つ以上の地域が重なりあうならば、マップ定義の中で最初に定義された地域が、後続の地域に優先する。これは、NOhref つきの AREA エレメントは一般的に、href アトリビュートつきのものの前に置くべきことを意味している。

ALT アトリビュートは、マウスやその他のポインティングデバイスがホットゾーンの上に動かされたときにステイタス行に表示でき、または、非グラフィカルユーザエージェントのためのテキストメニューを構築するためのテキストラベルを提供するために使われる