- From: Dustin Boyd <rpgfan3233@gmail.com>
- Date: Mon, 5 May 2008 21:01:47 -0500
- 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 UTC