The Digital Publishing WAI-ARIA module (DPUB-ARIA) is an extension of the ARIA specification. It
provides an additional set of publishing-specific roles for use with the ARIA
The publishing roles are intended to improve the usability of publications both by providing assistive technologies (AT) with additional information about important structures and by ensuring that common publishing markup idioms are accessible.
The roles are not intended as a mechanism for workflow semantics so do not provide the same breadth of coverage as, for example, the EPUB Structural Semantics vocabulary. Care needs to be taken both with the number of roles used and the manner in which they are used, as incorrect use can impair the ability of users to accessibly consume a publication.
Frequently Asked Questions
- What are implicit roles and why do they matter?
Many HTML elements have default accessibility semantics so do not require a an explicit role. The
navelement, for example, has the implicit role
navigation. Similarly, the
asideelement has the implicit role
complementary. (For the complete list of elements and their implicit roles, please see the ARIA in HTML document.)
A feature of these implicit roles is that if an assigned role is not recognized, assistive technologies are expected to ignore the unknown role and default to the implicit. This ensures that assistive technologies can still make sense of the document when encountering, for example, new roles they are not aware of.
To avoid problems with assistive technologies not recognizing the DPUB ARIA roles, it is recommended that when an element has an implicit role you ensure that the role you are using has the same ancestor role (e.g., use navigation roles with the
This issue will diminish as support for the DPUB ARIA module gains traction. The solution is also imperfect, as there have been reports that implicit roles are not always recognized.
- When should I include fallback roles?
When an HTML element does not have an implicit role (e.g.,
div), it is recommended to include a fallback role from the core ARIA specification for whichever role you are using from the DPUB ARIA module. This ensures that even if the DPUB role is not yet understood by an assistive technology, it will still understand the general purpose of the role.
roleattribute accepts multiple roles separated by spaces, so the ARIA fallback role can be added after the DPUB ARIA role.
The order of roles is important so do not add ARIA roles before the DPUB roles or the DPUB roles will never be recognized.
Similar to the issue of matching implied semantics, the need for fallback semantics will diminish with time. The use of fallback semantics is also known to be imperfect, as the fallbacks are not recognized in all cases.
- Why shouldn't every section of a publication be a landmark?
Users already have access to the table of contents, which is a much more effective tool for understanding and navigating the structure of a publication. Landmarks are intended to provide quick access to the key sections a user might want to reach.
Landmarks are also an unstructured list of links, so setting every section as a landmark actually makes it harder for users to understand the structure. Making every section a landmark also unnecessarily proliferates the total number of landmarks in a page, which in turn reduces the usefulness of the list (i.e., being able to quickly locate a key section).
- Why isn't there a role for every semantic in the EPUB Structural Semantic vocabulary?
The EPUB Structural Semantic vocabulary was designed primarily to provide semantics for publishers' internal workflows. It was hoped that the attribute would be able to serve a dual purpose of providing accessibility mappings for useful roles, but this hope never materialized into a workable solution. Assistive technologies are not aware of the
epub:typeattribute and there is no interest in trying to reconcile it with the existing ARIA roles.
The result is that the EPUB vocabulary contains far more semantics than will ever be necessary to improve the actual usability of publications. Implementing all of the semantics in a publication would likely just overload users with unnecessary information and make it harder for them to effectively read the publication (i.e., it would create a lot of semantic noise while reading).