NEXSUM_LABS
  1. Home
  2. Work
  3. A council's resident-services portal passed its accessibility audit and kept its design
Book a call

[ Case study ]

Public sectorFigmaWCAG 2.2 AA audit checklistDesign tokensExternal accessibility audit

A council's resident-services portal passed its accessibility audit and kept its design

The portal failed its accessibility review: contrast failures across the brand palette, focus order broken on 30 screens, and forms whose error states were color-only. A rebuild was proposed; the council wanted its design fixed, not replaced.

CLIENT a city-council resident-services portal — FOCUS Fix the tokens, not the symptoms

Figma UI/UX DesignDesign & BrandingFigma UI/UX DesignPublic sectorRepresentative example
Client
a city-council resident-services portal
Industry
Public sector
Engagement
8 weeks — experience pod — 2 designers
Service
Design & Branding / Figma UI/UX Design
Headline outcome
WCAG failures on the external audit, re-test after remediation: 41 → 2, read from External accessibility audit

Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.

Where they started

One developer and a communications officer run a city council's resident-services portal — waste collections, housing requests, permits, and payments for a population that includes a large retiree cohort. The portal was built by a vendor contract that ended two years ago. The council's brand palette and typography are set by corporate identity guidance the communications office applies everywhere, from bin stickers to letterheads, and residents' groups review major content changes.

What it was costing

The portal failed its accessibility review: contrast failures across the brand palette, focus order broken on 30 screens, and forms whose error states were color-only. A rebuild was proposed; the council wanted its design fixed, not replaced.

What they could see

  • The external audit came back with the kind of backlogged findings list every public-sector team recognizes — contrast failures across the council's brand palette on nearly every page.
  • Keyboard users hit dead ends — focus order broke across page after page, and some forms trapped focus entirely.
  • Form errors were signaled by red coloring alone, which screen readers and color-blind residents never received.
  • A rebuild had been floated at senior level; staff who liked the current design felt the baby leaving with the bathwater.

The constraints we worked inside

  • Public-sector accessibility standards (WCAG 2.2 AA) were the acceptance bar, tested by an external auditor.
  • The brand palette was council identity — the fix had to adjust, not abandon it.
  • Resident feedback shaped content; changes couldn't hide behind design jargon.

What had been tried before

The developer applied inline contrast fixes to the worst-flagged screens, darkening backgrounds and swapping text colors page by page.
Point fixes fought the theme's shared styles, so some corrections drifted back within weeks and the next audit flagged pages previously patched — effort without a system.
The communications office bought an automated accessibility scanner and ran it monthly against the portal.
Automated tools catch roughly a third of WCAG issues and none of the focus-order or color-only problems; a green dashboard bred confidence the manual audit demolished.
A no-code portal plugin promising accessible templates was trialed on the forms section.
The templates couldn't express the council's branding or its payment integrations, and the vendor contract that built the portal had already ended — no one could extend it.

What we proposed

We proposed fixing the system instead of the screens: re-tune the brand palette at the token level so it passes contrast while remaining recognizably the council's identity, then design the states the portal never had — visible focus, text-based error messages, keyboard paths — and repair screen by screen against the auditor's checklist, with the external re-audit as the gate. The audit's failures clustered, so a token change could resolve whole families of findings at once. Content stayed in the communications officer's hands, rewritten in plain language rather than design vocabulary.

Just as important is what we ruled out, and why:

  • Replacing the portal with an accessible off-the-shelf government platformProcurement would take longer than the remediation, integrations with housing and payments systems would need re-building, and residents had just relearned the current portal's quirks.
  • Abandoning the council palette for a compliant high-contrast schemeThe palette is corporate identity applied across every council surface; the token math showed compliant values existed inside the brand — abandonment solved a problem the palette didn't have.
  • Only remediating screens flagged in the auditPoint fixes had already failed once; without token-level propagation the same failures would resurface on every screen sharing the styles — the audit findings were symptoms, not the population.

How the work ran

01Fix the tokens, not the symptoms

The palette was re-tuned at the token level to pass contrast while staying recognizably the council's brand — one change, propagated everywhere.

02Design the states screens never had

Focus rings, error messages with text (not color alone), and keyboard paths were designed for every form — the failures were mostly states that never existed.

03Prove it screen by screen

Each repaired screen was re-audited against the checklist before moving on, with the final external audit as the gate.

Delivered by the experience pod — 2 designers over 8 weeks, with working increments reviewed with the client every week.

The stack, and the reasoning

Figma
The one developer and communications officer could both read the design file without training, so token changes and repaired screens stayed visible to the whole two-person team.
WCAG 2.2 AA audit checklist
Working directly from the external auditor's criteria meant every repair mapped to a numbered finding — no effort spent on improvements nobody was testing.
Design tokens
Our own analysis found the contrast findings clustered on the brand palette, so re-tuning four variables at token level propagated fixes across every screen at once — that concentration was ours to claim, and the re-audit bore it out.
External accessibility audit
The re-audit was the acceptance gate by design — the council needed a defensible, third-party verdict for governance, not our own assessment of our own work.

What went wrong

Obstacle

We audited screens one by one before running the token contrast math, and only then found the contrast findings clustered on a handful of palette variables — weeks of screen-level work had hidden the concentration from us.

Handled: We stopped, ran the contrast math first, re-tuned the four tokens, and re-baselined the checklist; whole families of findings closed in one pass and the remaining work was genuinely screen-specific.

Obstacle

The external auditor interpreted the focus-visible criterion more strictly than our checklist — three repaired screens passed our review and failed the auditor's spot-check on the same keyboard path.

Handled: We requested the auditor's test script in advance and reconciled our checklist to it, reworking the three screens and adding the stricter focus treatment to every form still in the queue.

How we worked together

Cadence
A weekly repair review with the developer and communications officer, screen by screen against the checklist; the external auditor ran two milestone calls.
Client side
The developer implemented, the communications officer rewrote content and fielded residents' groups, and the corporate communications lead approved every palette adjustment.
Decisions
The auditor's checklist settled design disputes by default; anything touching council identity went to the communications lead, who approved each token change with the brand guidance open.
They provided
Read access to the portal's theme and templates, the corporate identity guidelines, audit reports from the vendor era, and content-rewrite hours from the communications officer.

What changed

The headline: wcag failures on the external audit, re-test after remediation41 → 2, read from External accessibility audit. A second check: brand-identity changes required to get there at 0.

The design survived, which mattered more to the council than the compliance number did — residents still recognize their portal, and the communications office stopped bracing for identity arguments. The developer now checks contrast at the token level before building new screens, because the math that found four root variables became a habit. Forms that used to swallow keyboard users now announce their errors in words, and the retiree-heavy cohort the residents' groups kept mentioning can finally complete a housing request unaided.

The result was read from External accessibility audit against the pre-engagement baseline over the stated window, with a guardrail check on brand-identity changes required to get there. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.

What they own now

  • The contrast-compliant token set mapped to the council's approved brand guidance
  • The repaired screen library with designed focus, error, and keyboard states
  • A screen-by-screen audit checklist reconciled to the external auditor's test script
  • A plain-language accessibility notes sheet for the communications officer's content work
  • The re-audit report and remediation log for governance and procurement records

What we would do differently

We would have run the token contrast math before auditing screens — two-thirds of the findings traced to four variables, which we found late.

Design & BrandingFigma UI/UX DesignPublic sectorFigma

Next case study

A field-service app was redesigned in the van, not the meeting room