W3C home > Mailing lists > Public > public-xhtml2@w3.org > August 2008

Re: (PFWG) ACTION-211 Query re: SVG Request for @order for Access Module

From: Shane McCarron <shane@aptest.com>
Date: Mon, 11 Aug 2008 17:18:36 -0500
Message-ID: <48A0BABC.3080900@aptest.com>
To: Doug Schepers <schepers@w3.org>
CC: "Gregory J. Rosmaita" <oedipus@hicom.net>, w3c-wai-pf@w3.org, public-xhtml2@w3.org, w3c-wai-ua@w3.org, public-svg-wg@w3.org, wai-liaison@w3.org

Doug,

Your comments cut to the core of a deep philosophical issue.  XHTML 
Modularization is a framework and techniques for defining interoperable 
XML modules.  XHTML Access is one such module.  The XHTML specifications 
have in general *never* defined required behavior in the face of 
incorrect usage - in particular when such behavior would be a violation 
of the underlying protocols or technologies.  Instead, we have used 
formal terms like "unspecified" or "undefined" as an indicator to 
application developers that it would be a bad idea to rely upon such a 
thing.  From XHTML 1.0:

    Unspecified
        When a value or behavior is unspecified, the specification
        defines no portability requirements for a facility on an
        implementation even when faced with a document that uses the
        facility. A document that requires specific behavior in such an
        instance, rather than tolerating any behavior when using that
        facility, is not a Strictly Conforming XHTML Document.


This standards development model is intentional, and as I think I 
mentioned I am irrationally biased in this regard.  It is hard for me to 
objectively consider other points of view because I am so opposed to 
trying to codify specific behaviors in the face of incorrect usage.  Its 
not that I don't understand that implementations might choose to do 
something when presented with an incorrect document.  I get it.  I just 
don't want to encourage it or define it in any way other than to tell 
document authors "don't do this - its wrong, the results are 
unpredictable, and your customers will not be happy."  I understand that 
there are people who disagree with me, and that those people feel we 
should carefully lock down the behavior so that it is possible to 
develop portable content even when that content is broken.  I just think 
that is silly.

I am not advocating breaking the web.  I think that is bad.  However, I 
am personally adamant in my position that we not *continue* to break the 
web.  That includes this case.  XML is extremely clear about IDs.  So is 
HTML 4.  There cannot be more than one ID with the same value in a 
document.  Period.  If I had been there when HTML 4 was being written to 
include ID, and had my way, we would have mandated that user agents 
refuse to process a document with such a violation except to say "your 
document is broken on line 245 - duplicate value of id attribute" and 
force the content developer to fix it.   If the web had worked that way 
from day one, we wouldn't have a steaming trillion page high pile of 
dung that is the modern web.   But I digress.

So, in specific response to your questions:

Doug Schepers wrote:
>
> Hi, Shane-
>
> Shane McCarron wrote (on 8/10/08 9:18 AM):
>> I appreciate what you are trying to accomplish, and I will leave that 
>> suggestion to the working group.  I have a strong bias against 
>> encouraging the behavior your are trying to permit.  This is an XML 
>> module, and XML does not permit duplicate IDs.  Period.  It would be 
>> inappropriate to use this module as written in any non-XML grammar. 
>
> Hm... why's that?  If a non-XML grammar has enough similarities to XML 
> that this module would be useful to it, then it seems appropriate 
> enough to use it there.

If there is such a language in the future, we can define the behaviors 
along with a new version of this module.  This module is for XML.  And 
that's it.  And as such, it should not document *successful* behavior 
that violates the XML recommendation.  I would be happy to say, if you 
like, that "As required by the XML Recommendation (ref) duplicate values 
for the ID attribute are not permitted, and therefore no behavior is 
defined for documents that violate that constraint."  I suspect you 
would not find that very satisfying.  Nor would other people.  In the 
past, we have decided that being silent on an issue rather than 
duplicating constraints enforced by underlying specifications is the 
wiser course.

>>  And
>> even in such a grammar (e.g. HTML4) duplicate IDs are not permitted.  
>> So I don't see why defining the behavior and therefore encouraging 
>> people to violate the rules is a good idea.  If it were up to me, I 
>> would codify that duplicate IDs are an error, and that the behavior 
>> of an implementation in the face of them is unspecified (formal, IEEE 
>> term... means its a bad idea, don't do it.  won't work portably).
>
> Why leave it unspecified?  It's not much more work to anticipate 
> common problems and explain what should happen in those 
> circumstances.  This is a big help to implementors, and it will make 
> it more likely that a well-detailed spec will be implemented, and that 
> the behavior will be interoperable.

Unspecified is a formal term.  This isn't about more work or less work.  
Its about what we are telling content developers.  It is also about our 
support for the underlying specifications... XHTML M12N and XML in this 
case.  Both of them say that such behavior is not permitted.  The DOM 
also does not permit it - it isn't even possible to discover a duplicate 
ID value via the DOM.  Or it should not be.  If I say "getElementByID" 
for a given ID, I get one.  And only one.  If there are multiple that 
match, I suspect the behavior is either 1) not what you expect or 2) not 
what I expect.  Either way, its bad.  And we can't fix it in the XHTML 
Access Module.

>> But, like I said, I value your input and know that I am dogmatic in 
>> this respect.  So I will leave it to the working group.
>
> Here's a compromise that may be more palatable to you (and is a bit 
> more precise than the original wording):
>
> "Also note: When processing a document with duplicate ids (e.g., an 
> invalid XML document), element groups based on targetid values may 
> contain multiple values, just like those of targetrole values." 

Honestly, I don't consider your suggestion a compromise.  Regardless, I 
am stepping out of the decision loop on this issue.  I am clearly very 
opinionated on this, and it is possible my opinions are out of sync with 
the current thinking of the XHTML 2 Working Group.

Thanks again for your hard work and suggestions.  I hope that this will 
get resolved at the next XHTML 2 Working Group meeting on Wednesday.

-- 
Shane P. McCarron                          Phone: +1 763 786-8160 x120
Managing Director                            Fax: +1 763 786-8180
ApTest Minnesota                            Inet: shane@aptest.com
Received on Monday, 11 August 2008 22:19:37 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 23 February 2010 18:12:49 GMT