ARIA in Static HTML (4th March 2009)

(A brief rant about Implementing ARIA on Accessify Forum. I reckon ARIA adds nothing useful to static HTML and its syntax makes it inefficient.)

Let me start by coining a term:

Using role attributes in addition to (or, worse, instead of) adequate semantic markup and usable design.


[…] contentinfo as a role on a <div> containing normal footer info […].

Bruce Lawson

Its position at the end of the document coupled with the type of content makes clear it’s a footer. Especially so in the “normal” cases!

How would adding role="contentinfo" help users? It’s defined as:

Metadata that applies to the parent document.

Footers mostly contain the same information across the whole site, so they don’t apply solely to the parent document. They also include stuff which is not metadata, such as a links to a contact form or a Top of Page link.

In any case, contentinfo is too vague to add anything useful to well-made website footers.


[…] marking a nav list as role="navigation", for example.

Bruce Lawson

A list of links all pointing within the current domain is pretty obviously a navigation list. Preceding it with a heading saying Site Menu (or similar) would make its purpose clearer still.

ARIA defines role="navigation" as:

A collection of navigational elements (usually links) for navigating the document or related documents.

Any list of links already has those semantics!

So it seems role="navigation" also adds nothing to well-made websites. The same can be said for <nav> in HTML5, too.

Money for Nothing

I wanted to do a thorough review and simplification of ARIA but never found funding to go ahead with it. The multi-million-euro projects to fund accessibility work I’ve asked won’t cover what I do, either.

As was the case with my my HTML5 research, a year and a half of which was without funding. Yet there’s plenty of useful work to be done and plenty of money sloshing around. What’s up with that?

What I Want

My hope was for the following to become more apparent as ARIA gained more attention:

Either none of that has happened or the spec has been insufficiently ambitious in solving them.

Looking Forwards

Bring on the rolea! It goes well with the newfound popularity of putting class on everything (classitis).

ARIA examples frequently use <div> for everything (divitis), too. Even calling it “best practice”. Especially fun when they forget alt on interactive images. You must be blind to miss that! (Basing the graphical toolbar on a client-side image map would make sense.)

There’s also plainly invalid markup in examples from articles about ARIA. You can find that kinda thing anyplace, for sure. ARIA gets so much knight-in-shining-armour coverage that I’d every example to be exemplary. Yet it seems the opposite is nearer the truth.

ARIA is the perfect way for standardistas to write markup as inefficient, illogical and illconceived as the mainstream. (See also: Super-fine Markup Semantics.)