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:
roleattributes in addition to (or, worse, instead of) adequate semantic markup and usable design.
contentinfoas a role on a
<div>containing normal footer info […].
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 asBruce Lawson
role="navigation", for example.
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.
A collection of navigational elements (usually links) for navigating the document or related documents.
Any list of links already has those semantics!
<a href>for all sorts of navigation lists.
<img usemap>with several
<area href>for image maps.
<link rel href>where the
relindicates a document.
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:
- Repeats many existing semantics in static content.
- Inefficiency of ARIA in general.
- The way ARIA enables and excuses bad UI.
Either none of that has happened or the spec has been insufficiently ambitious in solving them.
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.)