Against 'start' and 'value' attributes

The XHTML 2 specification should not include 'start' and 'value'
attributes.

The strongest argument for the 'start' attribute is the
interrupted list. In this case two list elements, separated by
other elements, serve to represent what is in abstraction a
single list. In order to best deal with this situation, we may
indeed want an attribute, but not 'start'. What is necessary,
rather, is a reference from the continuing element to the
previous element in the same list. We could call such an
attribute 'continues' or 'previous'.

The typical argument for the 'value' attribute states that the
list numbering is an essential part of the content and is not
merely style. If we accept this argument, it follows that we
want an element type dedicated to list item markers, bringing
all the usual benefits (easy styling, ability to add metadata,
internationalization, better degradation to plain text).

Usually when a list item marker needs a fixed value, people
anticipate referring to the list item. With paper documents, of
course, the easiest form of reference is to cite the list item
marker. With XHTML, reference should be by URI reference. This
indicates that each list item should have an ID. Once that is
done, generating the proper list item markers is easy.

Consider the following list element.

<ol>
 <li id="red">Red</li>
 <li id="green">Green</li>
 <li id="cyan">Cyan (added)</li>
 <li id="blue">Blue</li>
</ol>

Now consider the following Cascading Style Sheet.

ol {
 counter-reset: color-list;
}
ol > li {
 counter-increment: color-list 1;
}
ol > li::marker {
 content: counter(color-list) ". ";
}
ol > li#cyan {
 counter-increment: none;
}
ol > li#cyan::marker {
 content: "2a. ";
}

Together they should generate something like the following.

 1. Red
 2. Green
2a. Cyan
 3. Blue

-- 
Etan Wexler.
I caucus by myself, in the bathroom.

Received on Friday, 14 February 2003 22:51:50 UTC