Lachlan Hunt wrote:
dolphinling wrote:
HTML5 brings back the |start| attribute on ordered lists. This allows
a list to semantically start with a number other than one. It seems
like the major use case for this is to split lists up, so that a
single list is marked by multiple <ol>s.
Other use cases include the ability to include an excerpt from another
list in a page while retaining the list item indexes, or breaking a long
list across several pages.
e.g. Search results with 10 results per page could be marked up as a
list: <ol start="1"> on the first page, <ol start="11"> on the second
page, etc.
Would it therefore make sense to allow named start values, so that the
author doesn't have to go through and re-number everything when a new
item is added at the top? And if so, should they be considered
semantically one list? And if so, would it make sense for it to also
apply to unordered lists, so that they can be split up, too?
I recall similar suggestions made on www-html in the past. Something
like this could be useful:
<ol id="part1">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
<ol id="part2" continue="part1">
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
</ol>
However, there are several issues that would need to be addressed:
* Should |continue| be an IDREF that can only continue a previous list
in the same page, or should it be a URI that can continue lists from
other pages?
* Can it be defined and implemented in a way that avoids circular
references. e.g.
<ol id="part1" continue="part2"/>
<ol id="part2" continue="part1"/>
* What does it mean if it references any other element that isn't a <ul>
or <ol>?
* What should happen if it references a non-existent element?
* What does it mean if two lists continue from the same previous list?
e.g.
<ol id="part1" continue="part2"/>
<ol id="part2" continue="part1"/>
<ol id="part3" continue="part1"/>
* How are references duplicate IDs handled in this situation? (That
could probably be the same way <label for=""> handles it)
The simpler named start values that I was thinking of would avoid all
that. It wouldn't be tied to any other element's ID, multiple ones with
the same name would simply continue the list, one after the other, and
an unknown name would start a new list, at one.
It would also be less powerful: you couldn't rearrange a list, so the
later parts were higher in source order, and you couldn't start a named
list at a value other than one.
* Which takes precedence out of <ol continue="part1" start="2"> and <li
value="3">?
* What does it mean if <ol contine="foo"> references a <ul id="foo">?
Should it only be able to link lists of the same type? (i.e. ol with
another ol and ul with another ul)
* Backwards compatibility is also an issue, though it could possibly be
handled with some JavaScript that dynamically calculates and sets the
start attribute.
* Would implementations have difficulty with re-numbering list items in
linked lists, when a new <li> is dynamically inserted into a previous list?
I noticed you didn't answer my question about whether that would be an
abuse of the language, and lists shouldn't be split up like that. :)
--
dolphinling
<http://dolphinling.net/>