89% of Luxembourg municipalities do not pass the automated accessibility check

Automated accessibility audit of Luxembourg 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

89% of municipalities do not pass the automated accessibility check.

Municipality WCAG compliance scores — automated scan of homepage only
MunicipalityWebsiteScoreIssues
Ettelbruckettelbruck.lu100.00
Berdorfberdorf.lu100.00
Septfontainesseptfontaines.lu100.00
Wellensteinwellenstein.lu100.00
Differdangedifferdange.lu100.00
Habschthabscht.lu100.00
Bertrangebertrange.lu100.00
Dudelangedudelange.lu100.00
Feulenfeulen.lu100.00
Beckerichbeckerich.lu100.00
Ellell.lu100.00
Kopstalkopstal.lu85.71
Roeserroeser.lu68.141
Remichremich.lu68.13
Luxembourgvdl.lu68.115
Esch-sur-Alzetteesch.lu68.112
Weiswampachweiswampach.lu68.11
Tuntangeweb.archive.org68.11
Grosbousgrosbous.lu68.166
Lac de la Haute-Sûrelac-haute-sure.lu58.411
Junglinsterjunglinster.lu46.318
Dippachdippach.lu46.314
Mondercangemondercange.lu46.339
Erpeldange-sur-Sûreerpeldange.lu46.347
Lorentzweilerlorentzweiler.lu46.336
Kaylkayl.lu46.370
Grevenmachergrevenmacher.lu46.322
Garnichgarnich.lu46.32
Viandenvianden.lu46.32
Préizerdaulpreizerdaul.lu39.711
Kiischpeltkiischpelt.lu39.720
Rambrouchrambrouch.lu39.79
Consdorfconsdorf.lu39.74
Mondorf-les-Bainsmondorf-les-bains.lu31.517
Kehlenkehlen.lu31.558
Schuttrangeschuttrange.lu31.516
Troisviergestroisvierges.lu31.520
Schifflangeschifflange.lu31.527
Steinselsteinsel.lu31.515
Waldbilligwaldbillig.lu31.516
Schierenschieren.lu21.517
Koerichkoerich.lu21.525
Vallée de l'Ernzaerenzdall.lu21.527
Merschmersch.lu21.57
Käerjengkaerjeng.lu21.57
Leudelangeleudelange.lu21.545
Useldangeuseldeng.lu18.425
Strassenstrassen.lu14.679
Stadtbredimusstadtbredimus.lu14.676
Bettembourgbettembourg.lu14.638
Flaxweilerflaxweiler.lu12.531
Sanemsanem.lu9.949
Wiltzwiltz.lu9.937
Schengenschengen.lu9.984
Bissenbissen.lu9.927
Hesperangehesperange.lu8.516
Niederanvenniederanven.lu6.848
Diekirchdiekirch.lu5.892
Munshausenmunshausen.lu5.851
Clervauxclervaux.lu5.851
Steinfortsteinfort.lu5.881
Sandweilersandweiler.lu4.695
Mertzigmertzig.lu4.624
Rosport-Mompachrosportmompach.lu4.632
Betzdorfbetzdorf.lu3.192
Dalheimdalheim.lu2.790
Redange sur Attertredange.lu2.169
Manternachmanternach.lu1.827
Weiler-la-Tourweiler-la-tour.lu1.860
Wahlwahl.lu1.834
Nommernnommern.lu1.860
Winselerwinseler.lu1.815
Groussbus-Walg-w.lu1.834
Tandeltandel.lu1.823
Parc Hosingenhosingen.lu1.831
Conterncontern.lu1.858
Colmar-Bergcolmar-berg.lu1.232
Lenningenlenningen.lu1.235
Reckange-sur-Messreckange.lu1.229
Wormeldangewormeldange.lu1.230
Bechbech.lu1.235
Pétangepetange.lu1.255
Rumelangerumelange.lu1.231
Esch-sur-Sûreesch-sur-sure.lu1.268
Waldbredimuswaldbredimus.lu1.224
Larochettelarochette.lu1.235
Vichtenvichten.lu1.221
Heffingenheffingen.lu1.232
Helperknapphelperknapp.lu1.227
Wincrangewincrange.lu0.830
Lintgenlintgen.lu0.883
Putscheidputscheid.lu0.828
Saeulsaeul.lu0.842
Boulaideboulaide.lu0.826
Mamermamer.lu0.858
Goesdorfgoesdorf.lu0.851
Mertertmertert.lu0.818
Frisangefrisange.lu0.854
Reisdorfreisdorf.lu0.832
Bourscheidbourscheid.lu0.843
Bousbous.lu0.818
Beaufortbeaufort.lu0.662
Biwerbiwer.lu0.649
Fischbachacfischbach.lu0.662
Bous-Waldbredimusbouswaldbredimus.lu0.644
Boevange-sur-Attertboevange-attert.lu0.627
Echternachechternach.lu0.641
Bettendorfbettendorf.lu0.3112

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.

Top 10 most common accessibility violations

Most frequent axe-core rule violations across municipality homepages
#RuleDescriptionImpactOccurrencesSites affected
1color-contrastEnsure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholdsserious1,79289
2link-nameEnsure links have discernible textserious97978
3nested-interactiveEnsure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologiesserious11844
4aria-required-childrenEnsure elements with an ARIA role that require child roles contain themcritical8446
5image-altEnsure <img> elements have alternative text or a role of none or presentationcritical8313
6button-nameEnsure buttons have discernible textcritical7121
7aria-toggle-field-nameEnsure every ARIA toggle field has an accessible nameserious6424
8link-in-text-blockEnsure links are distinguished from surrounding text in a way that does not rely on colorserious6117
9meta-viewportEnsure <meta name="viewport"> does not disable text scaling and zoomingmoderate5555
10aria-input-field-nameEnsure every ARIA input field has an accessible nameserious4644

Compare with similar countries

View all European countries · Methodology