Contao is an open-source PHP CMS with a strong following in Europe -- particularly the German-speaking market -- and a long-standing reputation for taking web standards and accessibility seriously, with output historically oriented toward BITV, the German accessibility ordinance that mirrors WCAG. That heritage means Contao gives you good building blocks: structured content elements, a template and layout system that can produce clean semantic markup, and a form generator with sensible defaults. But a capable platform is not the same as an accessible site. Editors still add images through the file manager without alt text, choose heading tags on individual content elements in a way that breaks the page outline, and paste in link text like 'mehr' or 'read more'. Themes bought from a marketplace or built years ago may carry contrast problems or drop the semantic markup Contao would otherwise give you. And form generator fields can be shipped without proper labels or clear error handling. For any Contao site serving customers in the EU, the European Accessibility Act now turns these barriers into a compliance question on top of BITV expectations for public bodies. This checklist walks through the issues that appear most often on real Contao sites, with fixes an editor can make in the back end and notes on where the theme or a developer is involved.

Common Accessibility Issues

critical

File Manager Images Placed Without Alt Text

WCAG 1.1.1

Contao stores images in its file manager and lets editors insert them into image and gallery content elements, but the alt text field is optional and frequently left blank -- and images carried over from older content or set via CSS backgrounds may have no text alternative at all. Screen reader users then meet unlabeled images where sighted visitors see the product, the premises, or the team.

How to fix:

When placing an image content element, fill in the 'Alternate text' field with a short, specific description of what the image shows; for products or informative graphics, describe what matters. Leave alt empty only for decorative images. Contao also lets you store default metadata (including alt text) on a file in the file manager -- set it there so the description follows the image wherever it is reused. Verify on the live page with WAVE.

serious

Low-Contrast Text From the Theme

WCAG 1.4.3

Contao themes -- especially older ones or marketplace purchases -- often include pale body text, light headings, or brand-colored buttons whose label contrast falls below 4.5:1. Even though Contao's markup may be sound, color is a styling decision, and low contrast makes otherwise well-structured pages hard to read for older and low-vision visitors.

How to fix:

Check body text, headings, links, and button labels against their backgrounds with the WebAIM Contrast Checker and adjust the values in your theme's stylesheet (or the Contao style sheet manager, if your theme uses it) until each combination passes 4.5:1, or 3:1 for large text and UI components. Add an overlay behind any text placed over images. This is a theme-level fix that corrects contrast across every page at once.

serious

Heading Tags Chosen Inconsistently in Content Elements

WCAG 1.3.1

Contao lets editors set the heading tag (H1 to H6) on individual headline content elements and on many other elements' optional headlines. Because each element is configured separately, it is easy to end up with several H1s on a page or an outline that skips levels. Screen reader users navigate by heading, so an inconsistent outline makes the page confusing even when each element looks right on its own.

How to fix:

Plan the page as an outline: one H1 (usually the page's main headline -- make sure a template or module isn't also emitting one), then H2 for main sections and H3 for sub-points, in order. Set each content element's headline tag to match its place in that outline rather than to its visual size, and use CSS to adjust appearance. Check the finished page with the HeadingsMap extension.

moderate

Vague 'Mehr' / 'Read More' Link Text

WCAG 2.4.4

News and event lists in Contao commonly end each item with a generic 'mehr', 'weiterlesen', or 'read more' link, and inline content uses 'hier klicken' / 'click here'. Screen reader users often navigate by pulling up a list of links, where a series of identical 'mehr' entries gives no clue which story or page each one leads to.

How to fix:

Where the template allows, build the 'read more' link so it includes the item's headline (for example, 'Weiterlesen: <headline>' or a visually-hidden extension of the link text), and in body content link a descriptive phrase rather than 'click here'. This helps screen reader users, sighted scanners, and search engines alike; the list template change is usually a small developer task.

serious

Form Generator Fields Without Proper Labels and Errors

WCAG 3.3.2

Contao's form generator produces reasonable markup, but editors can still create fields that lean on placeholder text, omit a grouping legend for radio or checkbox sets, or leave error feedback to color alone. Screen reader and colorblind users then struggle to know which field is which and which one failed validation -- costing you enquiries and orders on contact and checkout forms.

How to fix:

Give every form field a clear label in the form generator (Contao renders it as a real label element), group related options with an appropriate legend, mark required fields with the word 'required' in addition to any asterisk, and make sure validation messages are text associated with the field. Test the whole form using only the keyboard and a screen reader, submitting it without a mouse to confirm each label and error is announced.

Contao-Specific Tips

  • Set default metadata (including alt text) on images in the Contao file manager so the description travels with the file every time it is reused across the site.
  • Contao can produce clean semantic markup, but a marketplace or legacy theme may not carry it through -- audit your theme's output for landmarks, a skip link, and heading structure rather than assuming the platform handled it.
  • If you serve public-sector audiences in Germany or the wider EU, keep both BITV and the European Accessibility Act in view; both point to WCAG 2.1 AA as the practical target.
  • Publish an accessibility statement page (a simple Contao page with a contact email) so visitors who encounter a barrier can report it and you get early warning of real problems.

WAVE

Free scanner that flags missing alt text, contrast failures, and empty links on your published Contao pages and news items.

WebAIM Contrast Checker

Check your Contao theme's text, heading, link, and button colors against the 4.5:1 ratio before applying a palette across the site.

HeadingsMap

Browser extension that shows your page's heading outline so you can catch multiple-H1 and skipped-level problems created across content elements.

Frequently Asked Questions

Isn't Contao already accessible since it was built with accessibility in mind?

Contao has a genuinely strong standards-and-accessibility heritage and can produce clean, BITV-oriented markup, which gives you a better starting point than many CMSs. But 'can be accessible' is not the same as 'is accessible'. Your actual site depends on the theme in use (marketplace or legacy themes may drop the good markup), on editors adding alt text and correct heading tags, and on how forms are configured. Use Contao's strengths, but still test the live site rather than assuming the platform guarantees compliance.

What is BITV and how does it relate to WCAG and the EAA?

BITV (Barrierefreie-Informationstechnik-Verordnung) is Germany's accessibility ordinance for public-sector information technology, and in practice it is aligned with the European standard EN 301 549, which itself references WCAG. The European Accessibility Act is separate EU legislation that extends accessibility requirements to many private-sector products and services. For a Contao site the practical upshot is the same in all three cases: aim for WCAG 2.1 AA. This is general information, not legal advice -- confirm your specific obligations with a qualified professional.

Where do I set alt text so it applies everywhere an image is used?

In the Contao file manager you can store default metadata on the file itself, including alternative text. Setting it there means the description follows the image whenever it is reused across pages and elements, instead of relying on each editor to retype it. You can still override the alt text on an individual image content element when a particular context needs a different description.

Further Reading

Other CMS Checklists