- From: Matthew Thomas <mpt@myrealbox.com>
- Date: Sat, 8 Jan 2005 23:00:05 +1300
On 8 Jan, 2005, at 3:47 AM, Ian Hickson wrote: > ... <http://www.whatwg.org/specs/web-forms/current-work/#form-submission> > ... > Incidentally, the markup in this section suggests to me that Web > Apps is going to need to do something to HTML to handle this better. > And suggestions? > ... Yes, people have lots of fun trying to find the correct markup for this situation. <http://simplebits.com/notebook/2004/04/20/sq.html> The general problem is that people want to number (or, less commonly, bullet) series of items that are already in multi-element structures, such that <ol>/<ul> cannot be used. Here, if numbering were not required, you would arguably be using <dl> (since each section is a full definition of the instruction given in its first line), but <dt>s can't be numbered automatically solely with HTML. The same applies to a formal dictionary where definitions <dd> for each term should be numbered. And the same applies to a table where each row <tr> should be numbered. You could use CSS counters, but that's a presentation answer to a content problem; the numbers are vital information even when CSS is unavailable or disabled. Similarly, it is occasionally necessary to start from a number other than 1 (so as to quote only some clauses from a statute, for example), and/or to change the list numbering partway through (so as to omit step 2 from a business plan, for example), just like you can with <ol>, without inserting CSS into your markup. (And yes, the only browser to support CSS counters is Opera -- but that itself isn't a fair argument against using them, since immediate support for any newly-invented markup would be even worse.) I was going to suggest listtype= and liststart= attributes, to be applied to any element (e.g. <tbody>) whose children you want treated as a list, along with a listvalue= attribute for altering numbering of children within the list itself. But then I realized that wouldn't work for <dd>, because the container(s) surrounding a definition term or terms, and the definition datum or data, are never explicit. Then I was going to suggest a <list> element, with the same attributes as <ol>, and the difference that it can be placed around any elements you want treated as a list. But putting that around every set of <dd>s in a <dl> would still be annoying. So, um, I don't know. Perhaps listtype=, liststart=, listfor=, and listresetafter=? For example, <dl listfor="dd" listresetafter="dt" listtype="a">. -- Matthew Thomas http://mpt.net.nz/
Received on Saturday, 8 January 2005 02:00:05 UTC