Tuesday, October 14, 2025

Web for All: Enhancing Quality Intelligence with Automated Accessibility Testing using Playwright and axe-core with Rodrigo Silva Ferreria

Sometimes what we expect to happen doesn't. I was looking forward to Rodrigo Silva Ferreria speaking about Accessibility testing and Accessibility Automation. However, due to technical difficulties and him not being able to connect to the Zoom session (he was presenting remotely), I was asked to pinch hit at the last minute, which I did (I shared my most recent version of "Senses Working Overtime" that I presented at CAST back in August). However, I was all prepared to do a session on Rodrigo's talk, and I read his paper in anticipation for it, so rather than talk about the presentation I gave, I'm going to talk about the presentation Rodrigo would have given, using his paper as the basis.

One of the recurring themes at PNSQC is that quality is holistic. It’s not just about performance or reliability, but about inclusion and usability for everyone. Rodrigo Silva Ferreira’s paper Web for All: Enhancing Quality Intelligence with Automated Accessibility Testing using Playwright and axe-core” emphasizes this by showing how teams can bake accessibility (a11y) directly into their test automation workflows.


Rodrigo starts by reminding us that accessibility isn’t optional, it’s a moral, legal, and usability imperative. Yet too many teams still treat it as an afterthought. Manual audits take time, training is scarce, and accessibility issues often get discovered long after release. By then, the fixes are costly, the users are frustrated, and sometimes lawsuitas are incoming.

Manual a11y testing will always have a role, but it doesn’t scale. Rodrigo’s approach uses Playwright in combination with axe-core from Deque Systems. Together, they create an efficient and repeatable testing loop that fits naturally into CI/CD pipelines.

The result: accessibility checks happen early and continuously, not just during audits.

The Tools: Playwright + axe-core

Playwright handles the browser automation (navigating pages, interacting with UI elements, capturing screenshots, etc.) while axe-core brings the accessibility intelligence, scanning for WCAG violations, tagging them by severity, and suggesting fixes.

By taking the @axe-core/playwright package, we can inject axe-core into the current browser context. After a page or component is loaded, it performs an automated scan and outputs results as machine-readable data (JSON/HTML). The flow is go to the page in question, inject the call for axe-core, save the output as an object, and then that will alow you to print out the results as either an HTML or JSON output. What you do with the object contents is entirely up to you.

Setting It Up

The paper walks through the steps of integrating these tools into a test suite:

  • Install @axe-core/playwright alongside Playwright
  • Configure the environment (Node.js, CI/CD, etc.)
  • Add a simple accessibility test — e.g., scan a page and report any violations
  • Include tests in GitHub Actions or another CI system so they run automatically on each PR or nightly build

Rodrigo emphasizes keeping it low-maintenance. The goal is to empower QA and dev teams to start small and expand coverage organically.

After implementing the approach, Rodrigo’s team observed:
  • Broader coverage of A11Y across key pages and user flows
  • Earlier defect detection (shift-left in action)
  • Improved team awareness and ownership of accessibility
  • Fewer regressions and less rework later in the SDLC

Automation didn’t replace manual audits, it amplified them by catching the easy stuff early, so specialists could focus on deeper, context-specific checks.

Key Takeaways

By integrating A11Y automation into standard test pipelines, teams reinforce the idea that accessibility isn’t “someone else’s problem.” It becomes part of the fabric of software quality.

Rodrigo closes with a challenge: start small. Pick one key flow, one component, one page, and add automated accessibility checks. From there, grow. Over time, this builds a sustainable, inclusive testing strategy that benefits every user.

If you want to try out what Rodrigo suggests, here's what you need to get  started:

  • Playwright – Microsoft’s end-to-end testing framework
  • axe-core – Deque Systems’ open-source accessibility engine
  • WCAG Guidelines – W3C Web Content Accessibility Guidelines
Again, happy to talk to these topics but I had wanted to hear Rodrigo's presentation directly. Hopefully for some, this will be at least a substitute for that.

Being a Change Agent with April K Mills (Welcome to PNSQC Live Blog Stream)

Hello all, and welcome to PNSQC, coming at you from Portland State University Place Hotel and Conference Center. Some of you may be hearing concerning things coming from Portland and having been here for two days now in real time, it is absolutely quiet and normal here (though I must confess that the media I have seen of protests with people in frog and chicken suits, I love how absolutely unserious Portland is. We literally started the conference with "The Beat Goes On" marching band (I will upload and link media when I get the chance).

Everyone is a Change Agent

Our first talk/keynote today is coming from April K. Mills, and her talk is "Everyone is a Change Agent". I had a chance to discuss this wth April in our PNSQChronicles vidcast (will link here later), but the key point here is that change agents don't have to be high-power, in-charge people. Every one of us has the capability, and I'd argue the responsibility, to be the change agents our organizations need. To borrow from an idea I agree with a great deal, "everyone needs to stand for something, even if doing so means we have to stand alone".

One of the ideas that April is recommending we start right now to do and be a change agent is to stand against and fight the spread of "AI Slop." How many of us have found ourselves literally struggling with and drowning in AI-generated content in our organizations that seems to say a bunch but doesn't really mean anything? I have run into this a fair bit in social media, but it is absolutely creeping into publications and corporate marketing missives. I saw a person online coin a phrase I have now started using: "AI;DR".

Note: I use this when I am seeing obvious AI output that has been generated, reads as completely soulless, and you can see that much of it is not factual or is genuinely wrong in various areas. In these cases, I do believe that announcing "AI;DR" is an excellent response.

YouTube: PNSQChronicles episode with April K. Mills


One of the things I have always appreciated (and I'm quoting Matt Heusser is the wording here) when I come to conferences like PNSQC is that I am not looking to upend the entire world with everything I learned. First of all, it's not practical, and second, systems are developed over time, and there may well be entrenched interests to overcome. Thus, it's not practical to come back from a conference with everything under the sun to overturn everything we do. Instead, we need to find a few areas that we can implement and do so without needing permission to do those things. All of us can do that. We find a way to add a new approach, process, or method based on what we learned, and then, in a few weeks or months, when people are curious as to how we have made key improvements, we can then say/demonstrate what we have been doing. There may be varying barriers to exactly how much we can do in certain areas, but we can all do something in a different way. 

When we can implement an under-the-radar change, it's often a good idea to try it out quietly and see if the change is worth pursuing. Often, we can determine pretty quickly if our brilliant idea may not be so brilliant (or at least we discover the key contexts that help explain why we haven't tried doing this before). Make no mistake, that in and of itself is often a valuable exercise. 

Sometimes the best question we can ask is "Why?" There is an idea called the "Power Paradox" that comes from the idea that people can only do so much because they don't have the power to make changes. We hear that in politics and senior management all the time. If only we could get the people at the top to agree with us and make the changes necessary. Truth be told, we don't always need to do that, and sometimes, the best way to break down that false assumption of power is to ask why we do something (strategically, don't become the kid in the back seat asking, "Are we there yet?" every five minutes). By asking "Why?" at strategic times, we may not sway the people at the top, but we may get more of us at lower levels to also ask why, and if more of us start asking why, that often triggers those higher up to realize that this is an issue that is not serving the people it intends to. Sometimes it takes more than just asking why, but strategic action often starts from just that question.

Key Takeaway: Being a change agent doesn't have to be a major initiative, and we don't have to reinvent the wheel to be a change agent. We don't need to have the right boss, with the right budget, with the right revenue, at the right time to make changes. Often, we can make changes just by trying to do some different things, and often, we can do them without having to ask permission to do so. Start there first and work your way up :).