Skip to content

Case study

A bilingual municipal site residents can actually finish

A municipality of roughly 60,000 residents in eastern Ontario was serving the public through a thousand pages and a pile of untranslated PDFs. We rebuilt it on paired English and French records, tested to WCAG 2.2 AA component by component.

Named only with client approval Figures marked are illustrative Reply within one business day

oldevs.com1.8s · 100
Request a quote

The engagement, in short

OlDevs rebuilt the website of an eastern Ontario municipality on a typed content model in a headless CMS, where every service, fee, bylaw and notice is a record with paired English and French fields, so nothing can publish half translated.Templates were built to WCAG 2.2 AA and tested by keyboard and screen reader component by component, and the standing PDFs became real pages. Content consolidation took the site from 1,100 pages to 380, WCAG 2.2 conformance was verified at AA, and calls to the service desk fell 41%.

Key facts

01Client
A municipality of roughly 60,000 residents in eastern Ontario serving the public in English and French
02Industry
Public sector
03Services
Web development, full-stack development
04Duration
7 months
05Platforms
Headless CMS with paired EN and FR fields, server rendered front end
06Outcome
1,100 pages consolidated to 380, WCAG 2.2 conformance verified at AA

The challenge

A thousand pages, and half of them PDFs

The site had grown past a thousand pages, many of them PDFs posted by individual departments with no French version and no real heading structure. Residents using a screen reader could not finish a service request, so staff spent the day answering the phone for information that technically existed online. An accessibility review had already put the gaps in writing.

01

Service requests that could not be completed

A resident using a screen reader could reach a service request form and still not finish it, because the form had never been built to be completed without a mouse. The failure was invisible to anyone testing it the same way it was built.

Accessibility · Forms

02

PDFs standing in for pages

Departments published fees, bylaws and notices as PDFs uploaded straight to the server. They had no real heading structure and often no French version, so search could not index them properly and assistive technology could not navigate them.

Content · WCAG 2.2

03

Translation that arrived late or never

English pages went live while the French version waited in a queue, and nothing in the system prevented it. Residents working in French hit stubs, outdated fees or an English page behind a French title, which is a service failure as well as a compliance one.

Bilingual · Governance

04

The phone as the real interface

Because residents could not reliably find or finish anything online, the service desk answered the same questions all day for information that was already published. Staff time went to reading the website aloud instead of the cases that need a person.

Service delivery · Operations

What we built

Paired records, accessible templates, no orphan PDFs

OlDevs rebuilt the site on a typed content model in a headless CMS, where every service, fee, bylaw and notice is a record with paired English and French fields, so nothing can publish half translated. Templates were built to WCAG 2.2 AA and tested by keyboard and screen reader component by component, and the standing PDFs became real pages. Editors now follow a short checklist inside the CMS instead of an accessibility policy nobody read.

01

A typed bilingual content model

Services, fees, bylaws, notices and locations are typed records rather than free pages, each with paired English and French fields. Publishing is blocked until both languages are filled, so a resident never lands on a stub or a page in the wrong language.

Headless CMS · Bilingual

02

Templates tested to WCAG 2.2 AA

Every component was built and then checked by keyboard, by screen reader and against contrast and target size criteria before it entered the library. Conformance was verified across assembled templates rather than claimed from an automated scan.

WCAG 2.2 AA · Accessibility

03

PDFs turned back into pages

The standing documents residents actually need, meaning fees, schedules, bylaws and application steps, were rebuilt as structured pages with real headings in both languages. Archival files that must stay as documents now carry a plain summary beside them.

Content migration · Search

04

An editor checklist inside the CMS

Guidance sits where the work happens: alternative text prompts, heading order warnings, plain language reminders and a French field that will not let a record publish empty. Editors get feedback while writing rather than in an audit months later.

Editorial workflow · Training

Process

How the engagement ran.

  1. Audit and inventory

    We crawled the full site, listed every page and PDF, and recorded traffic, French coverage and the specific accessibility failures already named in the municipality's own review.

  2. Decide what survives

    With department leads we sorted the inventory into keep, merge, rewrite and retire, which is how a site of 1,100 pages became a planned set of 380 records.

  3. Model and build

    We designed the typed content model with paired language fields, then built templates component by component, with a working demo for staff every week of the build.

  4. Test by keyboard and screen reader

    Each component was checked by keyboard, by screen reader and against contrast rules before joining the library, and full page templates were retested once assembled.

  5. Migrate, train and launch

    Content moved into records in both languages, redirects were mapped from the old URLs, and editors were trained on the in CMS checklist before the new site went live.

Stack

What it was built with.

Front end

Server rendered templatesSemantic HTMLAccessible component libraryProgressive enhancementResponsive layouts

Content

Headless CMSTyped recordsPaired EN and FR fieldsPublishing rules and workflowEditorial checklist

Accessibility

WCAG 2.2 AA criteriaKeyboard testingScreen reader testingContrast and target size checksAutomated accessibility scanning

Search and structure

Bilingual URL structureXML sitemapsStructured data for servicesRedirect map from legacy URLs

Delivery

Git based workflowPreview environmentsCDN hostingUptime monitoring

1,100→380

Pages after content consolidation

AA

WCAG 2.2 conformance verified

−41%

Calls to the service desk

Outcomes

What changed for the client.

01

Residents can finish the task

A service request can now be completed end to end by keyboard and by screen reader in either language, which is what a resident using assistive technology could not do before.

02

Far less to maintain

Content consolidation took the site from 1,100 pages to 380 records, so departments look after a smaller, accurate set instead of a decade of duplicates and loose PDFs.

03

Conformance that can be shown

WCAG 2.2 conformance was verified at AA component by component, giving the municipality evidence it can point at rather than an assurance that a scanner found no errors.

04

The phones ring less

Calls to the service desk fell 41% as residents found and completed online what they previously had to ask for, freeing staff for the cases that need a person.

In their words

The client on the result.

Residents finish a service request in either language without phoning us, and our editors stopped guessing what accessible means.
AM

Communications lead, mid-sized Ontario municipality

Public sector

FAQ

Questions about work like this.

The content model treats language as part of the record, not a separate page tree. A service or a fee has English and French fields side by side, and the publishing rule refuses a record with a required French field left empty. Editors see the gap while they are still writing, so half translated content never reaches a resident.

No. Automated tools catch a useful minority of issues, mostly contrast, labels and structure. We test each component by keyboard and with a screen reader, check target sizes and focus behaviour, then retest the full templates once assembled. Automated scanning runs in the pipeline as a safety net, not as the evidence.

The documents residents actively use, such as fees, schedules, application steps and bylaws in force, were rebuilt as pages with proper headings in both languages so they can be searched, linked and read aloud. Genuine archival records stay as files, published with a plain language summary and context beside the link.

We crawled the site, then reviewed every page with the department that owns it against traffic, legal need and whether the information was still true. Each page was marked keep, merge, rewrite or retire, and anything retired kept a redirect. That review is how 1,100 pages became 380 records.

Yes. Editors work with typed records and a short checklist built into the CMS, so adding a fee or a notice means filling in fields rather than shaping a layout. The templates hold the accessibility rules, which means an editor cannot accidentally break heading order or contrast. You own the code and the CMS configuration outright.

Still have a question? Ask us when you request a quote

Let’s connect

Have a problem like this one?

Tell us what is not working. We’ll reply within one business day with how we would approach it and a tailored quote.

We’ll only use your details to prepare your quote. No lists, no spam.

Call us Request a quote