XHTML and li/@value attribute
Posted: Wed Aug 06, 2008 2:00 pm
In CRVData.pas, TCustomRVData.SaveHTMLToStreamEx, this appears at line 3136:
if marker.GetLevelInfo(RVStyle).HasNumbering then
RVWrite(Stream,Format('<li value=%s',
[RV_HTMLGetIntAttrVal(marker.Counter, Options)]))
However, the "value" attribute is not allowed in XHTML 1.0 Strict or 1.1. In fact, it was deprecated in HTML 4.01 (http://www.w3.org/TR/html401/struct/lis ... f-value-LI). (It does seem to return in a draft of XHTML 2.0, but I'm not sure if that's serious or not.) I'm aiming for XHTML 1.1 compliance using SaveHTMLEx, and the attribute is causing files to be invalid.
I'd like to suggest two things:
Martin
if marker.GetLevelInfo(RVStyle).HasNumbering then
RVWrite(Stream,Format('<li value=%s',
[RV_HTMLGetIntAttrVal(marker.Counter, Options)]))
However, the "value" attribute is not allowed in XHTML 1.0 Strict or 1.1. In fact, it was deprecated in HTML 4.01 (http://www.w3.org/TR/html401/struct/lis ... f-value-LI). (It does seem to return in a draft of XHTML 2.0, but I'm not sure if that's serious or not.) I'm aiming for XHTML 1.1 compliance using SaveHTMLEx, and the attribute is causing files to be invalid.
I'd like to suggest two things:
- 1. Since the default value is "1", I think when that IS the value, then no attribute should be inserted at all. That will solve the problem for most situations anyway.
2. When the output format is XHTML 1.1, no value attribute should be inserted. The standard suggests that CSS should be used instead, so perhaps an alternative would be to use style="counter-reset..." (http://www.w3.org/TR/CSS21/generate.html#counters) wherever the first item is NOT the default 1.
Martin