職場で、DLタグの使い方について軽く議論になりました。
内容は、「<dl>の中に<dd>のみがあり、<dt>が無くても良いのか」ということです。
リストの性質上、<dd>が無いんじゃ定義リストの意味を成さないんじゃないかと思ったので、個人的には<dd>が無いのはイカンのでは、と思ったのですが、実際どうなのか確認するため、W3CのHTML 4.01のリファレンスのDLの項 を見てみました。
DTDでは
<!ELEMENT DL - - (DT|DD)+ -- definition list -->
と定義されています。
「(DT|DD)+」の部分は「(DT|DD)」が「1回以上」ということになります。
そして、「(DT|DD)」の部分は、「DTまたはDD」ということになり、結果として「DTまたはDDが1回以上」となります。
これを見る限りでは、DDが1個だけ登場して
<dl>
<dd>
</dl>
このようになっても良さそうではありますが...
で、ググってみたら、答えにちょっと近づける文書が。
ここでは、「<DD> がないのはいいようです。
」と書かれています。
つまり、DTが無いのはダメと考えて良いんでしょうかね!?
語尾の「ようです」が気になりますが...
それから、ついでに、DTやDDが複数(連続して登場)になってもかまわないということを今更ながら知りました。
W3CのDLの例文
にあります。
複数になるような使い方はしたことが無いから気にもしませんでしたが、辞書的な使い方をする場合には確かにあり得ますよね。
ちなみに、上記のAnother HTML-lintのページは「 <DL > 要素内には <DT> タグと <DD> タグが書けるのですが、ひとつの <DT> に対して、いくつも <DD> を書くようなやり方は、RFC1866(J)では推奨されていません。
」ということに対する説明なのですが、RCF1866の日本語訳
があったので見てみますと、「5.6.5.定義型リスト」のところに「文書には複数の連続した<DD>要素を含めるべきではありません。
」の記述が確かにありました。
しかし、RCF2854(日本語訳
)によって、RCF1866は破棄され、W3Cが「正」ということなので、はやりDDが複数になっても問題ないと考えてよいんでしょうね。
ところで、こうなると色々気になりますね。<th>のみで、<td>が一切無い<table>はアリなのか、とか...
うーん、でも面倒だし、そんなテーブル作ることになる気がしないのでいいや。。。