Re: XHTML2 dt/dd Nesting

> From: Lachlan Hunt <lhunt07@postoffice.csu.edu.au>

> Yes, a search of the archives reveals several threads on this topic; 
> many with a similar ideas, using various other tags instead of <df>, 
> such as <definition>, <di> and even <li>.
> Others have suggested nesting <dd> within <dt> like the following, both 
> with and without the <label> element, or similar.  The following example 
> was created by combining several suggestions from previous threads, and 
> does not cover every alternative.
> <dl>
>     <dt><label>Hello</label>
>         <dd xml:lang="en">A common greeting</dd>
>         <dd xml:lang="fr">Bonjour</dd>
>     </dt>
> </dl>
>   Just like most people who've discussed this (from what I've read), I 
> do agree that something needs to be done to improve the structure of a 
> dl.  Though, as to which method to use, I prefer the structure in the 
> example above, though each one has pros and cons that would need to be 
> very seriously considered before a final decision was made.

Well, limiting myself to just the alternatives given above, let me discuss
what I see as the pros and cons.

<li>
There are no pros here, only cons.  In order use <li> as an element for
grouping definition lists, one would need to have a different content model
for <li> depending upon whether it was inside a <dl> or one of the other
lists.

<definition> and <df>
Both of these have the advantage over <li> of being a grouping element
used only inside the <dl> element where a different content model applies
than in the other lists.  However both names have problems.  The first is
that both are likely to suffer from some confusion with the <def> element.
The second is that  despite the commonly associated name for <dl>
of "definition list" The <dl> element is used for non-definition lists.

Example of a non-definition list <dl>:
<dl>
  <dt>Dr. A</dt>
  <dd><dl>
    <dt>Office</dt>
    <dd>123</dd>
    <dt>Phone</dt>
    <dd>555-1234</dd>
  </dl></dd>
  <dt>Dr. B</dt>
  <dd><dl>
    <dt>Office</dt>
    <dd>321</dd>
    <dt>Phone</dt>
    <dd>555-4321</dd>
  </dl></dd>
  <dt>Grad Student D</dt>
  <dt>Grad Student E</dt>
  <dt>Grad Student F</dt>
  <dt>Grad Student G</dt>
  <dd><dl>
    <dt>Office</dt>
    <dd>444</dd>
    <dt>Phone</dt>
    <dd>555-5555</dd>
  </dl></dd>
</dl>

Actually given the actual usage of the <dl> element today, perhaps
a more descriptive name would be "definition or directory list"
since both dictionaries and directories have a indexing term <dt>
which is associated with data related to the term <dd>.  The above
is a bit of a mouthful, so I'll make use of the terms d-list, d-term, and
 d-data to refer to the current <dl>, <dt> and <dd> respectively for
the rest of this post.

<di>
I'll admit to a certain bias in favor of this form as I proposed it.
It has none of the drawbacks mentioned above and the merit
of suggesting  that it has something to do with a d-list form its
form, altho <ddiv>, <dsection>, <dgroup> and a variety of other
names would do as well in that regard.  My preference for <di>
came from the fact that it is short and that also parallels the
name <li>.  However, that parallel could also be seen as a drawback
as in CSS terms, a <di> is most certainly not a list-item.

<The proposal given by Lachlan above>
There are two problems with the proposal, either of which
would be enough in my opinion to make it undesirable.

First there is the fact that placing the <dd> inside the <dt> element
calls for a radical change in the content model from existing
practice for existing elements.  That is a not a good thing in my
opinion.  The second is that it assumes there is but a single d-term
that is associated with one or more blocks of d-data.  That is not
the current model and indeed is the inverse of what HTML 2.0
originally called for, namely that each block of d-data would be
associated with one or more d-terms.

Received on Sunday, 2 November 2003 02:22:44 UTC