Re: ARIA in HTML -- a new FAQ, and a proposal

Aaron M Leventhal wrote:
> Let me say that most newcomers to ARIA have the same concerns I have
> been noticing in this group. Four years ago, when I was asked to
> implement ARIA in Mozilla, my first statement was that it would be much
> better to just improve HTML and add new elements and properties. I also
> said that the markup would be more difficult than necessary, and that
> most developers won't do accessibility unless it is "for free" -- it
> comes along with the built-in widgets, ... and so on. Since then my view
> has changed quite a bit.

   While real accessibility will always require effort, how widely
accessibility features are implemented will always be inversely
proportional to the amount of effort required to use those features. The
trick is to find a happy medium where you can get reasonable
accessibility from minimal markup. As such, I propose the following:

1) Abandon the |role| attribute.

   It's nothing more than an attribute minimization hack for XML. Any
roles in the XHTML namespace can be expressed as attributes or elements.
Anything that needs a namespace could be used in the |class| attribute
without harm...

| <div class="namespace:rolename">

   ...but, then, why not just declare the role using an attribute?

| <div namespace:rolename="true">

   Don't give me that nonsense about it being more semantic. There's
absolutely now way to enforce the "semanticness" of a role name. We
can't even get people to use <h1>-<h6> semantically. What authority will
decide if a value is semantic-worth enough to be included in a |role|
attribute declaration?!?

2) Replace |role| with something like |aria-role|.

   Which is easier? This?...

| <div xmlns:aria=""
| role="aria:checkbox>

   ...Or this?...

| <div aria-role="checkbox">

> Please take a look at the FAQ. I hope it will help frame a constructive
> discussion about ARIA. One particular part I want to discuss in this
> group is Ian Hickson's proposal (in the FAQ) to remove the namespace
> dependency for ARIA properties. I have run this proposal by other
> browser manufacturers and large content providers involved in ARIA
> development.

   I agree with Ian's proposal. It's a better version of a proposal I've
already made.

   The problem with namespaces is that you have to both declare them and
memorize the associated URL if you use it frequently. Most namespace
URLs are not memorable. Furthermore, it adds to the "boiler plate"
markup needed for a page, and pages that don't even require additional
accessibility markup may end up with the namespace defined simply
because it was in the template. There's also the issue of namespaces not
being supported in HTML.

   If I want to use the ARIA attribute |hidden|, I'd much rather type
"aria-hidden" than "aria:hidden" plus the namespace declaration. As also
indicated in a reply to Ian's proposal [1], there are styling issues
with legacy browsers.


Received on Friday, 21 September 2007 02:15:59 UTC