Search code examples
htmlhtml-lists

Does definition list <dl> require that each <dd> will have <dt> tag?


Does definition list <dl> require that each <dd> will have <dt> tag?

Example:

option1 for each <dd> exist his <dt> also if <dt> empty:

<dl>
<dt></dt>
<dd>value1</dd>
<dt>name2</dt>
<dd>value2</dd>
</dl>

option2 for each <dd> not exist his <dt> if <dt> empty:

<dl>

<dd>value1</dd>
<dt>name2</dt>
<dd>value2</dd>
</dl>


Edit:

Example for when dt can be empty (its build by zend_form auto - can not be changed):

<dl> 

<dt><lable>Last Name:</label></dt> 
<dd><input type='text' size='30' /></dd>
<dt><lable></label></dt> 
<dd><input type='submit' size='30' value='submit'/></dd>
<dt><lable>Name:</label></dt> 
<dd><input type='text' size='30' /></dd>

</dl>

Thanks


Solution

  • HTML 4 doesn't enforce this, neither is XHTML 1.1. They only require <dl> contains only one or more <dt> or <dd>s.

    However, HTML 5 has stricter requirement:

    zero or more of: (one or more <dt> elements, followed by one or more <dd> elements)

    Hence, your option2 will not validate in HTML 5.

    option1 is still fine, as <dt> can contain any "phrasing content", including empty content.