[whatwg] <time> parsing and rendering
Philip Jägenstedt
philipj at opera.com
Mon Nov 16 10:47:45 PST 2009
http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#parse-a-month-component
Is there a use case for machine-readable dates after 9999? I'm sure HTML5
will have been obsoleted before it's meaningful to express accurate times
that far in the future. As existing similar formats use a 4-digit year,
adapting parsers for those is a lot easier if the HTML5 year format be
exactly 4 figures. Also, it seems more likely that >4-digit years will be
typos than intended and useful as machine-readable data. If there are no
strong use cases for it, please make it YYYY only.
http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#parse-a-date-or-time-string
"10. If the date present and time present flags are both true, but
position is beyond the end of input, then fail."
This seems to be a bug if you consider how '2009-11-16T' would be parsed.
The algorithm is supposed to return a date time or global date and time,
but '2009-11-16T' is valid as neither. The intent of this step must be to
make sure that T is always followed by a date, but it won't work. Except
from being in the incorrect order (after time present may have been set to
false) it also checks for the end of input, which doesn't make sense when
the "in content" variant is used.
Perhaps it would be possible to simply replace this algorithm with "try
parsing a global date and time, else try parsing a date, else try parsing
a time"? I haven't check carefully if this is equivalent though.
http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#the-time-element-0
"When the time binding applies to a time element, the element is expected
to render as if it contained text conveying the date (if known), time (if
known), and time-zone offset (if known) represented by the element, in the
fashion most convenient for the user."
This is very vague. Anything which tries to localize the date/time will
fail because guessing the language of web pages is hard. Hard-coding it to
English also wouldn't be very nice. What seems to make the most sense is
using the "best representation of the global date and time string" and
equivalents for just time and date that have to be defined. Still, I'm not
sure this is very useful, as the same rendering (but slightly more
flexible) could be accomplished by simply putting the date/time in the
content instead of in the attribute. As a bonus, that would degrade
gracefully. Unless I'm missing something, I suggest dropping the special
rendering requirements for <time> completely.
--
Philip Jägenstedt
Opera Software
More information about the whatwg
mailing list