We're excited to announce the launch of aXe 2.0, an updated version of our open source accessibility testing engine! Since the initial announcement last year, we've made improvements to many rules and checks, introduced a plugin system, added configuration options, and enhanced our project's infrastructure. We've seen adoption among developers and QA's with our Chrome and Firefox extensions, plus new integrations with notable development tools. We've also grown our core team and held our first hackathon!
I wrote this post to recap our efforts this year and introduce you to the newest version of aXe. Read on to learn more about the evolution of our accessibility testing engine, and how you can get involved.
To make the aXe engine more robust while preserving our "no false positives" manifesto, we've made many improvements to the rules and checks required for reliable accessibility audits. Because the aXe engine also powers our browser extensions and test integrations, the benefits of these improvements extend beyond the standalone axe-core module.
Here are some highlights of our improvements to aXe:
- Added official support for the axe.configure() function
- Added a reset() function to allow settings to be reset to the defaults after calls to axe.configure()
- Added the plugin system, including registerPlugin() and cleanup()
- Removed the tools functionality (replaced by the plugin system)
- Added support for universal module design so that axe-core can be included in Node.js, Require JS and browsers without any code changes or different versions
- Modified the mappings of all Section 508 rules
- Changed the tags for the detailed paragraph mappings of the Section 508 rules
- We added support for ES6 in our development workflow
- Added support for passing errors back to the caller when exceptions occur within rules or checks
- Converted all the uses of commons and utils within the rules and checks into uses of the global axe.utils so that the standard rule sets can be exported programmatically
- Allow checks and rules to have functions implemented as strings
- Multiple axe-core versions with a different application and/or version number will no longer cause problems by interfering with one another
Development on this project is supported by Worldspace Attest, the enterprise counterpart to aXe which offers premium features and customized support. This working relationship allows us to finance new features and later offer them for free in our open source aXe library.
One of our goals with aXe is to make accessibility testing easy in modern development workflows. With so many development tools out there, there are many opportunities for integrations into text editors, browser developer tools, testing frameworks, and more.
This year, we've seen new integrations from 3rd-parties with more on the way. Two notable tools came from Microsoft, while the CrawlKit runner was created by Joscha Feth from Atlassian:
Deque CTO Dylan Barrell created a module for testing React applications with aXe:
Got an idea for an accessibility testing tool using axe-core? Get in touch with the team by filing an issue on Github.
We've had some very helpful pull requests and issue discussions on Github, and we'd like to acknowledge our open source contributors for their time and input:
- Dave Sturley
- Mike Kozlowski
- Dylan Barrell
- Ian Kelly
- Dian Fay
- Jason Karns
- Marcy Sutton
- Keith Rhodes
- Yura Zen
- Jesse Beach
- Sophia Kotov
- Cameron Cundiff
- Mads Kristensen
- Sam Jones
- Joscha Feth
- Matt Isner
- Brian Sipple
- David Catuhe
- Ben Rogers
- Sarbbottam Bandyopadhyay
- Ian McLean
- Trevor Pierce
- James Nurthen
- Martin Bayly
- David MacDonald
- Michael Gerakis
- Rob Fentress
- Paul Bohman
- Catherine Wilkinson
- Shane Anderson
Thank you to everyone who contributed! Your feedback helped us make aXe even better.
Out and About
From the Deque Labs team, Dylan Barrell, Wilco Fiers and I contributed a number of presentations and workshops on automated testing with aXe in the past year. We were proud to present at CSUN, John Slatin AccessU, Girl Develop It Ann Arbor, the official AngularJS Mountain View meetup, as well as a virtual presentation for the Hillary for America campaign in Brooklyn.
With the 2.0.5 release, we'd love to get your feedback on the latest changes to rules and checks as well as newer features like axe.configure(). If you encounter problems - or if you have tremendous success - we want to hear about it! File an issue on Github or come chat with us in the axe-core Gitter room.
In addition to core feature development, we're participating in a new W3C task force for automated accessibility testing, Auto-WCAG. aXe team member and Auto-WCAG chair Wilco Fiers is leading the charge. Through this work, we're continually striving to improve accessibility in development workflows by establishing test standards. Read more about Auto-WCAG.
We have a few ideas for the future of aXe, including improved usability for rules and messages as well as results localization. This is where you can help: vote for the items on your wish list by getting in touch with us on Github. With your submissions, we can focus our attention on the features that will help you the most in creating a more accessible web.
Marcy Sutton is a Senior Front-End Engineer at Deque, where she works on the aXe-core team focusing on accessibility test integrations. Marcy is passionate about making the web accessible for everyone. She's an active contributor to the Angular framework, where she regularly brings her accessibility expertise to the table. Her blog, Accessibility Wins, highlights accessible user interfaces and tools, contributing a positive voice to the web development space. When away from the keyboard, Marcy can usually be found riding a bicycle or a snowboard.