DRUPAL · TILGÆNGELIGHED · WCAG/EAA

Drupal og tilgængelighed:
WCAG 2.1 AA og EAA

Praktisk guide til bureauer der bygger Drupal-sider til EU-kunder — hvad core allerede klarer, hvor contributed modules bryder compliance, og hvordan du verificerer før EAA bider.

Opdateret august 2026 · 6 minutters læsning

Hvorfor dette gælder dig

Drupal har et af de stærkeste tilgængelighedsfundamenter blandt CMS'er. Siden Drupal 8 har core haft WCAG 2.1 og ATAG 2.0 som policy-mål: front-end-temaet Olivero skiber tilgængeligt som standard, formularelementer renderer labels programmatisk knyttet til inputs, og core-JavaScript bruger behaviours-systemet til at holde ARIA-tilstand konsistent efter AJAX-opdateringer. Admin-temaet Claro er bygget til samme standard. Kører dit site core-plus-Olivero uden tung tilpasning, starter du fra et solidt grundlag — arbejdet ligger i indhold, contributed modules og eventuelle custom-temaer.

🏗️ Core-baseline

Semantisk markering, labellede formularer, fokusstyring og ARIA live regions håndteres på theme-system-niveau — ikke overlades til hver enkel sitebuilder.

🎨 Olivero & Claro

Både front-end- og admin-temaet målrettet WCAG 2.1 AA — inklusive mobil-navigation med rigtige disclosure-semantics og synlige fokus-tilstande.

⚙️ ATAG 2.0

Drupal sigter højere end indholdsoutput: selve redigeringsoplevelsen er tilgængelig — det tæller ved offentlige udbud under EN 301 549.

Hvor Drupal-sider fejler

Reelle Drupal-tilgængelighedsfejl samler sig fire steder — næsten aldrig i core:

🧩 Contributed modules

Moduler der renderer egen markering (sliders, kalendere, menuer, betalingswidgets) bypasser theme-systemet. Kvaliteten svinger enormt; nogle skiber ti år gamle jQuery-mønstre med unlabellede kontroller.

🖼️ Redaktørvaner

Manglende alt-tekst på billeder uploadet via media library, overskrifter valgt efter visuel størrelse, links der bare siger "læs mere". Værktøjslinjen er tilgængelig; vanerne er ofte ikke.

🎛️ Views & custom blocks

Views-genererede lister kan give tomme overskrifter eller gentaget identisk linktekst på tværs af rækker. Custom block-typer springer ofte overskriftsniveauer over.

💻 Custom themes

Håndbyggede eller kraftigt tilpassede temaer genintroducerer alle de klassiske fejl: placeholder-only inputs, divs som knapper, kontrast sat fra brandpaletten uden at tjekke forholdstal.

Contrib module-audit

Inventar: list de moduler der outputter markering på offentlige sider (sliders, maps, videoplayere, booking-widgets, newsletter-formularer). Alt der kun bruges i admin kan vente.

Scan hver widget: tab dig igennem den på en rigtig side. Unlabellede ikonknapper, keyboard-fælder og manglende fokusindikatorer er disqualifying — find et alternativt modul eller patch sagen i upstream issue queue.

Tjek opdateringer: mange tilgængelighedspatches ligger allerede i nyere udgaver. At køre aktuelle stabile contrib-versioner er i sig selv en tilgængelighedsforanstaltning.

WYSIWYG-indstillinger: begræns CKEditor 5-knapperne så redaktører ikke kan indsætte inline-farver eller fonte der bryder kontrast og struktur. Færre værktøjer, mere compliant indhold.

Views, formularer og indhold

Views: giv hver display en rigtig, unik titel i stedet for auto-genererede tomme overskrifter; brug distinkt linktekst pr. række ("Læs casen" — ikke "Læs mere"); og tjek at pager-markeringen annoncerer aktuel side.

Formularer: webform og kontaktformularer labeler felter korrekt ud af boksen — fejlene kommer fra custom alterations. Verificér at required-indikation ikke kun er farve, og at fejlbeskeder er tekst, ikke bare røde kanter.

Indhold: håndhæv alt-tekst via media library (det er krævet som default — svæk det ikke), træn redaktører i overskriftsorden, og føj en "linktekst"-retningslinje til den redaktionelle tjekliste.

Flersproget: lang-attributter på oversatte sider skal skifte med grænsefladeoversættelsen — Drupal klarer det i core, men custom routes og indlejret indhold glemmer det ofte.

Verificerings-workflow

Trin 1 — automatisk scanning af forside, en liste-side, en node-side, en formularside og søgeresultater. Forvent 5-15 mekaniske fund på første kørsel, mest indhold og contrib.

Trin 2 — ret og genscan til de automatiske fund er væk: tema-CSS, Views-titler, alt-tekst-backfill.

Trin 3 — keyboard-gennemgang af søg → liste → node → formularafsending. Alt kun-mus fejler WCAG 2.1.2.

Trin 4 — skærmlæser-spotcheck af én hel rejse med NVDA eller VoiceOver — lyt efter unlabellede kontroller og lydløse AJAX-opdateringer.

Trin 5 — kør igen efter hver modulopdatering og ny block-type. Regressioner ankommer lydløst med contrib-opdateringer.

Ofte stillede spørgsmål

Er Drupal mere tilgængeligt end WordPress?

Ud af boksen, ja — Drupal core målretter eksplicit WCAG 2.1 og ATAG 2.0, mens WordPress-kvalitet afhænger langt mere af valgt tema og plugins. Men et dårligt tilpasset Drupal-tema taber fordelen hurtigt; platformsbaseline hjælper, garanterer ingenting.

Gælder EAA Drupal-sider?

Ja, for de tjenester der leveres gennem dem, når de er forbrugervendte i EU — inklusive e-handel og medlems sites. Offentlige Drupal-byggerier har længe været bundet af EN 301 549-udbudregler uanset.

Hvilke contributed modules skaber flest problemer?

Tredjeparts-UI-widgets: sliders/carousels, maps, kalender-/booking-widgets og legacy-menu-moduler. De skiber egen markering uden for theme-systemet, så core-garantier stopper ved deres kant.

Skal jeg bruge Bartik eller Olivero specifikt?

Intet tema er obligatorisk, men at starte fra et vedligeholdt core-tema sparer uger. Skal du tilpasse, så subclass og override templates i stedet for at forke — så beholder du upstreams tilgængelighedsfixes ved opdatering.

Hvor lang tid tager et Drupal-tilgængeligheds-pass?

Et core-plus-contrib-build på Olivero: 1-3 dage inklusive test. Kraftigt tilpassede legacy-temaer (Bootstrap-forks er hyppige syndere) kræver et større udbedringsprojekt.

Start med en gratis scanning →

Relateret: Overlays og EAA · Skriv en tilgængelighedserklæring · Gratis tilgængelighedsværktøjer