- From: Henry S. Thompson <ht@inf.ed.ac.uk>
- Date: Thu, 17 Apr 2008 17:04:00 +0100
- To: "Simon Pieters" <simonp@opera.com>
- Cc: "Michael Cooper" <cooper@w3.org>, "Al Gilman" <Alfred.S.Gilman@ieee.org>, "Dan Connolly" <connolly@w3.org>, "Tim Berners-Lee" <timbl@w3.org>, "TAG List" <www-tag@w3.org>, "Judy Brewer" <jbrewer@w3.org>, "W3C WAI-PFWG" <w3c-wai-pf@w3.org>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Simon Pieters writes:
> On Thu, 17 Apr 2008 15:33:57 +0200, Henry S. Thompson <ht@inf.ed.ac.uk>
> wrote:
>
>> Michael Cooper writes:
>>
>>> . . . I have prepared a summary document [0]
>>
>> I too have found this very helpful, thank you.
>>
>> I have spent some time exploring the test case helpfully provided by
>> Henri Sivonen [1]. I discovered that at least some of the apparent
>> failures of the :-based markup versions therein did not arise from the
>> material under test, but from accidental properties of the text
>> matrix.
>
> It's not really clear to me what it is that you discovered. It seems
> to me that you have tried to work around the differences that the
> colon imposes and thus demonstrated that different code paths is
> needed.
I did that as well, but what I was referring to was the "Script did
not run" reports against Firefox, which had nothing to do with :
vs. -.
>> More generally, it appeared to me that if a bit more effort were
>> expended, the cost of the :-based approach could be reduced, thus
>> perhaps shifting the outcome of what we all agree is a cost-benefit
>> tradeoff.
>>
>> Accordingly I produced a new version [2] of Henri's test, testing only
>> my more elaborate :-based approach, which produces better results
>> (live version [3]) (frozen snapshot w. low-res thumbnails if the live
>> version has expired [4]).
>
> Using the colon means that UAs and authors have to support two sets of
> ARIA attributes -- one set of namespaced attributes, and one set of
> no-namespace attributes with colons in their local names.
How so? The whole point of my exploration is that a _single_ entry
point (in my examples, spelled 'getARIAttribute'), can be used in all
contexts.
> Having aliases is an indicator of bad design.
Exactly -- having aria-role and aria:role as aliases is bad design.
Seriously, we are stuck with a complex legacy, and _any_ resolution
has crufty aspects. The question is, which cruft is preferable.
> Moreover, it will be seriously error prone for authors, since
> attributes from either set can appear on the same node in both HTML
> and XML documents:
>
> Case 1: HTML document:
>
> <div a:foo='true'>
>
> div.setAttributeNS('http://www.w3.org/2005/07/aaa', 'foo', 'false');
>
> Case 2: XHTML document:
>
> <div a:foo='true'>
>
> div.setAttribute('a:foo', 'false');
>
> Case 3: either HTML or XHTML document:
>
> <div>
>
> div.setAttributeNS('http://www.w3.org/2005/07/aaa', 'foo', 'true');
> div.setAttribute('a:foo', 'false');
Sorry I didn't make clear in the original post that the cost of my
proposal is that you _don't_ use the standard accessors. You _always_
write
setARIAttribute(div,'foo','true')
>
>> The crucial observation about these results
>> is that in every case Javascript access to :-based ARIA attributes
>> succeeded, and in all but the Safari case (which I presume could be
>> fixed, I just couldn't get access to a Safari + debugger installation
>> in the time available) the Javascript setting of :-based ARIA
>> attributes succeeded.
>
> It fails in Safari because your "XML" check is actually bogus:
Do you mean there _is_ no test in Safari which will correctly
distinguish an HTML from an XML parse? That _would_ be a problem. .
> Per HTML 5, elements that are inserted in the document by the HTML
> parser are put in the XHTML namespace, and hence, you get the "XML"
> codepath for HTML documents in UAs that follow HTML 5.
Are you suggesting that Safari is already implementing HTML 5 rules?
> No matter how you try to spin it, even if you get the "XML" check
> right, a node can have both attributes set at the same time
Not if you just use the uniform getter/setter.
> The right way to solve this is to only have one set of attributes
For sure.
> and that means not using the colon (given the constraints that we
> can't change the HTML parser, nor the XML parser, nor DOM Core, and
> that it should work the same in existing browsers).
Or using a setter/getter pair which use the appropriate single
attribute in each case.
>> CSS selection succeeded everywhere except IE,
>> where it failed across the board -- I presume this could be fixed for
>> IE8, given what I understand, but again I didn't have access to a
>> suitable IE8 installation.
>
> p[a\:foo], p[a|foo] { background:lime }
>
> IE doesn't support namespaces in CSS, and so, the entire ruleset is
> dropped. However, even if you did:
>
> p[a\:foo] { background:lime }
> p[a|foo] { background:lime }
>
> ...IE7 wouldn't apply the first ruleset because attribute selectors
> with colons don't work in IE7. (Attribute selectors without colon
> work fine in IE7.) But, even if attribute selectors with colon did
> work in IE7, you'd still have to duplicate all your ARIA rulesets in
> CSS, and that's bad compared to not having to do so:
>
> p[aria-foo] { background:lime }
Agreed. But I doubt seriously that there will _be_ many aria/css
rulesets. My understanding was that the ARIA use cases are primarily
AJAX-oriented, so the DOM access issues are the important ones.
> I think we can't come to useful conclusions from your script since it
> doesn't work correctly in UAs that implement HTML 5
Please clarify which browsers those are, and why it _can't_ work in
them. I also note that HTML 5 is not baked yet. . .
> nor does it cover the case when an element has both attributes at
> the same time.
I addressed this point above.
> However, even ignoring that, 16 lines of code and the resulting
> indirection elsewhere in the code is bad compared to no additional
> 16 lines of code and no indirection elsewhere in the code.
For sure. And using aria- in some documents and aria: in others is
compared to using aria: everywhere is bad too. We're talking about
tradeoffs, not absolutes.
ht
- --
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
iD8DBQFIB3TwkjnJixAXWBoRAivfAJ46Fycnzhicv8WkAy10eiiZdB8BGACdFwlH
L5GTFbZI1np+UHC8I+qa39k=
=sPil
-----END PGP SIGNATURE-----
Received on Thursday, 17 April 2008 16:05:11 UTC