Running a site
The 5 accessibility failures on almost every WordPress site
20 July 2026 · 6 min read
On this page
Accessibility sounds like a redesign. In practice, most WordPress sites fail on the same five things, and all five are fixable without touching the design.
1. Colour contrast
The most common failure by a distance. Light grey text on white, a pale button colour that looked good in the mockup, placeholder text nobody can read.
The requirement: 4.5:1 for normal text, 3:1 for large text (18pt or 14pt bold) and for interface components like form borders.
How to check: the WebAIM Contrast Checker for individual pairs, or Chrome DevTools, which shows a contrast ratio when you inspect any text element and flags failures.
How to fix: darken the text, or darken the background. Usually a few values in your theme's colour settings. The version that passes almost always looks better anyway — low contrast reads as faded rather than elegant on most screens.
2. Images with no alternative text
WordPress makes alt text easy to add and easy to skip, so most media libraries are full of images with nothing.
The requirement: every image conveying information needs a text alternative. Decorative images need an explicitly empty alt attribute, so screen readers skip them rather than reading a filename.
How to fix: work through your media library, prioritising images on your most visited pages. Writing alt text that actually helps is a skill — "image1.jpg" and "photo of our building" are both failures, for different reasons.
3. Form fields with no labels
Very common with page builders and contact form plugins, especially when the design uses placeholder text instead of visible labels.
Why it fails: a placeholder disappears when you start typing, and screen readers do not reliably announce it. Someone using assistive technology reaches an input with no idea what it wants.
How to check: click directly on the text label next to a field. If the cursor does not jump into the input, the label is not properly associated.
How to fix: use real <label> elements with a matching for attribute. Most form plugins have a setting for this — it is often just switched off in favour of the placeholder-only look.
4. Headings used for styling
Someone wanted bigger text, so they made it a Heading 2. Someone else wanted a smaller heading, so the page goes H1, H4, H2.
Why it matters: screen reader users navigate by heading, the way a sighted user scans a page. A broken heading structure makes the page much harder to move through — and it affects SEO for the same underlying reason.
The rules: one H1 per page, no skipped levels, and headings describe structure rather than setting size.
How to fix: set the correct heading level and control size with CSS. In the block editor, the heading block has both a level and a size setting for exactly this reason.
5. Things that only work with a mouse
Dropdown menus that open on hover. Sliders with no keyboard control. Modals you cannot close without clicking the X. Custom-built elements that are a div pretending to be a button.
How to check — and this is the single most useful ten minutes you can spend: put your mouse away. Tab through your site. Can you reach every link, open every menu, complete every form, and close every popup? Can you see where you are as you go?
How to fix: proper semantic elements (a button should be a <button>), visible focus indicators, and menus that respond to keyboard as well as hover. If a page builder widget cannot be operated by keyboard, replace it.
That keyboard test also catches problems automated tools miss entirely. Automated scanning finds roughly a third of accessibility barriers — the rest need a person.
Fixing them in order
- Contrast — usually a theme setting, and affects every page
- Keyboard operability — the most damaging failure, because it blocks people entirely
- Form labels — small number of pages, high impact
- Headings — as you edit pages anyway
- Alt text — ongoing, prioritise your busiest pages
Most sites get a long way in an afternoon. Whether you then need a formal audit depends on whether the law applies to you — and for a lot of small businesses, it does not.
If you do need one, ours is $349 and covers what automation cannot: keyboard and screen reader testing on real journeys.