← Back to QA Journal

Personal

Automating Accessibility Monitoring for My Portfolio with n8n

I wanted to go beyond manually checking my portfolio for accessibility issues, so I built an n8n workflow that automatically monitors my website using automated accessibility testing. With the help of AI, I explored connecting web requests, accessibility checks, and notifications into a workflow that can help me catch issues earlier.

QA Journal
#Accessibility#n8n

After spending time testing and improving my portfolio manually, I started thinking about something:

What if my portfolio could check itself?

Accessibility is something I don't want to think about only when I'm actively working on the website.

As I continue adding features and changing components, there's always a possibility that a new change could introduce an accessibility issue.

So I decided to experiment with n8n and build a small automated accessibility testing workflow for my portfolio.

This became one of my first opportunities to combine QA, automation, accessibility, APIs, and AI-assisted development into one project.


What I Wanted to Build

The idea was to create a workflow that could:

  • Manually trigger an accessibility check
  • Send a request to an accessibility scanning service
  • Scan my portfolio's accessibility test page
  • Process the scan results
  • Identify accessibility violations
  • Automatically create a GitHub Issue when problems are found
  • The overall workflow became:

    plain text
    Manual Trigger
          ↓
    HTTP Request
          ↓
    Accessibility Scanner
          ↓
    /a11y-test
          ↓
    Process Results
          ↓
    Violations Found?
          ↓
    Create GitHub Issue

    Instead of manually checking the test page and documenting every issue myself, I wanted the workflow to turn detected accessibility problems into actionable QA issues.


    Why n8n?

    I've been exploring n8n because of its potential for connecting different tools and automating repetitive processes.

    For this project, I wanted to see if I could use it for something practical rather than simply building a generic workflow.

    Accessibility testing seemed like a good use case because it involves a predictable process:

    Trigger → Check → Analyze → Report

    That made it something that could potentially be automated.


    Building the Workflow

    I started by breaking the process into smaller steps.

    QA Journal image

    Step 1 — Manual Trigger

    For this experiment, I decided to use a manual trigger.

    This allows me to start the accessibility check whenever I want while I'm developing and testing the workflow.

    It also made debugging easier because I could run the workflow repeatedly while making changes.


    Step 2 — HTTP Request

    The next step uses an HTTP Request node to communicate with my accessibility scanning service.

    The workflow sends a request to:

    plain text
    https://a11y-scan.foomworks.workers.dev/scan

    The scanner is responsible for performing the accessibility check against my test page.

    The target page is:

    QA Journal image
    plain text
    https://patriciasugapong.vercel.app/a11y-test

    I created the /a11y-test page specifically as a testing environment where accessibility issues can be intentionally introduced and detected.

    This gives me a controlled system under test instead of relying only on the production portfolio.


    Step 3 — Run Accessibility Testing

    The accessibility scanner checks the test page for potential accessibility violations.

    The checks can identify issues such as:

  • Missing accessible names
  • Color contrast problems
  • Missing alternative text
  • Invalid ARIA usage
  • Heading structure issues
  • Form accessibility problems
  • Other WCAG-related violations
  • The goal isn't to assume that automated testing can find everything.

    Instead, it's another automated layer that can help identify common accessibility issues and turn them into something I can investigate.


    Turning Results Into Something Useful

    One thing I realized while building the workflow is that detecting an accessibility violation isn't enough.

    A raw automated result can contain a lot of technical information.

    What I actually need as a QA is something actionable.

    The workflow therefore processes the scan results and checks whether accessibility issues were found.

    The idea is:

    plain text
    Accessibility Scan
           ↓
    Results Returned
           ↓
    Are There Violations?
           ↓
          Yes
           ↓
    Create GitHub Issue

    This turns an automated scan into a more practical QA workflow.


    Automatically Creating GitHub Issues

    QA Journal image
    QA Journal image

    If the accessibility scan detects violations, the workflow creates an Issue in my GitHub repository.

    This is useful because the accessibility problem doesn't simply disappear into a scan result.

    Instead, it becomes a trackable item that I can investigate and fix.

    For example:

    plain text
    Accessibility Violation Detected
                ↓
           n8n processes result
                ↓
           GitHub Issue created
                ↓
           Investigate the issue
                ↓
              Fix it
                ↓
           Test again

    This creates a simple feedback loop between automated testing and issue tracking.


    Using AI During Development

    AI was also part of the development process.

    I used it to help me understand how the different pieces of the workflow could fit together, particularly when working with n8n nodes, HTTP requests, expressions, and processing the accessibility results.

    It helped me:

  • Break the workflow into smaller steps
  • Understand node configurations
  • Troubleshoot errors
  • Work through JavaScript expressions
  • Process accessibility results
  • Think through different automation approaches
  • This was particularly useful because I was still getting comfortable with n8n.

    Instead of spending a long time trying to figure out an unfamiliar configuration from scratch, I could use AI to explore possible approaches and then test whether they actually worked.


    Testing the Automation

    I also had to test the workflow itself.

    That meant checking:

  • Does the manual trigger work?
  • Does the HTTP request reach the scanner?
  • Does the scanner check the correct URL?
  • Are accessibility violations detected?
  • What happens when there are no violations?
  • What happens when there are multiple violations?
  • Is a GitHub Issue created when problems are found?
  • Does the workflow handle unexpected responses or errors?
  • Is the resulting GitHub Issue understandable?
  • This introduced another interesting layer.

    I'm not only testing the portfolio.

    I'm testing the automation that tests the portfolio.


    What I Learned

    Accessibility testing can be automated, but shouldn't be the only layer

    Automated tools are useful for catching common accessibility issues, but they don't replace manual testing.

    Keyboard testing, screen reader testing, and understanding the actual user experience are still important.

    Automation requires thinking about failures

    It's easy to build the happy path:

    plain text
    Trigger → Scan → Issue Created

    But a useful QA workflow also needs to consider:

    plain text
    No violations
    Multiple violations
    Scanner failure
    Invalid response
    Website unavailable
    Unexpected data
    GitHub Issue creation failure

    Thinking about these scenarios helped me approach the workflow from a QA perspective rather than simply trying to make the automation work.

    n8n can be useful for QA workflows

    This project helped me see n8n beyond general workflow automation.

    It can potentially connect different parts of a QA process:

    plain text
    Test
     ↓
    Process
     ↓
    Analyze
     ↓
    Report
     ↓
    Track

    In this case, the final step is automatically creating a GitHub Issue when an accessibility problem is detected.

    AI helped me learn faster

    AI was especially useful when I encountered unfamiliar n8n configurations or needed help understanding how to connect different pieces of the workflow.

    But I still had to test the workflow myself and verify that the automation actually behaved as expected.


    Final Thoughts

    This project started with a simple question:

    "Can I automate accessibility checks for my own portfolio?"

    It turned into an opportunity to explore how automation could become part of my QA workflow.

    The final workflow is intentionally simple:

    plain text
    Manual Trigger
          ↓
    HTTP Request
          ↓
    Accessibility Scanner
          ↓
    Portfolio Test Page
          ↓
    Process Results
          ↓
    GitHub Issue

    It's still a small experiment, but it's one of the projects that made me more interested in combining QA + automation + accessibility + APIs + AI.

    And honestly, using my own portfolio as the system under test makes it even more useful.

    If I introduce an accessibility issue, I can detect it.

    If the automation catches it, I can investigate it.

    And if the workflow itself breaks?

    Well... I get another thing to test.

    ⚠️ Note: This automation is currently inactive because the n8n Cloud trial has ended. The workflow remains part of the project but is not actively running.