Andy Mabbett wrote:
It seems to me that there are several outstanding, and overlapping, issues for <time> in HTML5, which include use-cases, imprecise dates, Gregorian vs. non-Gregorian dates and BCE (aka “BC“) dates.

The time element was primarily designed to address use cases involving contemporary dates. It doesn't address non-Gregorian calendars or BCE dates by design, as it is not really meant for historical dates.

Probably the most historical dates that it would really be suitably optimised for are people's birthdates, which, for people alive today, don't really extend back beyond the early 20th century, with very few exceptions.

The fact that it technically goes back to the year 0000 is only because picking any other date would be completely arbitrary, and supporting it requires no additional effort over supporting more recent years. Even so, it still doesn't handle things like leap seconds, and nor does it concern itself with the differences between the Julian and the proleptic Gregorian calendars, especially for dates prior to the introduction of the Gregorian calendar in 1582.

These issues have all been discussed before, either here in the whatwg or on public-html, and so I won't go into great detail.

First, though, I should like to make the observation that, while hCalendar microformats are most commonly used to allow event details to be added to calendar apps, and that that use case drove their development, they should not be seen simply as a tool to that end. I see them, and hope that others do, as a way of adding semantic meaning to mark-up; and that's how I view the “time" element, too. Once we indicate that the semantic meaning of a string of text is date, it's up to other people to decide what they use that for — "let a thousand flowers bloom", as the adage goes.

I think this is a philosophical difference in approach from that which we used in developing the time element, and other features in HTML5. Semantics for the sake of semantics are not, and should not be, a design goal. As you observed, hCalendar was designed to address the most common use cases for marking up events, and so too was the time element. This is the right approach since it allows us to design and optimise features for the task at hand.

While it may seem like a logical step to go from supporting those real use cases, to supporting theoretical cases involving BCE dates, Julian calendars, leap seconds and whatever else, this actually only ends up introducing unnecessary complexity.

Use-cases for machine-readable date mark-up are many: as well as the aforesaid calendar interactions, they can be used for sorting; for searching...

Yes, but the question is, are any of the use cases involving historical dates really worth addressing with the time element? If so, what are those use cases and why are they significant enough?

hCalendar microformats are already used to mark up imprecise dates
("June 1977"; "2009"). ISO8601 already supports them. Why not HTML5?
Though care needs to be taken, it's even possible to mark up words like
“today" with a precise date, if that's generated real-time, server-side.

What are the use cases for marking up such imprecise dates? Are people using hCalendar for such purposes?

The issue of non-Gregorian (chiefly Julian) dates is a vexing one; and
has already caused problems on Wikipedia. So far as I am aware, there is
no ISO-, RFC- or similar standard for such dates, other than converting
them to Gregorian dates. It is not the job of the HTML5 working group to
solve this problem; but I think the group should recognise that at some
point a solution must be forthcoming. One way to do so would be allow
something like:

        <time schema="[schema-name]" datetime="[value]">[date in plain
        text]</time>

Developing such a solution without having clear use cases and a good explanation of why addressing those use cases is worthwhile, is not a good use of our time. Even more so because you're trying to make room for a hypothetical solution of marking up Julian dates that doesn't yet exist.

if the schema is unrecognised; thereby ensuring backwards compatibility.
That way, if a hypothetical ISO- or other standard for Julian dates emerges in the future, authors may simply start to use it without any revision to HTML 5 being required.

Until such a hypothetical standard for Julian dates becomes reality, trying to find a solution to fit it into HTML5 is bound to fail.

As for BCE dates, they're already allowed in ISO 8601 (since there was
no year 0, the year 3 BCE is given as -0002 in ISO 8601). I see no
reason why they should be disallowed in <time> elements in HTML5.

Because allowing them requires additional effort, such as changes to the parsing requirements, for which there is little to nothing gained in practice due to a lack of compelling use cases.

Coordinates

Another abuse of ABBR in microformats for coordinates:

        <abbr class="geo" title="52.548;-1.932">Great Barr</abbr>

Bruce and I agree that this could be resolved, and HTML5 usefully
extended, by a “location" element:

        <location latitude="52.548" longitude="-1.932">Great
        Barr</location>

I'm not familiar with the use cases for the geolocation microformat, nor am I aware if there even are any. So I will not comment on this.

Using the “schema" attribute shown above, for non-Gregorian dates, we
can extend that for Martian, Lunar (and eventually other bodies):

        <location schema="moon" latitude="52.548"
        longitude="23.47297">Sea of Tranquility</location>

What's the use case for this? Why would most people need to mark up lunar co-ordinates? Are astronomers really asking for such facilities to be included in HTML? Would we really be addressing their needs by doing so?

Now all we need to do is to work-around the abuse of ABBR for durations,
in the draft hAudio microformat:

        <abbr title="PT3M23S">3 minutes 23 seconds</abbr>

What's the use case?

--
Lachlan Hunt - Opera Software
http://lachy.id.au/
http://www.opera.com/

Reply via email to