- From: Lachlan Hunt <lachlan.hunt@lachy.id.au>
- Date: Wed, 20 Jan 2010 11:35:10 +0100
- To: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
- Cc: "public-html@w3.org" <public-html@w3.org>
Leif Halvard Silli wrote:
> Tab Atkins Jr., Sun, 17 Jan 2010 10:25:08 -0800:
>> The "applicable specification" clause ensures that the extension is
>> accepted by a large enough group of people to make the validator
>> authors recognize it, which is a reasonable minimum quality bar.
>
> We don't really know how the "applicable spec" mechanism will work. But
> I don't think we'll simply hand it over to the validator team to tell
> what it is.
As far as HTML5 is concerned, a specification is an applicable
specification when its requirements are recognised as applicable by the
person checking the conformance of a document.
"When someone applying this specification to their activities decides
that they will recognise the requirements of such an extension
specification, it becomes an applicable specification for the
purposes of conformance requirements in this specification."
I understand that the implications of this can be difficult to grasp
since it's so different from the previous approaches, such as using DTDs
and/or versioning, but this has been done for good reasons that I will
try to explain.
The first thing to understand is that such a specification could be
written and published anywhere at all. There is no requirement that an
extension specification be published and formally endorsed by the W3C,
nor, technically, any other standards body. Standards bodies do,
however, still have a useful role to fulfil, but I'll get to that later.
The point is that neither where a spec is published nor who officially
endorses it is inherently relevant to the question of whether or not a
document can conform with its requirements.
All that is relevant is whether or not the person, or software, checking
the document's conformance chooses to recognise and adhere to the
requirements of such a specification. For example, if you choose to
recognise the content of specification X, whatever that may be, and meet
its requirements, then you can claim that your document conforms to
HTML5 plus specification X.
This does not, however, inherently mean that everyone needs to recognise
specification X. If you publish that document and someone else looks at
it who chooses not to recognise (or doesn't know about) specification X,
they may also claim that the document is non-conforming HTML5. Both
claims would be right.
This can occur because HTML5 doesn't define any way for documents to
declare what they conform to, which is by design. Previous editions of
HTML allowed authors to explicitly associate their documents with custom
DTDs which provided limited means by which a document could declare and
be machine-checked against some additional conformance requirements, but
this approach has been, and should remain, abandoned.
Henri Sivonen has previously explained why this is so [1]:
"DTDs pollute the document with schema-specific syntax. Since the
document itself declares the rules, the question answered by DTD
validation is not the question that should be asked. DTD validation
answers the question “Does this document conform to the rules it
declares itself?” The interesting question is “Does this document
conform to these rules?” when the person who asks the question
chooses the rules the question is about."
Note that it's still possible to use custom schemas to validate your
documents if you like. Validator.nu even provides UI for it [2]. But
there is no reason for such schemas to be explicitly linked with your
document by, e.g. using a custom DOCTYPE or other schema specific syntax.
So, for example, you may choose to recognise the extensions being
specified by the HTML+RDFa spec as conforming for your documents. You
may also produce a custom schema that can be used with the validator to
assist with conformance checks. I, on the other hand, choose to regard
that specification as irrelevant and will regard those extensions as
non-conforming in my documents.
With it now possible to make a conformance claim for a document with
regards to any specification, I want to make it clear that I'm not
suggesting that authors can get away with pretty much anything just by
writing their own spec and claiming it's applicable. This would
completely ignore the goal of interoperability and the benefits of
widespread review and support.
It's important to separate the idea of a conformance claim from the idea
of what is considered widely supported and interoperable. HTML5's
concept of an applicable specification is not concerned with the latter.
But in practice, authors and implementers should be.
This is where standards bodies and industry groups become relevant,
although they are not essential in all cases. They provide the platform
for widespread review and industry support that is usually needed to
achieve interoperability, which can lead to widespread recognition.
This allows people to reach agreements about what they will consider
conforming and what they won't, rather than having everyone claiming
conformance to and publishing documents using whatever extensions they
like, which would be a complete mess.
Although this model tends to naturally centralise itself, it is
effectively a model controlled by the market, as opposed to ivory tower
spec writers. This is a good thing and the result of this is that
simply having a spec published by a standards organisation does not
inherently mean widespread recognition and support; rather, such support
must be built from the bottom up, ideally during the spec's development.
This is why the ideas about distributed extensibility (ISSUE-41) are
bad. Such extensibility actively encourages extensions without
attaining widespread support or interoperability. The idea of using the
profile attribute as a way to declare extensions, and other ideas to
provide versioning (ISSUE-4 DOCTYPE versioning), not only fails for this
reason, but also miss the point of not allowing documents to make
self-conformance claims. This is why I believe both ISSUE-4 and
ISSUE-41 should both be closed with no spec changes.
[1] http://about.validator.nu/#faq
[2] http://about.validator.nu/#details
--
Lachlan Hunt - Opera Software
http://lachy.id.au/
http://www.opera.com/
Received on Wednesday, 20 January 2010 10:35:45 UTC