- From: Shane McCarron <shane@aptest.com>
- Date: Fri, 06 Feb 2009 12:20:41 -0600
- To: XHTML WG <public-xhtml2@w3.org>
(I just had a call with Markus where we went over some deliverables
related to module implementations. During that call, we got onto the
topic of host language conformance requirements. In particular, we
wandered into the topic of subsetting of modules. I want to give Markus
full credit here - he really helped focus my thinking.)
Many of you will remember that I am fierce opponent of subsetting. The
conformance rules related to module integrity are largely the result of
my lobbying back in the day. So it may come as a bit of a shock when I
say that I have changed my mind.
The primary argument for modules, and the composition of modules into
markup languages, is that the structure of the resulting "host"
languages will be similar enough that they can be a member of the XHTML
Family. Languages that are part of the XHTML Family are in theory
portable among XHTML conforming user agents. We get to use terms like
"graceful degradation" and we sound all cool and stuff.
In retrospect, I think I "grabbed the wrong end of the stick". The key
to portability of content is NOT that the host language support
everything in a module. The key is that the USER AGENTS support the
core functionality of the module so that languages that rely upon that
functionality will have the portability we desire.
"So what?" I hear you saying. Well, I was thinking that it would be
possible to broaden the utility and appeal of our modules by loosening
our rules for how the modules can be used. Specifically, identifying
the places where it is permissible for host languages to further
restrict the content model, eliminate elements, or eliminate attributes
from attributes - while at the same time making it clear that user
agents are *required* to support the entire module.
Obviously this can't be a blanket change. The rule of thumb in
identifying things that a host language could omit / reduce should be
"will a document that conforms to this language work correctly in an
xhtml family user agent? And will it work in legacy user agents when
relying upon their interpretation of XHTML as HTML?" Omitting the "em"
element, for example, would work fine. Lots of documents don't have
"em" elements. Omitting the "tr" element from the table module, on the
other hand, would be a disaster!
If we were to identify the things that can be safely "subsetted" in our
modules, what would be the upside? Some obvious items:
1. More flexibility in the application of our modules.
2. Greater appeal to the "structured" markup community. The folks who
brought us SGML in the first place because they wanted very tight
document construction rules.
3. Less need to create lots of little modules since a language designer
can just ignore the bits they don't like.
What are the risks? Well, first there is the significant risk we will
get it wrong. Identifying candidate elements and attributes is going to
be painstaking. Then there is the collateral risk that user agent
implementors will ignore our requirements and start implementing subsets
that support only the host languages they care about. Finally, there is
the less obvious risk that this will jump-start a plethora of xhtml
family host languages with their own "minted" document types that
existing user agents will misinterpret.
What do people think? Am I missing something? Would anyone oppose an
effort to make our host language conformance rules more flexible?
--
Shane P. McCarron Phone: +1 763 786-8160 x120
Managing Director Fax: +1 763 786-8180
ApTest Minnesota Inet: shane@aptest.com
Received on Friday, 6 February 2009 18:21:18 UTC