Alberta Municipal Websites
Independent automated accessibility testing of municipal websites, ranked by health score (0–100). Every municipality is tested the same way, with the same tools, at a respectful crawl rate — see the full methodology. Higher scores mean fewer machine-detectable barriers for residents who use assistive technology.
| Rank | Municipality | Score | Critical | Serious | Pages tested | Last tested |
|---|---|---|---|---|---|---|
| 1 | Town of Vulcan townofvulcan.ca | 99.6 | 24 | 29 | 373 | August 17, 2026 |
| 1 | Village of Stirling stirling.ca | 99.6 | 67 | 88 | 1037 | August 16, 2026 |
| 3 | Town of Bow Island bowisland.com | 99.2 | 16 | 55 | 215 | August 17, 2026 |
| 4 | Town of St. Paul stpaul.ca | 99 | 8 | 80 | 234 | August 18, 2026 |
| 5 | Town of Millet millet.ca | 98.8 | 8 | 88 | 149 | August 17, 2026 |
| 6 | Town of Gibbons gibbons.ca | 98 | 37 | 90 | 164 | August 17, 2026 |
| 6 | Town of Peace River peaceriver.ca | 98 | 100 | 793 | 1586 | August 17, 2026 |
| 8 | Town of Bon Accord bonaccord.ca | 97.8 | 16 | 543 | 1206 | August 17, 2026 |
| 9 | Town of Cardston cardston.ca | 97.7 | 60 | 496 | 326 | August 17, 2026 |
| 9 | Town of Edson edson.ca | 97.7 | 74 | 985 | 255 | August 19, 2026 |
| 11 | City of Leduc leduc.ca | 97.6 | 344 | 405 | 635 | August 12, 2026 |
| 12 | Town of Claresholm claresholm.ca | 97.4 | 26 | 747 | 199 | August 17, 2026 |
| 13 | Town of Ponoka ponoka.ca | 97.3 | 196 | 61 | 517 | August 19, 2026 |
| 14 | City of Fort Saskatchewan fortsask.ca | 96.7 | 60 | 558 | 581 | August 15, 2026 |
| 15 | Town of Beaverlodge beaverlodge.ca | 96.6 | 1 | 1166 | 510 | August 17, 2026 |
| 16 | Town of Nanton nanton.ca | 96.5 | 64 | 565 | 459 | August 17, 2026 |
| 17 | Town of Cochrane cochrane.ca | 96.4 | 157 | 833 | 1148 | August 13, 2026 |
| 18 | Town of Morinville morinville.ca | 96.2 | 37 | 355 | 372 | August 19, 2026 |
| 19 | City of St. Albert stalbert.ca | 95.3 | 2333 | 4529 | 2614 | August 15, 2026 |
| 20 | Town of Coalhurst coalhurst.ca | 94.8 | 16 | 441 | 384 | August 17, 2026 |
| 21 | Town of Sexsmith sexsmith.ca | 94.7 | 25 | 1132 | 920 | August 17, 2026 |
| 22 | City of Beaumont beaumont.ab.ca | 94.5 | 1520 | 189 | 661 | August 12, 2026 |
| 23 | Town of Manning manning.ca | 94 | 0 | 103 | 44 | August 16, 2026 |
| 23 | Town of Wainwright wainwright.ca | 94 | 5 | 145 | 105 | August 19, 2026 |
| 25 | City of Cold Lake coldlake.com | 93.3 | 21 | 1013 | 369 | August 19, 2026 |
| 26 | Town of Coaldale coaldale.ca | 93.1 | 102 | 1341 | 723 | August 19, 2026 |
| 27 | Town of Swan Hills townofswanhills.com | 93 | 8 | 696 | 323 | August 16, 2026 |
| 28 | City of Airdrie airdrie.ca | 91.8 | 77 | 1024 | 589 | August 12, 2026 |
| 29 | Town of Fort Macleod fortmacleod.com | 91.4 | 49 | 857 | 167 | August 17, 2026 |
| 30 | Town of Vermilion vermilion.ca | 91.2 | 2 | 3383 | 646 | August 17, 2026 |
| 31 | City of Grande Prairie cityofgp.com | 91 | 135 | 20141 | 3954 | August 16, 2026 |
| 32 | Town of Canmore canmore.ca | 90.4 | 608 | 133 | 528 | August 19, 2026 |
| 33 | Town of Whitecourt whitecourt.ca | 89.8 | 87 | 399 | 118 | August 19, 2026 |
| 34 | Town of Two Hills townoftwohills.com | 89.7 | 61 | 230 | 91 | August 16, 2026 |
| 35 | Town of Hinton hinton.ca | 89.5 | 1000 | 15473 | 2876 | August 19, 2026 |
| 36 | Town of Fox Creek foxcreek.ca | 89.4 | 65 | 3351 | 150 | August 17, 2026 |
| 37 | Town of Magrath magrath.ca | 89.3 | 608 | 848 | 813 | August 17, 2026 |
| 38 | Town of Stony Plain stonyplain.com | 89.1 | 81 | 5311 | 1697 | August 18, 2026 |
| 39 | Town of Raymond raymond.ca | 88.9 | 808 | 2387 | 1633 | August 17, 2026 |
| 40 | Town of Mayerthorpe mayerthorpe.ca | 88.8 | 12 | 167 | 66 | August 16, 2026 |
| 41 | Town of Sylvan Lake sylvanlake.ca | 88.7 | 238 | 7311 | 2507 | August 18, 2026 |
| 42 | Town of Westlock westlock.ca | 88.6 | 35 | 1131 | 401 | August 17, 2026 |
| 43 | Town of Strathmore strathmore.ca | 88.3 | 21 | 1837 | 453 | August 19, 2026 |
| 44 | Town of Diamond Valley diamondvalley.town | 87.9 | 931 | 9070 | 1708 | August 19, 2026 |
| 45 | Town of Grimshaw grimshaw.ca | 87.2 | 1478 | 2900 | 1974 | August 17, 2026 |
| 46 | Town of Devon devon.ca | 86.9 | 147 | 18492 | 3017 | August 19, 2026 |
| 47 | Town of Rimbey rimbey.com | 86.5 | 3 | 1641 | 71 | August 17, 2026 |
| 48 | City of Lacombe lacombe.ca | 86.2 | 553 | 3500 | 612 | August 19, 2026 |
| 49 | Town of High Level highlevel.ca | 86.1 | 406 | 3872 | 834 | August 17, 2026 |
| 50 | Town of Elk Point elkpoint.ca | 85.7 | 10 | 5584 | 178 | August 16, 2026 |
| 51 | City of Wetaskiwin wetaskiwin.ca | 85.2 | 15 | 2116 | 312 | August 19, 2026 |
| 52 | Town of Picture Butte picturebutte.ca | 85 | 14 | 5377 | 170 | August 17, 2026 |
| 53 | Town of Okotoks okotoks.ca | 84.7 | 2213 | 2925 | 1760 | August 13, 2026 |
| 54 | Town of Redcliff redcliff.ca | 84.2 | 1411 | 14856 | 1394 | August 18, 2026 |
| 55 | Town of Vegreville vegreville.com | 84 | 86 | 3126 | 680 | August 17, 2026 |
| 56 | Town of Irricana townofirricana.ca | 82.9 | 27 | 8465 | 660 | August 16, 2026 |
| 57 | Town of Lamont lamont.ca | 82.3 | 14 | 16701 | 518 | August 16, 2026 |
| 58 | Town of Innisfail innisfail.ca | 82.2 | 46 | 15010 | 1645 | August 19, 2026 |
| 59 | Town of Legal legal.ca | 81.7 | 18 | 1412 | 97 | August 16, 2026 |
| 59 | Town of Slave Lake slavelake.ca | 81.7 | 307 | 2269 | 354 | August 19, 2026 |
| 61 | Town of Hanna hanna.ca | 81.2 | 960 | 4307 | 560 | August 17, 2026 |
| 62 | Town of Valleyview valleyview.ca | 80.6 | 347 | 16363 | 748 | August 16, 2026 |
| 63 | City of Spruce Grove sprucegrove.org | 80.2 | 118 | 6932 | 774 | August 15, 2026 |
| 64 | City of Brooks brooks.ca | 78.7 | 563 | 3033 | 352 | August 19, 2026 |
| 65 | Municipality of Crowsnest Pass crowsnestpass.com | 77.8 | 1209 | 1255 | 276 | August 17, 2026 |
| 66 | Town of Bonnyville town.bonnyville.ab.ca | 77.3 | 513 | 10401 | 1055 | August 19, 2026 |
| 67 | Town of Bassano bassano.ca | 77 | 180 | 2138 | 173 | August 16, 2026 |
| 68 | Town of Provost provost.ca | 73.6 | 590 | 1600 | 335 | August 17, 2026 |
| 69 | Town of Calmar calmar.ca | 72.4 | 283 | 13383 | 920 | August 17, 2026 |
| 70 | City of Red Deer reddeer.ca | 71.4 | 289 | 207176 | 3990 | August 15, 2026 |
| 71 | Town of Drumheller drumheller.ca | 68.6 | 5662 | 376 | 857 | August 19, 2026 |
| 72 | Village of Alberta Beach albertabeach.com | 66.8 | 0 | 2020 | 75 | August 16, 2026 |
| 73 | Town of High River highriver.ca | 64.8 | 4827 | 16906 | 871 | August 19, 2026 |
| 74 | Town of Redwater redwater.ca | 63.1 | 883 | 743 | 58 | August 17, 2026 |
| 75 | Town of Stettler stettler.net | 61.3 | 150 | 7344 | 132 | August 18, 2026 |
| 76 | Town of Drayton Valley draytonvalley.ca | 61.1 | 523 | 7983 | 266 | August 19, 2026 |
| 77 | Town of Three Hills threehills.ca | 59.6 | 1769 | 693 | 86 | August 17, 2026 |
| 78 | Village of Nobleford nobleford.ca | 59.3 | 864 | 254 | 45 | August 17, 2026 |
| 79 | Town of High Prairie highprairie.ca | 58.3 | 1908 | 846 | 87 | August 17, 2026 |
| 80 | Town of Wembley wembley.ca | 53.5 | 1849 | 755 | 86 | August 17, 2026 |
| 81 | Town of Sundre sundre.com | 53 | 2265 | 488 | 81 | August 17, 2026 |
| 82 | Town of Bowden bowden.ca | 51.5 | 2716 | 1432 | 120 | August 16, 2026 |
| 83 | Town of Carstairs carstairs.ca | 50.8 | 1497 | 2448 | 90 | August 17, 2026 |
| 84 | Town of Barrhead barrhead.ca | 50 | 2375 | 1440 | 93 | August 17, 2026 |
| 85 | Municipality of Jasper jasper-alberta.ca | 47.5 | 5102 | 995 | 190 | August 17, 2026 |
| 86 | Town of Crossfield crossfieldalberta.com | 47.1 | 1514 | 1286 | 72 | August 17, 2026 |
| 87 | Town of Athabasca athabasca.ca | 46.7 | 2653 | 138 | 93 | August 16, 2026 |
| 88 | Town of Penhold townofpenhold.ca | 44.9 | 3324 | 1106 | 137 | August 17, 2026 |
| 89 | Town of Didsbury didsbury.ca | 37 | 2415 | 1023 | 94 | August 17, 2026 |
| 90 | Town of Rocky Mountain House rockymtnhouse.com | 32 | 3779 | 7507 | 163 | August 19, 2026 |
Critical / serious columns count individual instances of WCAG 2.2 A/AA issues detected by automated testing, excluding issues inside embedded third-party content. Sample sizes differ (up to full-site coverage); scores are averages per page tested, so they remain comparable across sample sizes.
Insufficient data — not ranked
We publish a score only when a clean, reliable test sample was completed. These municipalities could not be reliably tested — this says nothing about how accessible their websites are.
| City of Camrose | The site's security system blocked automated testing; no reliable sample could be completed. Blocking automated tools says nothing about a site's accessibility. |
| City of Lethbridge | A portion of test requests was blocked by the site's security system; a reliable sample could not be completed. We will retest at a gentler rate. |
| City of Medicine Hat | A portion of test requests was blocked by the site's security system; a reliable sample could not be completed. We will retest at a gentler rate. |
| Town of Fairview | A portion of test requests failed during scanning; a reliable sample could not be completed. We will retest at a gentler rate. |
| Town of Pincher Creek | The site's security system blocked automated testing; no reliable sample could be completed. Blocking automated tools is a legitimate security choice and implies nothing about the site's accessibility. |
| Town of Tofield | A portion of test requests failed during scanning; a reliable sample could not be completed. We will retest at a gentler rate. |
| Town of Vauxhall | A large portion of test requests failed during scanning; a reliable sample could not be completed. We will retest at a gentler rate. |
What these scores are — and are not. Automated tools can test roughly a third of WCAG 2.2 success criteria. A high score means few machine-detectable barriers; it is not a WCAG conformance claim, and a lower score is not a finding of legal non-compliance. Scores are our opinion, produced by our software, from published methodology anyone can review.