W3C home > Mailing lists > Public > www-html@w3.org > May 2008

Do we really need four different types of lists in XHTML 2.0?

From: Dustin Boyd <rpgfan3233@gmail.com>
Date: Mon, 5 May 2008 21:01:47 -0500
Message-ID: <ef7a0f3a0805051901q63ea5897x320e4a0fbe7b4339@mail.gmail.com>
To: www-html@w3.org

If I am posting to the improper list or if this is difficult to read,
I apologize in advance.


I have an informal proposal for a generic 'list' element with two
child elements: an 'item' element and a 'label' element.

I figured I'd toss the idea into the open because using four different
lists -- two of which differ only in semantic value and presentation
('ul' and 'ol'), one which differs from the previously mentioned two
only by the requirement of a 'label' element ('nl'), and the last
which doesn't fit with the others 'dl' -- is something that should be
rethought. When I first read the current public working draft of XHTML
2.0, I liked the introduction of the 'nl' element. However, I now
realize that perhaps the concept of semantics is being taken too far.

For example, a to-do list could be marked up as the following:

  <list>
    <label>To-Do List</label>
    <item>Go shopping</item>
    <item>Clean kitchen</item>
    <item>Do laundry</item>
    <!-- more items can be used obviously -->
  </list>

After all, something such as a to-do list may or may not have a
specific order. Requiring authors to decide if it is ordered at the
time of markup creation is something that I feel should be
reconsidered. The desired effect can be rendered via stylesheets,
eliminating the need for the 'ul' and 'ol' elements.

I'm not sure why the 'label' element is required in the case of a
navigation list, but I do acknowledge that it can be hidden via
stylesheets. Using the role attribute, a element can be delegated for
navigation, eliminating the 'nl' element:

  <list role="navigation">
    <label>Main menu</label>
    <item href="/index.php" title="Go to the main page">Home/Index</item>
    <item href="/tutorials/index.php" title="Learn to program">Tutorials</item>
    <item href="/about.php" title="Learn about the site's
authors">About Us</item>
    <!-- more items can be used obviously -->
  </list>

This also works for definition lists, though a semantic solution is
not always obvious (a decent solution isn't obvious to me at the
moment):

  <list>
    <label/>
    <item role="definition">
      <!--  I chose to ignore the way in which Web browsers currently
            implement the rendering of 'dt' elements in this case -->
      <l>Center, Centre</l>
      <p>A point equidistant from all points
              on the surface of a sphere.</p>
      <p>In some field sports, the player who
              holds the middle position on the field, court,
              or forward line.</p>
    </item>
  </list>

This eliminates the need for the 'dl' element (and its child
elements). Not all dictionaries list such homophones in a vertical
fashion. This is where the flexibility of the 'l' element is useful.
It can be used to denote a single line of text. That is its only
purpose. I might argue that it appears to be presentational in that
regard, but the alternative, a 'span' element with a "display: block"
style rule applied or just a 'div' element is rather useless. In
addition, it would suggest the removal of the 'br'
element is a bad idea, which it isn't.

I know this has probably been discussed in the past, but I felt the
need to reintroduce the idea. It is obviously not a formal concept at
this time. Instead, it is merely a presentation of a possible option.

I look forward to /any/ criticism or comments!

Thanks for reading,
Dustin Boyd
Received on Tuesday, 6 May 2008 02:02:26 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 27 March 2012 18:16:13 GMT