[6] [DFN[[CODE(HTMLe)[dl]] 要素型]]の [Q[dl]]
は、 [Q[definition list]] (定義並び) の略です。
[CODE(HTMLe)[dl]] は、用語 ([CODE(HTMLe)[[[dt]]]])
と説明 ([CODE(HTMLe)[[[dd]]]]) で構成します。

* 仕様書

[REFS[
- [58] '''[CITE@en-US-x-hixie[HTML Standard]] ([TIME[2017-05-25 15:13:14 +09:00]]) <https://html.spec.whatwg.org/#the-dl-element>'''
- [93] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2017-05-25 15:13:14 +09:00]]) <https://html.spec.whatwg.org/#HTMLDListElement-partial>
- [96] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2017-05-25 15:13:14 +09:00]]) <https://html.spec.whatwg.org/#the-div-element>
]REFS]

* 意味

[70] [CODE(HTMLe)@en[dl]] [[要素]]は、
零個[[以上]]の[RUBYB[名前と値の群]@en[name-value group]]で構成される[RUBYB[関連付けリスト]@en[association list]]
([RUBYB[説明リスト]@en[description list]]) を[[表現][要素の意味]]します
[SRC[>>58]]。

[FIG(railroad)[
= *
== [[名前と値の群]]
]FIG]

[71] 
[DFN[名前と値の群]]は、0個[[以上]]の[RUBYB[名前]@en[name]]とそれに続く0個[[以上]]の[RUBYB[値]@en[value]]で構成されます。
[CITE[HTML Standard]] に[[適合]]する[[文書]]では、
必ず1個[[以上]]の名前と1個[[以上]]の値で構成されます。 [SRC[>>58]]

[FIG(railroad)[
= +
== 名前
= +
== 値
]FIG]

[75] 
[[名前と値の群]]は、
[RUBYB[用語]@en[term]]と[RUBYB[定義]@en[definition]]、
[[メタデータ]]の話題と値、
質問と回答、
その他色々な名前と値が組になったデータに使うことができます [SRC[>>58]]。

[91] 
しかし、[[対話]]の[[マーク付け]]には不適切です [SRC[>>58]]。

;; [92] [[名前と値の群]]の名前が互いに排他的であるべき (>>72)
ところ、[[対話]]は同じ人の名前が何度も登場するので、
意味的に異なる構造を持っている、という理由でしょうか。


[73] 
[DFN[[RUBYB[名前]@en[name]]]]は [CODE(HTMLe)@en[dt]] [[要素]]の[[子供]]によって表され、
[DFN[[RUBYB[値]@en[value]]]]は [CODE(HTMLe)@en[dd]] [[要素]]の[[子供]]によって表されます。
[SRC[>>58]]

[74] 
[CODE(HTMLe)@en[dt]] [[要素]]と [CODE(HTMLe)@en[dd]] [[要素]]は、
直接 [CODE(HTMLe)@en[dl]] [[要素]]の[F[子供]]として現れる場合と、
[CODE(HTMLe)@en[dl]] [[要素]]の[F[子供]]に含まれる [CODE(HTMLe)@en[div]]
[[要素]]の[F[子供]]に含まれる場合があります。
[CODE(HTMLe)@en[div]] [[要素]]は、
群全体に対して[[スタイル]]を指定したり、[[大域属性]]や[[マイクロデータ]]のためにまとめたりする目的で使うことができます。
[CODE(HTMLe)@en[dl]] [[要素]]の[[意味]]には影響しません。
[SRC[>>58]]

[80] 
[CODE(HTMLe)@en[dl]] [[要素]][VAR[要素]]が[[表現][要素の意味]]する[[名前と値の群]]を求めるには、
次のようにします [SRC[>>58]]。

[FIG(steps)[
= [81] [VAR[要素リスト]]を、[VAR[要素]]の[F[子供]]の [CODE(HTMLe)@en[dt]] [[要素]]と
[CODE(HTMLe)@en[dd]] [[要素]]と、
[VAR[要素]]の[F[子供]]の [CODE(HTMLe)@en[div]] [[要素]]の[F[子供]]の 
[CODE(HTMLe)@en[dt]] [[要素]]と
[CODE(HTMLe)@en[dd]] [[要素]]をすべて[[木順]]に並べたものとします。
= [83] [VAR[群リスト]]を、[[空リスト]]に設定します。
= [84] [VAR[要素リスト]]が[[空]]でない間、繰り返し、
== [82] [VAR[部分リスト]]を、[VAR[要素リスト]]の先頭から、
0個[[以上]]の [CODE(HTMLe)@en[dt]] [[要素]]の連続の後に
0個[[以上]]の [CODE(HTMLe)@en[dd]] [[要素]]が連続する最大の部分リスト求めた結果に設定します。
== [85] 新しい[[名前と値の群]]を、[VAR[群リスト]]の末尾に追加します。
[FIG(list members)[
: [F[[[名前]]群]] : [VAR[部分リスト]]中の [CODE(HTMLe)@en[dt]] [[要素]]の[[木順]]のリスト
: [F[[[値]]群]] : [VAR[部分リスト]]中の [CODE(HTMLe)@en[dd]] [[要素]]の[[木順]]のリスト
]FIG]
== [86] [VAR[部分リスト]]の[[要素]]を、[VAR[要素リスト]]から削除します。
= [87] [VAR[群リスト]]を返します。
]FIG]

[88] 
[CODE(HTMLe)@en[dt]] [[要素]]と [CODE(HTMLe)@en[dd]] [[要素]]以外の[[内容]]は無視され、
[CODE(HTMLe)@en[dl]] [[要素]]の[[意味][要素の意味]]に寄与しません。

[89] 
[CODE(HTMLe)@en[div]] [[要素]]も [CODE(HTMLe)@en[dl]] [[要素]]の[[意味][要素の意味]]に寄与しません。
[[名前と値の群]]が [CODE(HTMLe)@en[div]] [[要素]]の境界をまたがる可能性もあります。
(ただし、そのような[[文書]]は、 [CITE[HTML Standard]] の[[内容モデル]]に[[適合]]しません。)

-*-*-

[72] 
1つの [CODE(HTMLe)@en[dl]] [[要素]]において、
同じ名前の [CODE(HTMLe)@en[dt]] [[要素]]が複数ある[SHOULD[べきではありません]]
[SRC[>>58]]。

;; [90] 「同じ」の意味は定義されていません。
[CODE(HTMLa)@en[textContent]] なのでしょうか。あるいは
[CODE(HTMLe)@en[img]] [[要素]]なども考慮する必要があるでしょうか。
構文上の制約というよりは[[意味][要素の意味]]に関する規定ということで、
人間が判断するべき事項であるため詳細な規則がないとも思われます。

[76] 
1つの群の中の複数の値は、[RUBYB[代替]@en[alternative]]を表します。
1つの値を複数の[[段落]]で記述したい時は、
1つの [CODE(HTMLe)@en[dd]] [[要素]]の中に全[[段落]]を含めなければ[MUST[なりません]]。
[SRC[>>58]]

[EG[
[77] 例えば 
[PRE(HTML code)[
<dl>
  <dt>月
  <dd>年を12に分割した期間。
  <dd>地球の衛星。
</dl>
]PRE]
... は、「月」の2つの意味を説明しています。一方で、
[PRE(HTML code)[
<dl>
  <dt>地球
  <dd>
    <p>太陽系第3惑星。
    <p>衛星に月がある。
</dl>
]PRE]
... は、「地球」の1つの意味を説明しています。
]EG]

[78] 
リスト内の群の順序や、
群内の名前の順序や値の順序は、
意味を持つかもしれません。 [SRC[>>58]]

[EG[
[79] 例えば[[アルゴリズム]]の説明で値による複数の分岐
([CODE[switch]]) を記述したい時、
「それ以外の場合」のような名前は、
群の順序が失われると意味不明になってしまいます。
]EG]

** 歴史

[7] HTML 4 仕様書は、 [CODE(HTMLe)[dl]] について、次のように説明しています。

> Definition lists, created using the [CODE(HTMLe)[DL]] element, generally consist of a series of term/definition pairs (although definition lists may have other applications).

> [CODE(HTMLe)[dl]] 要素を使って作成する定義並びは、
通常用語・定義の組の系列から成ります
(が、定義並びは他の応用も持つかもしれません)。

その上で、 >>8-9 のような、厳密にいえば定義とは言えないような例を挙げています。

[12]

> Another application of [CODE(HTMLe)[DL]], for example, is for marking up dialogues, with each [CODE(HTMLe)[DT]] naming a speaker, and each [CODE(HTMLe)[DD]] containing his or her words.
[SRC[HTML 4 10.3.1]]

と、会話 (対話) のマークにも使えるとされています。

[13]
このように、仕様は名前と値の組を持つリストへの幅広い応用を認めていますが、
要素型名の通り[Q[定義]]に限って使用するべきであると考える人もいます。

[19] 歴史を遡ると、 1993年1月に [ABBR[Tim] [Tim Berners‐Lee]]
は[Q[論理的・意味的なマーク付けは好きだけど、 HTML は広範囲の意味・データを扱うし、要素型名は覚えやすいようにつけてあるのだ]]
と言って [CODE(HTMLe)[[[dl]]]] も名前にこだわらず使うことができることを示しています。

<http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1993q1.messages/64.html>

[21]
HTML 4 DTD の[[注釈]] (参考)
には
[Q[definition lists - DT for term, DD for its definition]]
と説明があります。
([[名無しさん]] [sage])

[24]
>>19 それより前の1992年に既に HTML 
の仕様書には用語集に限らず名前付きリスト一般に使ってよいことが明記されています (>>16)。
([[名無しさん]] [sage])

[26]
現在の慣行と現在の仕様書の見解と HTML に導入した人の見解が見事に一致してるのに、
なんで [[Strict]] 系原理主義者は[Q[''定義''リスト]]にこだわるのでしょうね?

([[名無しさん]] [WEAK[2005-11-14 13:58:48 +00:00]])

[27]
>>26 [Q[[[Strict]] 系原理主義者]]を [Q[[[Strict]] 系過激派]]に修正でよろしくw

[56] 
その後の [[HTML5]] により、 [CODE(HTMLe)@en[dl]] が定義以外にも用いることができることは、
更に明確化されました。

[57] 
[[HTML5]] 以後に書かれた解説の類の中には、
[[HTML4]] で定義リストだったのが [[HTML5]] でそれ以外にも使えるように変更された、
とするものが少なからずあります。

実際には、本章で示した通り、それまでも定義以外に用いることが認められていました。
そのような解説の類は、 [[HTML4]] やそれ以前の[[仕様書]]を参照せずに思いつきで適当なことを書いているか、
他の解説から[[コピペ]]しているのか、どちらにしても信用に値しません。

* 分類

[59] [CODE(HTMLe)@en[dl]] [[要素]]は、[[フロー内容]]です [SRC[>>58]]。

[60] [CODE(HTMLe)@en[dl]] [[要素]]は、
[F[子供]]に名前と値の群が含まれる場合、
[[触知可能内容]]です [SRC[>>58]]。

* タグ

[66] [[開始タグ]]も[[終了タグ]]も必須であり、省略できません [SRC[>>58]]。

* 属性

[5] [[大域属性]]を使うことができます [SRC[>>58]]。

[FIG(short list)[ [94] [CODE(HTMLe)@en[dl]] [[要素]]の[[廃止]]された[[属性]]
- [CODE(HTMLa)@en[compact]]
]FIG]

* 内容

[63] [CODE(HTMLe)@en[dl]] [[要素]]の[[内容]]は、
0個[[以上]]の名前と値の群です。 [SRC[>>58]]

[64] それとは別に、[[要素]]間に0個[[以上]]の[[スクリプト支援要素]]を含めることができます
[SRC[>>58]]。

[65] 名前と値の群は、

- 1つ[[以上]]の [CODE(HTMLe)@en[dt]] [[要素]]の後に、 1つ[[以上]]の
[CODE(HTMLe)@en[dd]] [[要素]]
- 1つの [CODE(HTMLe)@en[div]] [[要素]]

... のいずれかの方法で表します [SRC[>>58]]。 [CODE(HTMLe)@en[div]]
[[要素]]を使う場合、その[[子供]]が [CODE(HTMLe)@en[dt]] [[要素]]や
[CODE(HTMLe)@en[dd]] [[要素]]となります。
1つの [CODE(HTMLe)@en[dl]] [[要素]]では、
[CODE(HTMLe)@en[dt]] [[要素]]と [CODE(HTMLe)@en[dd]] [[要素]]を使う方法と、
[CODE(HTMLe)@en[div]] [[要素]]を使う方法との'''どちらか一方'''に統一しなければなりません
[SRC[>>58]]。

[FIG(railroad)[
=?
== |
=== +
==== [CODE(HTMLe)@en[div]]
=== +
==== +
===== [CODE(HTMLe)@en[dt]]
==== +
===== [CODE(HTMLe)@en[dd]]
]FIG]

** 歴史


*** HTML 2.0 の [CODE(HTMLe)@en[dl]] 内容モデル

[31]
1992年6月6日の [[Dan Connolly]] の [[DTD]] 案では、
[CODE(HTMLe)@en[[[dl]]]] の[[内容モデル]]は
'''[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]], [CODE(HTMLe)@en[[[dd]]]])+]]'''
と定義されていました。

[32] 
1992年12月3日の [[Dan Connolly]] の [[DTD]] 案では、
[CODE(HTMLe)@en[[[dt]]]] と [CODE(HTMLe)@en[[[dd]]]]
[WEAK[(と [CODE(HTMLe)@en[[[li]]]])]] が[[強制空要素]]に変更され、
[CODE(HTMLe)@en[[[dl]]]] の[[内容モデル]]は
'''[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]] | [CODE(HTMLe)@en[[[dd]]]] | [CODE(HTMLe)@en[[[a]]]] | [CODE(HTMLe)@en[[[p]]]] | #[CODE(SGML)@en[[[PCDATA]]]])*]]'''
とされました。更に、[[注釈宣言]]として
[Q@en[Content should match ((DT,(A|#PCDATA)+)+,(DD,(A|#PCDATA)+)) But mixed content is messy.]]
とのメモがありました。

[43]
1993年1月14日に [[Dan Connolly]] は、
[CODE(HTMLe)@en[[[dl]]]] で [CODE(HTMLe)@en[[[p]]]]
を認めるべきかの問題に関し、1つの [CODE(HTMLe)@enn[[[dt]]]]
に対して [CODE(HTMLe)@en[[[dd]]]]
を複数書けるようにしたらよいのではと述べています。

;; [CITE[EMail Msg <9301142323.AA26924@pixel.convex.com>]] 
<http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1993q1.messages/66.html>

[33]
>>32 の定義は [WEAK[(細かい表現は変わりながらも)]]
長く変更されずにいましたが、1994年4月9日の案では、
[CODE(HTMLe)@en[[[dt]]]] と [CODE(HTMLe)@en[[[dd]]]]
[WEAK[(と [CODE(HTMLe)@en[[[li]]]])]]
の[[終了タグ]]が復活し、
[CODE(HTMLe)@en[[[dl]]]] の[[内容モデル]]は
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]]*, [CODE(HTMLe)@en[[[dd]]]]?)+]]
に変わりました。

;; この[[内容モデル]]は[[曖昧]] ([[非決定的]]) でまずい。

[44]
1994年6月の [[HTML]] 仕様案では、
- [CODE(HTMLe)@en[[[dt]]]] ''[[要素]]''や
[CODE(HTMLe)@en[[[dd]]]] ''[[要素]]''が[Q[用語]]や[Q[定義]]を先導すること、
- [CODE(HTMLe)@en[[[dt]]]] と [CODE(HTMLe)@en[[[dd]]]]
は組で使うこと、
- [CODE(HTMLe)@en[[[dd]]]] が後にこない [CODE(HTMLe)@en[[[dt]]]]
も認められる (その場合続く[Q[定義]]が[[空]]の [CODE(HTMLe)@en[[[dd]]]]
と等価)
こと、

が規定されていました。

;; [CITE[EMail Msg <9406101615.AA07825@ulua.hal.com>]] 
<http://ksi.cpsc.ucalgary.ca/archives/HTML-WG/html-archive.messages/9.html>
より孫引き

[34] 1994年11月15日の [[HTML 2.0]] [[DTD]] 案では、
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dl]]]] | [CODE(HTMLe)@en[[[dd]]]])+]]
という簡単な定義に変わりました。

[[HTML 2.0]] 最終版 ([[RFC 1866]])
は最終的にこの[[内容モデル]]を採用しています。


[49]
[[RFC 1866]] には
>Multiple <DT> may be paired with a
single <DD> element. Documents should not contain multiple
consecutive <DD> elements.

とあります。

*** HTML 3.0 の [CODE(HTMLe)@en[dl]] 内容モデル

[39] 1993年7月13日版 [[HTML+]] [[DTD]] 案では、
[CODE(HTMLe)@en[[[dl]]]] の[[内容モデル]]は、
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]], [CODE(HTMLe)@en[[[dd]]]])+]]
とされていました。

[40] 1993年11月8日版 [[HTML+]] [[DTD]] 案では、
[CODE(HTMLe)@en[[[dl]]]] の[[内容モデル]]は、
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]]'''+''', [CODE(HTMLe)@en[[[dd]]]])+]]
とされていました。

[41] 1994年1月5日版 [[HTML+]] [[DTD]] 案では、
[CODE(HTMLe)@en[[[dl]]]] の[[内容モデル]]は、
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]]'''*''', [CODE(HTMLe)@en[[[dd]]]])+]]
とされていました。

;; この[[内容モデル]]は[[曖昧]] ([[非決定的]]) なのでよくない。

[42] 1994年4月5日版 [[HTML+]] [[DTD]] 案では、
[CODE(HTMLe)@en[[[dl]]]] の[[内容モデル]]は、
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]]'''+''', [CODE(HTMLe)@en[[[dd]]]])+]]
に戻されています。
[35] 1995年3月1日版、24日版の [[HTML 3.0]] [[DTD]] 案では、
[CODE(HTMLe)@en[[[dl]]]] の[[内容モデル]]は
[CODE(SGML)@en[[CODE(HTMLe)@en[[[lh]]]]?, ([CODE(HTMLe)@en[[[dt]]]] | [CODE(HTMLe)@en[[[dd]]]])+)]]
で、 [Q@en[this is perhaps too lax?]] という[[注釈]]が付されていました。

*** HTML 3.2 の [CODE(HTMLe)@en[dl]] 内容モデル

[36] 1996年5月6日版の [[HTML 3.2]] [[DTD]] 案では、
[CODE(HTMLe)@en[[[dl]]]] の[[内容モデル]]は、
[[HTML 2.0]] (>>34) より更に緩められ、
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]] | [CODE(HTMLe)@en[[[dd]]]])'''*''']]
とされています。

[37] しかし、1996年9月18日版の [[HTML 3.2]] [[DTD}]]]
案では、再度 [[HTML 2.0]] (>>34) と同じ
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]] | [CODE(HTMLe)@en[[[dd]]]])'''+''']]
に戻されています。

結局 [[HTML 3.2]] [[勧告]]は [[HTML 2.0]] と同じ、
この[[内容モデル]]を採用しています。

*** HTML 4 の [CODE(HTMLe)@en[dl]] 内容モデル

[38] 1996年7月10日版に [[HTML 4.0]] [[DTD]]
案では、当時の [[HTML 3.2]] [[DTD]] 案同様、
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]] | [CODE(HTMLe)@en[[[dd]]]])'''*''']]
が[[内容モデル]]とされていました。
9月3日版まではこの[[内容モデル]]ですが、
1997年7月8日版までには [[HTML 3.2]] [[勧告]]と同じ、
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]] | [CODE(HTMLe)@en[[[dd]]]])'''+''']]
に変更されています。

結局 [[HTML 4]] [[勧告]]は[[厳密DTD]]も[[移行用DTD]]も、
[[HTML 2.0]] や [[HTML 3.2]] と同じ[[内容モデル]]
[CODE(SGML)@en[([CODE(HTMLe)@en[[[dt]]]] | [CODE(HTMLe)@en[[[dd]]]])'''+''']]
を採用しました。[[XHTML 1]] もこれを受け継いでいます。


* 文脈

[61] 
[CODE(HTMLe)@en[dl]] [[要素]]は、[[フロー内容]]が期待される場所で使えます
[SRC[>>58]]。


* レンダリング

[11] HTML 4 仕様書は、レンダリングは UA 依存としています。

ただし、 >>10 のようなレンダリング例を挙げています。
多くの視覚的 UA は ([CODE(HTMLa)[[[compact]]]] 属性がなければ) 
実際そのようにレンダリングします。

[CODE(HTMLa)[compact]] 属性に対応した UA は、
[CODE(HTMLe)[dt]] と [CODE(HTMLe)[dd]]
がそれぞれ別の行のこまとなる表のように表示するのが普通です。
([SAMP(CSS)[[[display]]: [[run-in]]]] と言った方が正確か。
もっとも、 HTML 4 は [CODE(HTMLa)[compact]] 属性の具体的効果にも言及してはいませんが、このように表現されるのが本来の [CODE(HTMLa)[compact]]
属性の意図です。)

[23]
[CITE[DLをTableに見せる]] <http://useyan.x0.com/s/html/css_sample/dl-table.html>

* [CODE(DOMi)@en[HTMLDListElement]] インターフェイス

[67] [CODE(HTMLe)@en[dl]] [[要素]]の[[要素インターフェイス]]は、
[CODE(DOMi)@en[HTMLDListElement]] [[インターフェイス]]です [SRC[>>58]]。

[68] [DFN[[CODE(DOMi)@en[HTMLDListElement]]]]
[[インターフェイス]]は、
[CODE(DOMi)@en[HTMLElement]] [[インターフェイス]]を[[継承]]しています
[SRC[>>58]]。

[69] [CODE(DOMi)@en[HTMLDListElement]] [[インターフェイス]]は、
[CODE(xattr IDL)@en[HTMLConstruct]] を持ちます [SRC[>>58]]。

[FIG(short list)[ [95] [CODE(DOMi)@en[HTMLDListElement]] [[インターフェイス]]の[[メンバー][インターフェイスメンバー]]
- [CODE(DOMa)@en[compact]]
]FIG]


* HTML もどき

[99] [[DTBook]] にもありました。

- [100] 
[CITE@en-US[DAISY ANSI/NISO Z39.86-2002 - The DAISY Consortium]], [TIME[2023-11-26T05:17:33.000Z]] <https://daisy.org/info-help/document-archive/archived-projects/daisy-ansi-niso-z39-86-2002-archived/>


* 歴史


** [CODE(HTMLe)@en[dl]] の誕生と意味

[15] [CODE(HTMLe)[dl]] 要素型に関する[DEL[現時点で最]]古の記録は、
[[TimBL]] の記事 [CITE[Re: status. Re: X11 BROWSER for WWW]]
<http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1991.messages/3.html>
です。この記事によれば、遅くても1991年10月までには [CODE(HTMLe)[dl]]
(と [CODE(HTMLe)[dt]] と [CODE(HTMLe)[dd]]) が HTML
仕様に入ったことになります。

[101] [DEL[これ以前の記録が見つかっていないことから、]]どのような経緯で具体的にいつ
HTML 仕様に取り入れられたのかは不明ですが、 SGML で一般によく使われる要素型名ですから、
他の SGML 語彙を参考にしたことは間違いありません。

[102] これ以前については [[HTML 1991]] を参照。

[16] >>15 の記事では [Q[glossary]] としか説明がありませんが、
HTML 仕様はより詳しく説明しています。完全に残っている最古の仕様書である
1992年1月の版 ([CITE[EMail Msg <9201091134.AA08666@ nxoc01.cern.ch >]] 
<http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/0.html>) では、

> A glosary (or definition list) is a list of paragraphs each of which has a
short title alongside it.  Apart from glossaries, this format is useful for
presenting a set of named elements to the reader.

としています。このように、当初から、
単なる[Q[定義]]にとどまらない名前つきリストとして捉えられていたことがわかります。

[17] そのずっと後になりますが、 [[HTML+]] の議論文書
([CITE[Definition Lists]] <http://www.w3.org/MarkUp/HTMLPlus/htmlplus_34.html>)
は大変過激で、説明の大部分を[WEAK[わけのわからない]]会話例に費やしています。
(読んだ人は対話のマーク付けのための語彙と勘違いしてしまいそうです。)

[18] 一方で、 [[HTML 2.0]] (や [[HTML 3.0]]) は

> A definition list is a list of terms and corresponding definitions.

と、本来の語義に沿った説明をしています [SRC[RFC 1866 5.6.5.]]。
[[HTML 3.2]] は更に説明が簡単になって、直接的には
[Q[definition list]<http://www.w3.org/TR/REC-html32>] としか述べていません
(あとは [CODE(HTMLe)[dt]] と [CODE(HTMLe)[dd]] の説明)。
これが [[HTML 4]] になって、 >>7-12 のように (HTML 的な)
元の解釈に歩み寄ったというわけです。


[14]
仕様書: 
- [[HTML 2.0]]
-- [[RFC 1866]] <urn:ietf:rfc:1866> [CITE[5.6.5. Definition List: DL, DT, DD]]
- [[HTML 3]]
-- HTML 3.0 I-D [CITE[Definition Lists]]
<http://www.w3.org/MarkUp/html3/deflists.html>
- [[HTML 3.2]]
-- [CITE[Block elements]] <http://www.w3.org/TR/REC-html32#block>
-- [CITE[Definition Lists]] <http://www.w3.org/TR/REC-html32#dl>

** HTML4

[62] [[HTML 4]] では、 [CODE[%list;]] が認められる場所で使えるとされていました。

[REFS[
- <IW:HTML4:"struct/lists.html#h-10.1">
- <IW:HTML4:"struct/lists.html#edef-DL">
- <IW:HTML4:"struct/lists.html#idx-list-5">
]REFS]

** 例

[10]
[PRE(HTML)[
<DL>
  <DT>Dweeb
  <DD>young excitable person who may mature
    into a <EM>Nerd</EM> or <EM>Geek</EM>
  <DT>Hacker
  <DD>a clever programmer
  <DT>Nerd
  <DD>technically bright but socially inept person
</DL>
]PRE]

(HTML 4 仕様書から)

レンダリング例:
[PRE[
Dweeb
       young excitable person who may mature into a Nerd or Geek
Hacker
       a clever programmer
Nerd
       technically bright but socially inept person
]PRE]

[8] 厳密には定義とは言えない例:
[PRE(HTML)[
<DL>
<DT><STRONG>Lower cost</STRONG>
<DD>The new version of this product costs significantly less than the
previous one!
<DT><STRONG>Easier to use</STRONG>
<DD>We've changed the product so that it's much easier to use!
<DT><STRONG>Safe for kids</STRONG>
<DD>You can leave your kids alone in a room with this product and
they won't get hurt (not a guarantee).
</DL>
]PRE]

(HTML 4 仕様書より)

[9] 他の並びと組合せた例:
[PRE(HTML)[
<dl>
<dt><strong>The ingredients:</strong></dt>
<dd>
<ul>
<li>100 g. flour</li>
<li>10 g. sugar</li>
<li>1 cup water</li>
<li>2 eggs</li>
<li>salt, pepper</li>
</ul>
</dd>
<dt><strong>The procedure:</strong></dt>
<dd>
<ol>
<li>Mix dry ingredients thoroughly.</li>
<li>Pour in wet ingredients.</li>
<li>Mix for 10 minutes.</li>
<li>Bake for one hour at 300 degrees.</li>
</ol>
</dd>
<dt><strong>Notes:</strong></dt>
<dd>The recipe may be improved by adding raisins.</dd>
</dl>
]PRE]

[20] 仕様書での用語定義の例
[PRE(HTML example)[
<[CODE(HTMLe)[dl]] [CODE(HTMLa)[class]]="termlist">
<[CODE(HTMLe)[dt]] [CODE(HTMLa)[id]]="term-XHTML">XHTML</[CODE(HTMLe)[dt]]>
<[CODE(HTMLe)[dd]]>The Extensible HyperText Markup Language.	
XHTML is <[CODE(HTMLe)[em]]>not</[CODE(HTMLe)[em]]> the name of a single, monolithic markup language,
but the name of a family of document types which collectively form
this markup language.  The namespace URI for XHTML is
<[CODE(HTMLe)[code]] [CODE(HTMLa)[class]]="URI">http://www.w3.org/1999/xhtml</[CODE(HTMLe)[code]]>.</[CODE(HTMLe)[dd]]>
<[CODE(HTMLe)[dd]] [CODE(HTMLa)[class]]="note"><[CODE(HTMLe)[strong]]>Note:</[CODE(HTMLe)[strong]]> Future version of XHTML might use
different namespace.</[CODE(HTMLe)[dd]]>
[INS[(略)]]
<[CODE(HTMLe)[dt]] [CODE(HTMLa)[id]]="term-XHTML_Integration_Set_document_type">XHTML Integration Set
document type</[CODE(HTMLe)[dt]]>
<dd>A document type which conforms to the
"XHTML Integration Set Document Type Conformance" as defined in
section 3.2 of [<[CODE(HTMLe)[a]] [CODE(HTMLa)[href]]="#ref-xhtml-m12n">XHTMLM12N</[CODE(HTMLe)[a]]>].</[CODE(HTMLe)[dd]]>
</[CODE(HTMLe)[dl]]>
]PRE]

出典: [CITE[XHTML Media Types]] 
<http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801/#terms>

[22] [CODE(HTMLe)[dt]] のない例

[PRE(HTML deprecated example code)[
<h2><a id="PER" name="PER">Proposed Edited Recommendations</a></h2>
<p>A Proposed Edited Recommendation is a technical report that W3C
has published for community review of important changes, some of which
may affect conformance. When there is consensus about the edits, the
document is published as a Recommendation.</p>
<dl>
<dd>There are currently no document at Proposed Edited Recommendation Status.</dd>
</dl>
]PRE]

出典: [CITE[W3C Technical Reports and Publications]] 
<http://www.w3.org/TR/#PER> (2005年4月現在)

[25]
>>22 の頁では該当する状態の文書がある時はその名前を [CODE(HTMLe)@en[[[dt]]]],
著者名その他の情報を [CODE(HTMLe)@en[[[dd]]]] に入れており、
それとの整合性 (?) から該当する文書がないときに >>22 のようにマークしていると思われます。
([[名無しさん]] [sage])

[28]
'''同じ[CODE(HTMLe)@en[dt]]'''

1つの[CODE(HTMLe)@en[[[dl]]]]の中の複数の[CODE(HTMLe)@en[[[dt]]]]が等しいこともあり得ます。

[PRE(HTML example code)[
<dl>
<dt><dfn xml:lang="en">left</dfn></dt>
    <dd>左</dd>
    <dd>左翼・左派・革新派</dd>
<dt><dfn xml:lang="en">left</dfn></dt>
    <dd><q xml:lang="en">leave</q>の過去形・過去分詞形</dd>
</dl>
]PRE]

**

[29]
[CITE[XHTML+CSS (r)evolution [42] ]] <http://www.cybergarden.net/revolution/20060706/#[42]>

- [1] ''Strict-HTML スレッド ver.9'' <http://pc2.2ch.net/test/read.cgi/hp/1039974316/643-> [CODE(HTML)[dl]] 要素の使い方って [[FAQ]] だよなぁ。
- [2] >>1 そういえば Strict HTML FAQs ってないのかなぁ。結構な量あるとおもうんだけどな
- [3] [CODE(HTML)[dl]] 要素は、特別の場合には [CODE(HTML)[[[table]]]] 要素と交換可能です。
- [4] ''www-html@w3.org from July 1997: Definition lists'' <http://lists.w3.org/Archives/Public/www-html/1997Jul/0451.html>: [[HTML 4]] 制定に当たって、 [CODE(HTML)[DL]] 要素の[[内容モデル]]に疑問を投げかけてみるテスト 

[30]
[[GMLguide]] の [CODE(SGMLe)@en[[[dl]]]] は定義リストと説明されていて、別に
[CODE(SGMLe)@en[[[gl]]]] (用語リスト) があったりしたようです。
([[名無しさん]])

[45]
[CITE[html lecturte]] ([CODE[2003-10-18 17:55:15 +09:00]] 版) <http://www.padrac.ne.jp/~sugimoto/JIN/html/html.html#3-5-2>

1995年12月にかかれたものらしい。

> <dl>(defined list)

([[名無しさん]])

[46]
>>45 には

> <em>強調(emphasized)</em>

なんてのもでてきます。
([[名無しさん]])

[47]
>>45-46

それでいて

> <pre>プレフォーマット(preformat)</pre>

だから謎だ。
([[名無しさん]])

[48]
[CITE[我的春秋: 定義リストの違和感(続)]] ([CODE[2007-06-02 23:02:41 +09:00]] 版) <http://my-chunqiu.cocolog-nifty.com/blog/2007/05/post_82b8.html>
([[名無しさん]] [WEAK[2007-06-02 14:06:37 +00:00]])

** HTML5

[103] 
[CITE@en-GB-hixie[Web Applications 1.0]], [TIME[2024-09-01T08:38:47.000Z]], [TIME[2004-12-10T05:56:30.623Z]] <https://web.archive.org/web/20041210054847/http://www.whatwg.org/specs/web-apps/current-work/#dl0>


[FIG(data)[ [104] [[HTML要素概説]]

:[F[要素名]]:[CODE[dl]]
:[F[要素名]]:[CODE[dt]]
:[F[要素名]]:[CODE[dd]]
:日付:[TIME[2004-09-23]]
:説明:
[TIME[2004-09-23]]版時点の
[CITE@en-GB-hixie[Web Applications 1.0]]
に、
[CODE[dl]],
[CODE[dt]],
[CODE[dd]]
の用法の明確化の規定が含まれている。
:出典:
[REFS[

-
[CITE@en-GB-hixie[Web Applications 1.0]], 
[DATA(.author)[[[WHATWG]]]],
[[Ian Hickson]],
[DATA(.status)[[[Working Draft]]]],
[TIME(.published)[8 December 2004][2004-12-08]],
[TIME[2024-09-01T08:36:36.000Z]], [TIME[2004-12-10T05:54:20.058Z]] <https://web.archive.org/web/20041210054847/http://www.whatwg.org/specs/web-apps/current-work/>

]REFS]

]FIG]





[50] [CITE[IRC logs: freenode / #whatwg / 20090909]]
([TIME[2009-10-18 18:18:41 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090909#l-341>

[51] [CITE[WWW-Talk Apr-Jun 1993: Description Lists]]
( ([TIME[2013-03-05 12:51:02 +09:00]] 版))
<http://1997.webhistory.org/www.lists/www-talk.1993q2/0208.html>

[52] [CITE[IRC logs: freenode / #whatwg / 20130817]]
( ([TIME[2013-08-18 18:51:22 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20130817>

[53] [CITE[ncsa-mosaic/CHANGES at master · alandipert/ncsa-mosaic]]
( ([TIME[2014-04-07 05:39:43 +09:00]] 版))
<https://github.com/alandipert/ncsa-mosaic/blob/master/CHANGES#L1025>

[54] [CITE@en[Web Applications 1.0 r8695        Catch up with recent changes that were made while the pipeline was down. Sorry for jamming all these changes into one patch.]]
( ([TIME[2014-08-02 01:30:00 +09:00]] 版))
<http://html5.org/r/8695>

[55] [CITE@en[Allow <div> around each <dt><dd> group in <dl> (#1945)]]
([[zcorpan]]著, [TIME[2016-10-31 17:25:43 +09:00]])
<https://github.com/whatwg/html/commit/5454d702e0262749aba55576dda32c48e0e498f0>

[97] [CITE@en[updates to dl and dt]]
([[@jnurthen]]著, [TIME[2018-07-01 16:36:28 +09:00]])
<https://github.com/w3c/html-aria/commit/bdc9341a86a4b7e22db86e38888c530517f09b73>

[98] [CITE@en[DL should not have default mapping of list · Issue #113 · w3c/html-aria]]
([TIME[2018-07-02 12:58:00 +09:00]])
<https://github.com/w3c/html-aria/issues/113>