The list below has two items labeled "1." when viewed in IE. Mozilla has got this one right.

<ol>
 <li value="0">Zeroth item</li>
 <li value="1">First item</li>
</ol>

  1. Zeroth item
  2. First item

The "value" attribute for "LI" element is deprecated in XHTML 1.0, but it only means it's going to go away at some point in the future. Value of the attribute is defined as number token, which "must contain at least one digit ([0-9])". This is somewhat vague. Still one could deduce that Redmond has yet to reach the level of 600 AD Indian mathematicians who knew that zero was a number. (Yes, Babylonians had the concept as early as 300 BC, but zero was a mere placeholder for them, not a value.)

Looks like others have hit zero value ul bug too. To my knowledge this bug affects at least IE 5 and 6 on Windows. I'd be glad to know if this affects newer IE versions.

Still I had the zero-based numbered list to render. First I tried to work around this using counters and generated content to simulate numbered list. That was a dead end. Apparently IE does not support counters before version 8. Then I went to hard code the list like this

li { display: block; }

<ol>
 <li>0. Zeroth item</li>
 <li>1. First item</li>
</ol>

Only to learn that IE still displays item numbers like nothing had happened and list items would still be display: list-item. That said. I'm not aware of any viable (I want to retain semantic tagging, li for list item) workarounds. Any suggestions?