HTML Accessibility

Why not?

While on holidays I have been pondering a question

Dr Wallow tramples convention under his huge robotis feet

Why can’t ARIA interactive roles be focusable by default like their HTML counterparts?

Dr Swallows robotic legs and feet

The HTML specification states the following:

Modulo platform conventions, it is suggested that the following elements should be considered as focusable areas and be sequentially focusable:

It is important to note that the above is only a suggestion it imparts no normative requirement on browsers to implement. But of course, unless browsers did implement it would not be a useful suggestion…

An additional suggestion could be:

Any HTML elements with conforming usage of the following ARIA role values button, checkbox, radio, searchbox, slider, switch, spinbutton, tab or textbox; should be considered as focusable areas and be sequentially focusable.


  • Improve accessibility for keyboard users
  • Simplify coding for developers


You tell me?

3 replies on “Why not?”

The answer, my friend, is blowing in the wind … it’s the tension between “Aside from using WAI-ARIA markup to improve what is exposed to accessibility APIs, user agents behave as they would natively.” and the following “The WAI-ARIA specification neither requires nor forbids user agents from enhancing native presentation and interaction behaviors on the basis of WAI-ARIA markup.” in

It’s the philosophical tension between “this is only meant as info exposed to AT, nothing more, and should not influence browser behavior” and “but we don’t forbid browsers from doing it anyway”. Strong yet weasly words…

Just playing devil’s advocate here. It sounds like some of the arguments against doing this are basically “they might misuse it.” We already have that with ARIA and we choose to use it anyway. Doing something like this would make it even easier to implement ARIA correctly.
I think the downside is perhaps just this. If you make role=”button” keyboard automatically keyboard focusable, then why not implement all the rest of the keyboard interactions for role=”button” so it is identical to using the button element. So far so good. make role=”linkn” the same as using an link element. But then you get into the roles where there curretnly is no HTML 5 element. Do the browsers then just implement all the additional keyboard interactions? If they are going to do that, wouldnt it be better if they focused on creating native HTML 5 elements to do those things? If they are going to do that, then why do the extra work to support ARIA because then ARIA is no longer needed. Just a thought.

Leave a Reply

Your email address will not be published. Required fields are marked *