Introducing aXe 2.0!

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.

Core Updates

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

Reduced the size of the JavaScript file by eliminating the duplicate source

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.

New Integrations

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:

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.

On July 13 (and on YouTube after the event), you can catch the axe-core team on the JavaScript Air podcast. In the following weeks and months, I will speak about testing with aXe at npm camp in Oakland, WebExpo in Prague and Angular Connect in London, UK. Come say hi and get axe-core stickers!

What’s next?

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.