CMS

WCAG accessibility audit for Drupal

Why Drupal causes accessibility issues

Drupal is known for its commitment to accessibility — it is one of the few CMSs to have accessibility standards in its contribution guidelines. Yet Drupal sites in production present significant problems. The WYSIWYG content editor (CKEditor) allows editors to create inaccessible content: images without alt, data tables without headers, inconsistent heading structure, links with generic labels ('click here', 'learn more'). Contributed modules (Views, Paragraphs, Webform, Media) add powerful features but their integration often creates accessibility conflicts: a carousel module conflicts with the theme's focus management, a faceted search module generates filters without ARIA. Drupal's permission and role system can hide certain content from automated tests. Custom themes built on base themes (Barrio, Olivero) do not automatically inherit all the base theme's accessibility if templates are overridden.

Common issues on Drupal

Inaccessible editorial content via CKEditor

WCAG 1.1.1

Drupal editors use CKEditor to create content, but the editor does not enforce accessibility best practices. Images are inserted without relevant alt text. Data tables have no headers (th). Headings are used for style (h3 everywhere) instead of logical structure. Links have generic labels. Each published page accumulates editorial non-conformities.

Contributed modules creating accessibility conflicts

WCAG 1.3.1

Drupal modules (Views, Paragraphs, Layout Builder, Webform) are developed independently and their combination creates conflicts. Views generates lists without ARIA roles. Paragraphs nests components whose heading hierarchy does not integrate with the document. Layout Builder creates regions without ARIA landmarks. Each module adds HTML that can break the page's overall accessibility structure.

Heading structure broken by blocks and regions

WCAG 1.3.1

Drupal displays content in blocks distributed across regions (sidebar, header, footer). Each block has its own heading (h2, h3) that inserts into the page independently of the main content hierarchy. The result is an inconsistent heading structure: sidebar h2s are interspersed between main content h2s, block h3s appear before content h2s.

Webform forms without accessible validation

WCAG 3.3.1

Drupal's Webform module allows creating complex forms, but error handling is not always accessible. Error messages display at the top of the page without being linked to relevant fields via aria-describedby. Focus is not moved to the first field in error. Required fields are not always marked with aria-required. Conditional fields appear without announcement.

Test your Drupal site

Discover the WCAG non-conformities of your Drupal site in 5 minutes. Free, no commitment.

Run the free audit

What Scrutia detects on Drupal

Scrutia analyzes the final rendering of your Drupal site in a real browser, including content generated by CKEditor, Views lists, Paragraphs components, and Webform forms. Our engine detects images without alt added by editors, heading structures broken by blocks, modules creating ARIA conflicts, and forms with inaccessible validation. We test complete keyboard navigation and verify that each region, block, and component is correctly identified in the accessibility tree.

Frequently Asked Questions — Drupal

Does Scrutia account for the Olivero theme (Drupal 10 default theme)?
Yes. Scrutia tests the actual rendering of your site, regardless of theme used. The Olivero theme is generally well built for accessibility, but contributed modules, editorial content, and template overrides can introduce non-conformities that our audit detects.
Are editorial (content) non-conformities detected?
Yes. Scrutia analyzes content as displayed, including images without alt, generic links, incorrect heading structures, and tables without headers created by editors in CKEditor. The report distinguishes technical problems (theme/modules) from editorial problems (content).
How do I fix problems from contributed Drupal modules?
The report identifies the problematic HTML generated by each module and provides corrective code. Depending on the module, the correction can be applied via a template override (Twig file), a preprocess hook in the theme, or a module patch. We specify the recommended method for each correction.

Audit your Drupal site now

106 RGAA criteria tested in 5 minutes. Free score, full report with code fixes for €49.

Test my Drupal site