I am excited to announce that today the WAI-ARIA Authoring Practices 1.1 has become a Working Group Note at the same time that the Accessible Rich Internet Applications (WAI-ARIA) 1.1 became a W3C Recommendation. The Authoring Practices Guide, or APG, has been the focus of a dedicated group of people in the APG Task Force for the past three years.
WAI-ARIA provides attributes that web content authors can use to declare accessibility semantics, and it is supported by accessibility API mappings that define how browsers expose those semantics to assistive technologies. More information about what’s new in WAI-ARIA 1.1 is available in the email announcement.
Since WAI-ARIA 1.0 became a recommendation, it has become increasingly clear that composing effective ARIA can be tricky. Because the ARIA specification is designed for browser implementers, it is difficult for content authors to identify all the ARIA features needed for a given design pattern. In addition to understanding what is required to comply with the WAI-ARIA specification, designing ARIA implementations sometimes also requires extensive knowledge of accessibility APIs and how assistive technologies render GUI experiences. Effective design has been further complicated by inconsistent support of ARIA features by assistive technologies, sometimes due to disparate interpretations of the ARIA specification. Moreover, many authors don’t realize that there are other steps they need to take, beyond using ARIA itself, to make the content fully usable.
The APG is designed to demystify ARIA implementation for content authors and clarify its meaning for assistive technology developers. To this end, the core of the APG is a set of design patterns for common web-based GUI widgets. Each pattern describes the purpose of the widget, provides guidelines for use where appropriate, explains best practices for applying ARIA roles, states, and properties, and defines the expected keyboard interface.
Because browsers do not provide keyboard support for ARIA widgets like they do for native HTML input elements, and because operability with a keyboard is an essential dimension of accessibility, authors need to provide code that implements the set of keyboard commands conventionally associated with the role, or roles, used in the composition of a widget. Each pattern enumerates the set of keyboard assignments and corresponding functions expected for the widget. The APG keyboard interaction models are based on common experience with similar GUI widgets in native platforms so they can both provide familiar and predictable user experiences and enable assistive technologies to guide their users.
Perhaps most important, the APG design patterns are complemented by functional example implementations that demonstrate the design pattern in action and provide authors with a starting point for developing their own versions. We have kept the examples simple so inspecting the code and understanding its accessibility features is relatively easy. If you do have questions or discover a problem, use the link for reporting an issue on GitHub that is at the top of every example page. Before doing so, however, please read the information about browser and assistive technology support that can also be reached from a link adjacent to the link for reporting an issue.
The APG is published under the W3C Software and Document License which allows re-use of code snippets with attribution. So, as long as you have reviewed the caveats outlined in the Read Me First section of the guide, we encourage you to use these resources as a starting point for your own work.
In addition to the widget patterns and examples, the APG includes several sections of guidance on topics and concepts related to applying ARIA to the design of a site. Such topics include designing and implementing ARIA landmark regions, developing a keyboard interface, properties for complex tables and grids, and the effects of the presentation role.
While this release of the APG is not yet the comprehensive ARIA reference envisioned by the task force, we have had a lot of feedback from the community that it is a useful resource. Publishing this first release of the guide as a Note now allows it to support the finalization of WAI-ARIA 1.1. We are planning regular updates, and the second release is slated for spring 2018. You can see the set of topics and examples targeted for each release in our milestone plan. Beyond WAI-ARIA Authoring Practices 1.1, work on future versions of WAI-ARIA authoring Practices will parallel work on new versions of WAI-ARIA to ensure there is useful guidance for all ARIA features as they come available.
I want to thank all the active participants in the APG task force for their hard work as well as the many people who submitted comments and pull requests in the ARIA Practices GitHub repository. We are all glad to see this come to fruition!