W3C home > Mailing lists > Public > www-html-editor@w3.org > January to March 2007

[XHTML-Role] Conflict with ARIA-State DTD

From: Martin Kliehm <martin.kliehm@bluemars.net>
Date: Thu, 22 Feb 2007 15:07:59 +0100
Message-ID: <45DDA3BF.3020902@bluemars.net>
To: www-html-editor@w3.org

Dear editors,

I understand the most common way to add modules is through namespaces. 
But even in XHTML 1.1 the W3 validator throws an error at namespaces 
[1], so I rather combined the XHTML Role DTD with the ARIA-State DTD. 
Alas that's impossible if I do not edit the modules themselves [2].

The difficulty lies in the order the modules have to be implemented. If 
my understanding is correct the order has to be like this:

1. bring in the Role Attribute modules (xhtml-role-1.mod, 
2. bring in the States and Properties module (aaa-qname.mod),
3. add %xhtml-role.attrs.qname; and %aaa.attrs.qname; to 
4. get the XHTML 1.1 driver,
5. add tabindex to text containers.

Now the problem is that ARIA-State is *bundled* with the XHTML 1.1 
driver *and* tabindex. Thus I can't add %xhtml-role.attrs.qname; to 
%Common.extra.attrib after aaa-qname.mod but before the XHTML 1.1 
driver. If I add it before the ARIA-State module, %Common.extra.attrib 
gets overwritten by %aaa.attrs.qname; and my role definition is lost. If 
I try to IGNORE the XHTML driver in the Aria-State module in order to 
add %Common.extra.attrib and then manually INCLUDE the XHTML driver 
later, the tabindex extension gets lost.

Concerning the DTDs there are these inconveniences:

1. It would be more consistent with other XHTML modules to create 
ARIA-State as an add-on module without bundling it with the XHTML 1.1 
driver. That would also enable the use of these modules in other XML 
languages. But if I'm right and the states and properties must be added 
before the XHTML driver and tabindex extended after it, there need to be 
two separate modules: a) States and Properties, b) tabindex.

2. If you have to bundle it for convenience of the average user, create 
an extra deluxe bundle with XHTML 1.1, XHTML Role and ARIA-State. That 
should be optional, an extra service for the lazy developer, while the 
modules themselves should be available unbundled.

3. A better solution to extend %Common.extra.attrib is needed, so that 
the role attribute extension doesn't conflict with the states and 
properties extension. Also adding tabindex to %Common.extra.attrib might 
be an option [1], so there would be 3 modules that use it.

4. The manual implementation of both xhtml-role-1.mod and 
xhtml-role-qname-1.mod is a bit of a pain. I would expect 
xhtml-role-1.mod to bring in the qname module, instead it does nothing 
(and even says so in a comment). Probably the HTML WG had good reason to 
create it that way, but I wonder why? "Does nothing" reads like a joke.

5. The "triple-a" in "xhtml11-aaa.dtd" or the default namespace leads to 
some confusion because people think it is related to triple-a WCAG 
conformance. Calling it xhtml11-state.dtd with a "state" default 
namespace would be less ambiguous.

I have posted this a while ago to the Protocols and Formats WG [2], but 
I thought it might be good to bring this to the attention of the XHTML 
Role editors as well. It is impossible to address this issue without the 
other working group since both DTDs are concerned and a harmonization is 

Best regards,

[2] http://learningtheworld.eu/aaa-custom-dtd/
Received on Thursday, 22 February 2007 14:08:10 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:08:55 UTC