Back to Work

WCAG 2.1 AA Audit & Remediation Practice

Building an accessibility practice for enterprise clients — and the municipal parking site that showed why it was needed

Client Enterprise clients, via EY
Challenge Accessibility as a pre-launch scramble
Outcome Moved upstream into design

The Problem

Accessibility kept arriving too late. On enterprise engagements it was treated as a review step near launch — a box to tick once the design was settled, the build was done and the budget was mostly spent. By then the expensive problems were structural, and the cheapest moment to have fixed them had passed months earlier.

A large municipality's public parking website made the case better than any argument could. It was a service people had to use — residents paying for permits, contesting tickets, finding out where they were allowed to leave a car — and its accessibility was poor.

The audit surfaced three problems that ran through the whole site:

  • Colour contrast failures throughout the interface, making text hard to read for anyone with low vision — and in ordinary conditions like bright daylight on a phone
  • Non-descriptive HTML — markup that carried no meaning for assistive technology, so a screen reader could announce that something was there without conveying what it was or did
  • Tabbed navigation that could not be operated — a core wayfinding pattern that keyboard and screen reader users could not reliably move through

Individually these read as defects. Together they meant a mandatory public service was hardest to use for the people most likely to depend on it.

Our Approach

Two things had to happen at once. The immediate work was auditing and remediating what already existed. The lasting work was making sure the next site didn't arrive in the same condition — which meant reaching the people making decisions long before code got written.

Audit at Code Level

Ground the findings in what is actually in the markup, using axe to produce specific, reproducible, code-level results rather than subjective impressions.

Translate, Then Prioritize

Turn success criteria into plain guidance that creative, brand and development teams could act on, ordered so the work started where it mattered most.

Move It Upstream

Advocate for every designer to complete AODA training, so accessibility entered the process at the point where the cheapest decisions get made.

The Solution

The practice that came out of this engagement had a repeatable shape: audit against the standard, evidence every finding in the code, translate the results for the people who had to act on them, then close the loop by training the teams upstream.

Code-Level Audit with axe

Recommended and ran the audit against axe findings, so every issue pointed at a specific element and a specific success criterion. That made the results arguable in the right way — a developer could confirm or dispute a finding by looking at the code, rather than debating opinions about design.

Contrast Remediation

Identified the contrast failures across the interface and gave the brand team ratios to design against rather than colours to avoid — so the palette could survive the fix instead of being overridden by it.

Semantic, Descriptive Markup

Replaced markup that carried no meaning with elements that describe what they are, so assistive technology could convey the structure of a page instead of just its contents.

Operable Tabbed Navigation

Rebuilt the tabbed wayfinding so it could be reached, moved through and understood by keyboard and screen reader — the difference between a service being technically present and actually usable.

Guidance Non-Specialists Could Use

Translated findings into prioritized guidance and job aids for creative, brand and development teams who don't read success criteria for a living. This was the part that mattered most — an audit nobody can act on is a document, not an outcome.

AODA Training for Every Designer

Advocated for all designers to complete AODA training. Auditing at the end catches problems one project at a time; training the people who set type sizes, choose colours and lay out navigation prevents them across every project that follows.

The Results

The parking site's failures were identified at code level and remediated against WCAG 2.1 AA — contrast brought to standard, markup made descriptive, and the tabbed navigation made operable for keyboard and screen reader users.

The more durable result was where accessibility sat in the process. Getting designers through AODA training moved it from a pre-launch review into the design stage, which is the only point where structural accessibility problems are cheap to avoid. Accessibility became a delivery input rather than something discovered at the end.

That shift is the whole reason this practice exists in the first place, and it is the standard applied to every project on this site.

Have something like this?

Twenty minutes is usually enough to work out whether we can help, and we'll tell you if we can't.

Book a 20-minute call
Next Project

WordPress Fleet Audit