Canadian Web Accessibility Leagueby Bayhan TechnologiesBeta

← All rankings

Methodology

This page describes the municipal leagues. For the governments league, see the governments methodology.

Which municipalities are included

The league covers Canadian municipalities province by province, starting with Alberta and Saskatchewan. Each province league includes municipalities whose communities have 1,000 or more residents — as defined by Statistics Canada's 2021 Census population centres (an area of at least 1,000 people with a density of at least 400 per km²). Where a population centre is a hamlet within a county or municipal district, the responsible municipality is the county, and its website is the one tested. Inclusion is rule-based: no municipality is added or omitted by choice. The list will be refreshed when 2026 Census population counts are published.

First Nations are sovereign governments, not municipalities, and several Census population centres are communities on First Nations lands. Out of respect for that jurisdiction — and for First Nations ownership and control of data about their communities — we do not test or rank First Nations government websites, and their absence from a province league is deliberate, not an oversight. A First Nation that would like its website tested and listed is warmly invited to contact us: like everything else in the league, it is free. Military bases and other federally operated sites are likewise outside the league's scope.

What we test

Each municipality's public website is crawled and tested with axe-core, the industry-standard open-source accessibility engine, against WCAG 2.2 Level A and AA rules (including W3C ACT rules). We aim for full-site coverage: every page discovered by following the site's own internal links, the same way a resident browses. The number of pages tested is shown for every municipality; calendar and other machine-generated date-pagination pages are excluded so page counts reflect real content.

Every site is tested with identical tools, identical rules, and a deliberately gentle crawl rate designed to be indistinguishable from light human browsing. We respect technical barriers: if a site's security system blocks our testing, we stop and list the site as insufficient data — we never publish a score from an incomplete or unreliable sample, and we never attempt to work around a block.

How the score works

The health score (0–100) reflects the number and severity of WCAG 2.2 A/AA issues detected per page, averaged across all pages tested. Because it is a per-page average, scores are comparable between sites tested with different sample sizes. Issues inside embedded third-party content (for example a video player) are reported but excluded from the score, since they are typically outside the municipality's direct control. AAA and best-practice observations are reported for information only and never affect the score.

In detail: every page starts at 100 points, and each confirmed WCAG 2.2 A/AA violation subtracts points weighted by severity:

Repeated instances of the same issue on a page count with diminishing weight (the first instance counts fully; each additional instance adds a square-root-scaled fraction), so one template error repeated a hundred times lowers the score meaningfully but does not zero it. A page never goes below 0.

The site score is the plain average of all page scores, rounded to one decimal. Findings beyond WCAG 2.2 AA (AAA and best-practice checks) are reported as enhanced accessibility and never reduce the score. Every site in the league is scored with identical parameters — same engine, same rules, same weights — which is what makes scores comparable between municipalities.

What the score is not

Automated tools can verify roughly a third of WCAG 2.2 success criteria — the machine-checkable subset. Because that subset accounts for most real-world defects, automated scans typically surface the majority of issues by volume (Deque, the maker of axe-core, reports about 57%) — but coverage of criteria and coverage of issues are different measures. A score of 100 therefore does not mean a site conforms to WCAG, and a lower score is not a determination that a municipality fails any legal obligation. Full conformance evaluation requires manual expert testing. The scores published here are the opinion of Bayhan Technologies Inc., produced by our software using the methodology on this page.

Corrections, retests and opt-out

We believe a public index carries public obligations. Any listed municipality may, at no cost:

Contact: info@civicpermit.solutions.

Why we publish this

Municipal websites are essential infrastructure: property taxes, recreation registration, emergency information. Roughly one in five Canadians lives with a disability, and machine-detectable barriers are the easiest ones to find and fix. This index exists to celebrate the municipalities doing well and to give every council a free, concrete starting point. Bayhan Technologies sells accessibility assessment services; this index is free, and no municipality is ever required to engage us to be listed, corrected, retested or removed.