For a while now, I’ve been seeing mentions of implicit ARIA roles as something web designers and developers should be aware of and know how to use.
In the case of ARIA roles, the word implicit means that the browser interprets certain HTML elements semantically and treats them as if an ARIA role were assigned to them. In these situations, the web designer does not specifically need to add the role attribute to the element. The addition of the ARIA role is considered redundant in some situations.
If you do add the role information, it does no harm, but, in my opinion, it’s best practice to know when you do need to add it and when you don’t.
For elements that have been around for a while, say the a
(anchor) element, the browser implicitly assigns a role="link"
attribute.
For the newer HTML5 semantic structural elements, browsers already have some of the roles built in. This improves as browsers add support. A header
element that is not a descendant of an article
or section
element is implicitly assigned role="banner"
. A
footer
element that is not a descendant of an article
or section
element is implicitly assigned role="contentinfo"
. There are a number of other cases like this as browsers add support for HTML5. They are detailed at the W3C in two tables. This table shows strong native HTML semantics with default ARIA semantics. Just under it, this table lists the default implicit ARIA semantics for many other elements, along with any restrictions that apply.
In addition to the information at the W3C, check out this article by Steve Faulkner: HTML5 Accessibility Chops: When to use an ARIA role.