Automated accessibility audit of Denmark municipality websites against WCAG 2.1 AA (EU Directive 2016/2102). Scores reflect homepage-only scanning using axe-core.
Download CSV · Press Dossier (PDF) · Methodology
50% of municipalities do not pass the automated accessibility check.
| Municipality | Website | Score | Issues |
|---|---|---|---|
| Favrskov Kommune | favrskov.dk | 100.0 | 0 |
| Brøndby Kommune | brondby.dk | 100.0 | 0 |
| Helsingør Kommune | helsingor.dk | 100.0 | 0 |
| Odense Kommune | odense.dk | 100.0 | 0 |
| Jelling Kommune | jelling.dk | 100.0 | 0 |
| Odsherred Kommune | odsherred.dk | 100.0 | 0 |
| Gentofte Kommune | gentofte.dk | 100.0 | 0 |
| Kolding Kommune | kolding.dk | 100.0 | 0 |
| Rødovre Kommune | rk.dk | 100.0 | 0 |
| Vejen Kommune | vejen.dk | 100.0 | 0 |
| Faxe Kommune | faxekommune.dk | 100.0 | 0 |
| Stevns Kommune | stevns.dk | 100.0 | 0 |
| Bornholms Regionskommune | brk.dk | 100.0 | 0 |
| Struer Kommune | struer.dk | 100.0 | 0 |
| Aalborg Kommune | aalborg.dk | 100.0 | 0 |
| Københavns Kommune | kk.dk | 100.0 | 0 |
| Roskilde Kommune | roskilde.dk | 100.0 | 0 |
| Kerteminde Kommune | kerteminde.dk | 100.0 | 0 |
| Køge Kommune | koege.dk | 100.0 | 0 |
| Samsø Kommune | samsoe.dk | 100.0 | 0 |
| Hørsholm Kommune | horsholm.dk | 100.0 | 0 |
| Lunderskov Kommune | lunderskov.dk | 100.0 | 0 |
| Holstebro Kommune | holstebro.dk | 100.0 | 0 |
| Sønderborg Kommune | sonderborgkommune.dk | 100.0 | 0 |
| Viborg Kommune | viborg.dk | 100.0 | 0 |
| Lolland Kommune | lolland.dk | 100.0 | 0 |
| Vejle Kommune | vejle.dk | 100.0 | 0 |
| Lemvig Kommune | lemvig.dk | 100.0 | 0 |
| Halsnæs Kommune | halsnaes.dk | 100.0 | 0 |
| Skive Kommune | skive.dk | 100.0 | 0 |
| Vallensbæk Kommune | vallensbaek.dk | 100.0 | 0 |
| Hjørring Kommune | hjoerring.dk | 100.0 | 0 |
| Randers Kommune | randers.dk | 100.0 | 0 |
| Esbjerg Kommune | esbjerg.dk | 100.0 | 0 |
| Glostrup Kommune | glostrup.dk | 100.0 | 0 |
| Morsø Kommune | morsoe.dk | 100.0 | 0 |
| Gudme Kommune | svendborg.dk | 100.0 | 0 |
| Langeland Kommune | langelandkommune.dk | 100.0 | 0 |
| Rudersdal Kommune | rudersdal.dk | 100.0 | 0 |
| Frederikssund Kommune | frederikssund.dk | 100.0 | 0 |
| Dianalund Kommune | soroe.dk | 100.0 | 0 |
| Skagen Kommune | skagen.dk | 100.0 | 0 |
| Skanderborg Kommune | skanderborg.dk | 100.0 | 0 |
| Læsø Kommune | laesoe.dk | 100.0 | 0 |
| Allerød Kommune | alleroed.dk | 100.0 | 0 |
| Bjergsted Kommune | kalundborg.dk | 100.0 | 0 |
| Middelfart Kommune | middelfart.dk | 100.0 | 0 |
| Ringkøbing-Skjern Kommune | rksk.dk | 100.0 | 0 |
| Ribe Kommune | ribe.dk | 100.0 | 0 |
| Egedal Kommune | egedalkommune.dk | 100.0 | 0 |
| Faaborg-Midtfyn Kommune | fmk.dk | 100.0 | 0 |
| Brønderslev Kommune | bronderslev.dk | 100.0 | 0 |
| Vordingborg Kommune | vordingborg.dk | 85.7 | 1 |
| Fredensborg Kommune | fredensborg.dk | 85.7 | 3 |
| Ølgod Kommune | oelgodkommune.dk | 85.7 | 1 |
| Norddjurs Kommune | norddjurs.dk | 68.1 | 1 |
| Hvidovre Kommune | hvidovre.dk | 68.1 | 2 |
| Hillerød Kommune | hillerod.dk | 68.1 | 4 |
| Varde Kommune | vardekommune.dk | 68.1 | 9 |
| Herlev Kommune | herlev.dk | 68.1 | 1 |
| Aarup Kommune | assens.dk | 68.1 | 1 |
| Solrød Kommune | solrod.dk | 68.1 | 3 |
| Nordfyns Kommune | nordfynskommune.dk | 68.1 | 1 |
| Ærø Kommune | aeroekommune.dk | 68.1 | 1 |
| Holbæk Kommune | holbaek.dk | 68.1 | 2 |
| Gribskov Kommune | gribskov.dk | 68.1 | 1 |
| Tønder Kommune | toender.dk | 68.1 | 4 |
| Ishøj Kommune | ishoj.dk | 68.1 | 2 |
| Skovbo Kommune | skovbo.dk | 68.1 | 1 |
| Thisted Kommune | thisted.dk | 68.1 | 1 |
| Aalestrup Kommune | vesthimmerland.dk | 68.1 | 1 |
| Gladsaxe Kommune | gladsaxe.dk | 68.1 | 1 |
| Herning Kommune | herning.dk | 68.1 | 2 |
| Jammerbugt Kommune | jammerbugt.dk | 68.1 | 3 |
| Furesø Kommune | furesoe.dk | 68.1 | 1 |
| Blåvandshuk Kommune | blaavandshuk.dk | 58.4 | 3 |
| Brædstrup Kommune | braedstrup.dk | 58.4 | 15 |
| Gedved Kommune | gedved.dk | 46.3 | 10 |
| Syddjurs Kommune | syddjurs.dk | 46.3 | 1 |
| Horsens Kommune | horsens.dk | 46.3 | 2 |
| Aarhus Kommune | aarhus.dk | 46.3 | 1 |
| Slagelse Kommune | slagelse.dk | 46.3 | 1 |
| Odder Kommune | odder.dk | 46.3 | 1 |
| Lejre Kommune | lejre.dk | 46.3 | 1 |
| Høje-Taastrup Kommune | htk.dk | 46.3 | 2 |
| Frederikshavn Kommune | frederikshavn.dk | 46.3 | 2 |
| Billund Kommune | billund.dk | 46.3 | 1 |
| Rebild Kommune | rebild.dk | 46.3 | 1 |
| Ballerup Kommune | ballerup.dk | 46.3 | 1 |
| Hedensted Kommune | hedensted.dk | 46.3 | 1 |
| Tårnby Kommune | taarnby.dk | 46.3 | 1 |
| Frederiksberg Kommune | frederiksberg.dk | 46.3 | 2 |
| Arden Kommune | arden.dk | 39.7 | 22 |
| Lyngby-Taarbæk Kommune | ltk.dk | 31.5 | 2 |
| Mariagerfjord Kommune | mariagerfjord.dk | 31.5 | 2 |
| Guldborgsund Kommune | guldborgsund.dk | 31.5 | 5 |
| Aabenraa Kommune | aabenraa.dk | 31.5 | 4 |
| Ikast-Brande Kommune | ikast-brande.dk | 31.5 | 2 |
| Dragør Kommune | dragoer.dk | 31.5 | 5 |
| Greve Kommune | greve.dk | 31.5 | 2 |
| Næstved Kommune | naestved.dk | 31.5 | 4 |
| Fredericia Kommune | fredericia.dk | 31.5 | 2 |
| Fanø Kommune | fanoe.dk | 27.0 | 3 |
| Egtved Kommune | egtved.dk | 21.5 | 3 |
| Gjern Kommune | silkeborgkommune.dk | 21.5 | 6 |
| Albertslund Kommune | albertslund.dk | 21.5 | 10 |
| Silkeborg Kommune | silkeborg.dk | 21.5 | 6 |
| Rødding Kommune | roedding.dk | 14.6 | 33 |
| Nyborg Kommune | nyborg.dk | 14.6 | 12 |
| Gram Kommune | haderslev.dk | 9.9 | 7 |
Scores reflect automated testing only (axe-core against WCAG 2.1 AA). Automated tools detect approximately 30–50% of WCAG criteria. A site that does not pass the automated check is certainly non-compliant. A site that passes may still have barriers detectable only through manual review.
| # | Rule | Description | Impact | Occurrences | Sites affected |
|---|---|---|---|---|---|
| 1 | color-contrast | Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds | serious | 86 | 17 |
| 2 | link-name | Ensure links have discernible text | serious | 40 | 20 |
| 3 | aria-prohibited-attr | Ensure ARIA attributes are not prohibited for an element's role | serious | 27 | 7 |
| 4 | aria-valid-attr-value | Ensure all ARIA attributes have valid values | critical | 23 | 18 |
| 5 | button-name | Ensure buttons have discernible text | critical | 11 | 8 |
| 6 | image-alt | Ensure <img> elements have alternative text or a role of none or presentation | critical | 9 | 1 |
| 7 | meta-viewport | Ensure <meta name="viewport"> does not disable text scaling and zooming | moderate | 9 | 7 |
| 8 | aria-required-children | Ensure elements with an ARIA role that require child roles contain them | critical | 5 | 2 |
| 9 | aria-progressbar-name | Ensure every ARIA progressbar node has an accessible name | serious | 3 | 1 |
| 10 | input-button-name | Ensure input buttons have discernible text | critical | 3 | 3 |