role, and W3C politics
<input type=date>. Rather, authors have to do quite some additional hacking to ensure that the widget type (checkbox, password field, et cetera) and widget state (checked, open, closed, et cetera) are properly exposed. Especially without proper debugging this is likely to do some harm. On top of that comes the copy and paste authoring cloud that doesn’t notice any bad side effects from improper usage as that only becomes evident once you use assistive technology, such as a screen reader. In other words, this solution is a lot like
axis, and dare I say,
alt. Although, to be fair,
alt is shown as a tooltip in Internet Explorer which gives people using that browser some feedback. So there are definitely issues. Although as outlined in an earlier post on ARIA the “better” alternatives are not ready yet.
role attribute was first introduced as part of XHTML 2.0 and is now being backported as a module for the XHTML Modularization effort. (Sidenote: XHTML Modularization is more or less made obsolete by (X)HTML5, but still exists because the XHTML2 Working Group still exists it seems. W3C politics is a lovely game where the real world does not matter and we have e-mail fights over who owns the
http://www.w3.org/1999/xhtml opaque string for instance.) The
role attribute is designed as a way to add semantics to an element. This is better in some twisted way because it keeps the amount of new elements down while it increases the amount of opague strings (actually, CURIEs (no chemistry involved), which are worse in several ways) that go into the
role attribute value. For a while I thought this was something that could be safely ignored like other Architecture Astronaut inventions, but then the ARIA people picked it up. Admittedly, for too long I have thought ARIA could be ignored too. I suppose I am in some way responsible for the outcome, although it should be noted there is no ARIA standard yet. It is mostly driven by the Firefox implementation and when I heard about that most code already landed.
On top of the magical
role attribute which was XHTML 2.0 only in the very beginning they started building a widget system supposedly to be used by applications that don’t come even close to using XHTML, let alone XHTML 2.0. ARIA is becoming relevant now. Firefox 2 has some of it. Firefox 3 will have the new stuff. We, Opera, want the new stuff in Opera 9.5. I’m just scared that building this on top of the already overloaded
role attribute will give us a new
<object> (failure). On the other hand, maybe
role can be hijacked for ARIA and we leave the framework for distributed extensibility on the drawing board. Or maybe for some other attribute to take over.