Skip to Content

WordPress Accessibility: The Basics You Should Follow

WCAG 2.1 AA without making it harder than it needs to be

Accessibility legislation is tightening in Sweden and the EU. From 2025, new requirements apply to digital services. Making the site accessible isn't just a legal matter; it's about everyone being able to use it. And it's often easier to fix than people think.

Images

Every image needs an alt attribute. Describe what the image shows, not what it is. "Woman sitting at laptop in office environment" is better than "image1.jpg". Decorative images (backgrounds, icons without semantic meaning) should have empty alt="".

Headings

H1 once per page. H2 for main sections. H3 for subsections. Don't skip levels (H1 straight to H3). Screen readers navigate by heading structure, and an incorrect hierarchy makes the page incomprehensible.

Contrast

Text against background should have at least 4.5:1 contrast ratio for normal text, 3:1 for large text (18px or larger). Check with Chrome DevTools or webaim.org/resources/contrastchecker. Light gray text on white background looks elegant but is unreadable for many.

Keyboard navigation

Tab through the site. Can you reach all links, buttons, and form fields? Is the focus indicator clearly visible? Don't remove outline: none without replacing it with a visible focus indicator. Menus should be openable and closable with the keyboard.

Forms

Every field needs a label. Placeholder is not a label. Error messages should be clear and specific. "This field is required" is better than a red asterisk without explanation.

Run Lighthouse accessibility audit in Chrome. It catches 80 percent of the most common issues. Supplement with manual keyboard testing.

WordPress and Email: Why wp_mail() Is Not Enough
Transactional email that actually arrives