[6] dl
要素型の dl
は、 definition list
(定義並び) の略です。
dl
は、用語 (dt
)
と説明 (dd
) で構成します。
[70] dl
要素は、
零個以上の名前と値の群で構成される関連付けリスト
(説明リスト) を表現します
>>58。
[71] 名前と値の群は、0個以上の名前とそれに続く0個以上の値で構成されます。 HTML Standard に適合する文書では、 必ず1個以上の名前と1個以上の値で構成されます。 >>58
[75] 名前と値の群は、 用語と定義、 メタデータの話題と値、 質問と回答、 その他色々な名前と値が組になったデータに使うことができます >>58。
[91] しかし、対話のマーク付けには不適切です >>58。
[73]
名前は dt
要素の子供によって表され、
値は dd
要素の子供によって表されます。
>>58
[74]
dt
要素と dd
要素は、
直接 dl
要素の子供として現れる場合と、
dl
要素の子供に含まれる div
要素の子供に含まれる場合があります。
div
要素は、
群全体に対してスタイルを指定したり、大域属性やマイクロデータのためにまとめたりする目的で使うことができます。
dl
要素の意味には影響しません。
>>58
[80]
dl
要素要素が表現する名前と値の群を求めるには、
次のようにします >>58。
[88]
dt
要素と dd
要素以外の内容は無視され、
dl
要素の意味に寄与しません。
[89]
div
要素も dl
要素の意味に寄与しません。
名前と値の群が div
要素の境界をまたがる可能性もあります。
(ただし、そのような文書は、 HTML Standard の内容モデルに適合しません。)
[72]
1つの dl
要素において、
同じ名前の dt
要素が複数あるべきではありません
>>58。
textContent
なのでしょうか。あるいは
img
要素なども考慮する必要があるでしょうか。
構文上の制約というよりは意味に関する規定ということで、
人間が判断するべき事項であるため詳細な規則がないとも思われます。[76]
1つの群の中の複数の値は、代替を表します。
1つの値を複数の段落で記述したい時は、
1つの dd
要素の中に全段落を含めなければなりません。
>>58
[77] 例えば
<dl> <dt>月 <dd>年を12に分割した期間。 <dd>地球の衛星。 </dl>... は、「月」の2つの意味を説明しています。一方で、
<dl> <dt>地球 <dd> <p>太陽系第3惑星。 <p>衛星に月がある。 </dl>... は、「地球」の1つの意味を説明しています。
[78] リスト内の群の順序や、 群内の名前の順序や値の順序は、 意味を持つかもしれません。 >>58
[7] HTML 4 仕様書は、 dl
について、次のように説明しています。
Definition lists, created using the
DL
element, generally consist of a series of term/definition pairs (although definition lists may have other applications).
dl
要素を使って作成する定義並びは、 通常用語・定義の組の系列から成ります (が、定義並びは他の応用も持つかもしれません)。
その上で、 >>8-9 のような、厳密にいえば定義とは言えないような例を挙げています。
Another application of
DL
, for example, is for marking up dialogues, with eachDT
naming a speaker, and eachDD
containing his or her words. HTML 4 10.3.1
と、会話 (対話) のマークにも使えるとされています。
[13]
このように、仕様は名前と値の組を持つリストへの幅広い応用を認めていますが、
要素型名の通り定義
に限って使用するべきであると考える人もいます。
[19] 歴史を遡ると、 1993年1月に Tim
は論理的・意味的なマーク付けは好きだけど、 HTML は広範囲の意味・データを扱うし、要素型名は覚えやすいようにつけてあるのだ
と言って dl
も名前にこだわらず使うことができることを示しています。
http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1993q1.messages/64.html
[21]
HTML 4 DTD の注釈 (参考)
には
definition lists - DT for term, DD for its definition
と説明があります。
(名無しさん [sage])
[24] >>19 それより前の1992年に既に HTML の仕様書には用語集に限らず名前付きリスト一般に使ってよいことが明記されています (>>16)。 (名無しさん [sage])
[26]
現在の慣行と現在の仕様書の見解と HTML に導入した人の見解が見事に一致してるのに、
なんで Strict 系原理主義者は定義リスト
にこだわるのでしょうね?
(名無しさん 2005-11-14 13:58:48 +00:00)
[27]
>>26 Strict 系原理主義者
を Strict 系過激派
に修正でよろしくw
[56]
その後の HTML5 により、 dl
が定義以外にも用いることができることは、
更に明確化されました。
[57] HTML5 以後に書かれた解説の類の中には、 HTML4 で定義リストだったのが HTML5 でそれ以外にも使えるように変更された、 とするものが少なからずあります。
実際には、本章で示した通り、それまでも定義以外に用いることが認められていました。 そのような解説の類は、 HTML4 やそれ以前の仕様書を参照せずに思いつきで適当なことを書いているか、 他の解説からコピペしているのか、どちらにしても信用に値しません。
dl
要素の廃止された属性[63] dl
要素の内容は、
0個以上の名前と値の群です。 >>58
[64] それとは別に、要素間に0個以上のスクリプト支援要素を含めることができます >>58。
[65] 名前と値の群は、
... のいずれかの方法で表します >>58。 div
要素を使う場合、その子供が dt
要素や
dd
要素となります。
1つの dl
要素では、
dt
要素と dd
要素を使う方法と、
div
要素を使う方法とのどちらか一方に統一しなければなりません
>>58。
dl
内容モデル[31]
1992年6月6日の Dan Connolly の DTD 案では、
dl
の内容モデルは
(
と定義されていました。dt
, dd
)+
[32]
1992年12月3日の Dan Connolly の DTD 案では、
dt
と dd
(と li
) が強制空要素に変更され、
dl
の内容モデルは
(
とされました。更に、注釈宣言として
dt
| dd
| a
| p
| #PCDATA
)*Content should match ((DT,(A|#PCDATA)+)+,(DD,(A|#PCDATA)+)) But mixed content is messy.
とのメモがありました。
[43]
1993年1月14日に Dan Connolly は、
dl
で p
を認めるべきかの問題に関し、1つの dt
に対して dd
を複数書けるようにしたらよいのではと述べています。
[33]
>>32 の定義は (細かい表現は変わりながらも)
長く変更されずにいましたが、1994年4月9日の案では、
dt
と dd
(と li
)
の終了タグが復活し、
dl
の内容モデルは
(
に変わりました。dt
*, dd
?)+
が規定されていました。
[34] 1994年11月15日の HTML 2.0 DTD 案では、
(
という簡単な定義に変わりました。dl
| dd
)+
HTML 2.0 最終版 (RFC 1866) は最終的にこの内容モデルを採用しています。
Multiple <DT> may be paired with a single <DD> element. Documents should not contain multiple consecutive <DD> elements.
とあります。
dl
内容モデル[39] 1993年7月13日版 HTML+ DTD 案では、
dl
の内容モデルは、
(
とされていました。dt
, dd
)+
[40] 1993年11月8日版 HTML+ DTD 案では、
dl
の内容モデルは、
(
とされていました。dt
+, dd
)+
[41] 1994年1月5日版 HTML+ DTD 案では、
dl
の内容モデルは、
(
とされていました。dt
*, dd
)+
[42] 1994年4月5日版 HTML+ DTD 案では、
dl
の内容モデルは、
(
に戻されています。
[35] 1995年3月1日版、24日版の HTML 3.0 DTD 案では、
dt
+, dd
)+dl
の内容モデルは
で、 lh
?, (dt
| dd
)+)this is perhaps too lax?
という注釈が付されていました。
dl
内容モデル[36] 1996年5月6日版の HTML 3.2 DTD 案では、
dl
の内容モデルは、
HTML 2.0 (>>34) より更に緩められ、
(
とされています。dt
| dd
)*
[37] しかし、1996年9月18日版の HTML 3.2 DTD}]
案では、再度 HTML 2.0 (>>34) と同じ
(
に戻されています。dt
| dd
)+
dl
内容モデル[38] 1996年7月10日版に HTML 4.0 DTD
案では、当時の HTML 3.2 DTD 案同様、
(
が内容モデルとされていました。
9月3日版まではこの内容モデルですが、
1997年7月8日版までには HTML 3.2 勧告と同じ、
dt
| dd
)*(
に変更されています。dt
| dd
)+
結局 HTML 4 勧告は厳密DTDも移行用DTDも、
HTML 2.0 や HTML 3.2 と同じ内容モデル
(
を採用しました。XHTML 1 もこれを受け継いでいます。dt
| dd
)+
[11] HTML 4 仕様書は、レンダリングは UA 依存としています。
ただし、 >>10 のようなレンダリング例を挙げています。
多くの視覚的 UA は (compact
属性がなければ)
実際そのようにレンダリングします。
compact
属性に対応した UA は、
dt
と dd
がそれぞれ別の行のこまとなる表のように表示するのが普通です。
(display: run-in と言った方が正確か。
もっとも、 HTML 4 は compact
属性の具体的効果にも言及してはいませんが、このように表現されるのが本来の compact
属性の意図です。)
[23] DLをTableに見せる http://useyan.x0.com/s/html/css_sample/dl-table.html
HTMLDListElement
インターフェイス[67] dl
要素の要素インターフェイスは、
HTMLDListElement
インターフェイスです >>58。
[68] HTMLDListElement
インターフェイスは、
HTMLElement
インターフェイスを継承しています
>>58。
[69] HTMLDListElement
インターフェイスは、
HTMLConstruct
を持ちます >>58。
HTMLDListElement
インターフェイスのメンバーdl
の誕生と意味[15] dl
要素型に関する現時点で最古の記録は、
TimBL の記事 Re: status. Re: X11 BROWSER for WWW
http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1991.messages/3.html
です。この記事によれば、遅くても1991年10月までには dl
(と dt
と dd
) が HTML
仕様に入ったことになります。
[101] これ以前の記録が見つかっていないことから、どのような経緯で具体的にいつ
HTML 仕様に取り入れられたのかは不明ですが、 SGML で一般によく使われる要素型名ですから、
他の SGML 語彙を参考にしたことは間違いありません。
[102] これ以前については HTML 1991 を参照。
[16] >>15 の記事では glossary
としか説明がありませんが、
HTML 仕様はより詳しく説明しています。完全に残っている最古の仕様書である
1992年1月の版 (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.
としています。このように、当初から、
単なる定義
にとどまらない名前つきリストとして捉えられていたことがわかります。
[17] そのずっと後になりますが、 HTML+ の議論文書 (Definition Lists http://www.w3.org/MarkUp/HTMLPlus/htmlplus_34.html) は大変過激で、説明の大部分をわけのわからない会話例に費やしています。 (読んだ人は対話のマーク付けのための語彙と勘違いしてしまいそうです。)
[18] 一方で、 HTML 2.0 (や HTML 3.0) は
A definition list is a list of terms and corresponding definitions.
と、本来の語義に沿った説明をしています RFC 1866 5.6.5.。
HTML 3.2 は更に説明が簡単になって、直接的には
definition list
としか述べていません
(あとは dt
と dd
の説明)。
これが HTML 4 になって、 >>7-12 のように (HTML 的な)
元の解釈に歩み寄ったというわけです。
[14] 仕様書:
<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>
(HTML 4 仕様書から)
レンダリング例:
Dweeb young excitable person who may mature into a Nerd or Geek Hacker a clever programmer Nerd technically bright but socially inept person
[8] 厳密には定義とは言えない例:
<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>
(HTML 4 仕様書より)
[9] 他の並びと組合せた例:
<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>
[20] 仕様書での用語定義の例
<dl
class
="termlist"> <dt
id
="term-XHTML">XHTML</dt
> <dd
>The Extensible HyperText Markup Language. XHTML is <em
>not</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
class
="URI">http://www.w3.org/1999/xhtml</code
>.</dd
> <dd
class
="note"><strong
>Note:</strong
> Future version of XHTML might use different namespace.</dd
> (略) <dt
id
="term-XHTML_Integration_Set_document_type">XHTML Integration Set document type</dt
> <dd>A document type which conforms to the "XHTML Integration Set Document Type Conformance" as defined in section 3.2 of [<a
href
="#ref-xhtml-m12n">XHTMLM12N</a
>].</dd
> </dl
>
出典: XHTML Media Types http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801/#terms
<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>
出典: W3C Technical Reports and Publications http://www.w3.org/TR/#PER (2005年4月現在)
[25]
>>22 の頁では該当する状態の文書がある時はその名前を dt
,
著者名その他の情報を dd
に入れており、
それとの整合性 (?) から該当する文書がないときに >>22 のようにマークしていると思われます。
(名無しさん [sage])
<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>
[29] XHTML+CSS (r)evolution [42] http://www.cybergarden.net/revolution/20060706/#[42]
dl
要素の使い方って FAQ だよなぁ。dl
要素は、特別の場合には table
要素と交換可能です。DL
要素の内容モデルに疑問を投げかけてみるテスト [30]
GMLguide の dl
は定義リストと説明されていて、別に
gl
(用語リスト) があったりしたようです。
(名無しさん)
[45]
html lecturte (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)
(名無しさん)
<em>強調(emphasized)</em>
なんてのもでてきます。 (名無しさん)
それでいて
<pre>プレフォーマット(preformat)</pre>
だから謎だ。 (名無しさん)
[48]
我的春秋: 定義リストの違和感(続) (2007-06-02 23:02:41 +09:00
版) http://my-chunqiu.cocolog-nifty.com/blog/2007/05/post_82b8.html
(名無しさん 2007-06-02 14:06:37 +00:00)
[103] Web Applications 1.0, , https://web.archive.org/web/20041210054847/http://www.whatwg.org/specs/web-apps/current-work/#dl0
[50] IRC logs: freenode / #whatwg / 20090909 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20090909#l-341
[51] WWW-Talk Apr-Jun 1993: Description Lists ( ( 版)) http://1997.webhistory.org/www.lists/www-talk.1993q2/0208.html
[52] IRC logs: freenode / #whatwg / 20130817 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20130817
[53] ncsa-mosaic/CHANGES at master · alandipert/ncsa-mosaic ( ( 版)) https://github.com/alandipert/ncsa-mosaic/blob/master/CHANGES#L1025
[54] 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. ( ( 版)) http://html5.org/r/8695
[55] Allow <div> around each <dt><dd> group in <dl> (#1945) (zcorpan著, ) https://github.com/whatwg/html/commit/5454d702e0262749aba55576dda32c48e0e498f0
[97] updates to dl and dt (@jnurthen著, ) https://github.com/w3c/html-aria/commit/bdc9341a86a4b7e22db86e38888c530517f09b73
[98] DL should not have default mapping of list · Issue #113 · w3c/html-aria () https://github.com/w3c/html-aria/issues/113