Skip to content

The 10 most common accessibility errors (and how to fix them)

Low contrast, missing alt text, fields without labels: the ten accessibility errors websites make most often, with the WCAG criterion and the HTML fix for each.

Written by
Updated
8 min read

Also available inNederlandsDeutschEspañol

In this article
  1. What does the WebAIM Million report say?
  2. 1. Text with too little colour contrast
  3. 2. Images without alt text
  4. 3. Form fields without labels
  5. 4. Empty links
  6. 5. Empty buttons
  7. 6. Missing document language
  8. 7. A messy heading structure
  9. 8. Vague link text
  10. 9. ARIA used incorrectly
  11. 10. A missing or broken skip link
  12. Which errors do automated tools find, and which do they miss?
  13. How to check this on your own site
  14. Frequently asked questions

The most common accessibility errors on websites are text with too little contrast, images without alt text, form fields without labels, empty links, empty buttons and a missing language setting. That is the finding of the 2026 WebAIM Million report, which automatically tests the homepages of one million popular websites. According to the report, 96% of all detected errors fall into those six categories.

The good news: you can fix most of these errors with a few lines of HTML or a different way of working in your CMS. This article lists the ten most common errors, with the matching WCAG criterion and a concrete fix. It is part of our complete guide to website accessibility.

What does the WebAIM Million report say?

The WebAIM Million report is an annual automated accessibility test of the homepages of the one million most popular websites. The 2026 edition is based on measurements from February 2026, using WebAIM's WAVE tool, which tests for errors against WCAG 2.2 level A and AA.

The key figures from the report:

  • 95.9% of homepages had automatically detectable WCAG errors, compared with 94.8% in 2025.
  • On average there were 56.1 errors per homepage, compared with 51 in 2025.
  • According to WebAIM, the six most common error types have been the same for seven years.
Error (WebAIM Million 2026)Share of homepages 20262025
Low-contrast text83.9%79.1%
Missing alt text on images53.1%55.5%
Form fields without labels51%48.2%
Empty links46.3%45.4%
Empty buttons30.6%29.6%
Missing document language13.5%15.8%

Errors 7 to 10 in this list come from other measurements in the same report: heading structure, vague link text, ARIA use and skip links. WebAIM doesn't count them in the top six, but they were measured and they affect many sites.

A caveat WebAIM makes itself: automated tools don't find every error. The report states that the absence of detected errors does not mean a page is accessible or conforms to WCAG. The real picture is therefore worse than these figures show.

1. Text with too little colour contrast

Low contrast is the most common accessibility error: WebAIM found it on 83.9% of homepages, with an average of 34 instances per page. It is text whose colour doesn't stand out enough from the background.

  • WCAG criterion: 1.4.3 Contrast (Minimum), level AA. Normal text needs at least 4.5:1, large text (18 point, or 14 point bold) at least 3:1, according to the WCAG 2.2 specification.
  • Why it matters: people with low vision, older people and anyone using their phone in the sun can't read light grey text or text over a photo.

The fix lives in your brand styling and CSS, not in the HTML. Choose text colours that reach at least 4.5:1 in a contrast checker, and put a dark overlay under text that sits on top of an image. You will find more about colour contrast in the glossary.

2. Images without alt text

Missing alt text is the second most common error: 53.1% of homepages had at least one image without an alt attribute. According to WebAIM, 16.2% of all images had no alt text, an average of 10.8 per homepage.

  • WCAG criterion: 1.1.1 Non-text Content, level A.
  • Why it matters: a screen reader then reads nothing, or the file name. With a linked image, the user doesn't know where the link goes. WebAIM reports that 45% of images without alt text were linked.

Give informative images a short description of what they convey in that context. Give purely decorative images an empty alt, so a screen reader skips them.

<!-- Informative image -->
<img src="team.jpg" alt="Our five-person support team at the front desk in Leeds">

<!-- Linked image: describe the purpose of the link -->
<a href="/prijzen"><img src="pricing-icon.svg" alt="View pricing"></a>

<!-- Decorative image: empty alt -->
<img src="wave-line.svg" alt="">

Good alt text also helps search engines and AI systems understand your images; see content that AI cites.

3. Form fields without labels

A form field without a label is the third most common error: 51% of homepages had at least one. According to WebAIM, 33.1% of all form fields were not properly labelled.

  • WCAG criteria: 1.3.1 Info and Relationships (A), 3.3.2 Labels or Instructions (A) and 4.1.2 Name, Role, Value (A).
  • Why it matters: a screen reader only says "edit text", without telling you what to fill in. A placeholder disappears as soon as you type, so sighted users forget the question too.

Link a visible label to every field with for and id. A search field with only an icon can get an aria-label.

<label for="email">Email address</label>
<input type="email" id="email" name="email" autocomplete="email">

<!-- Search field without a visible label -->
<input type="search" name="q" aria-label="Search the site">

For order forms and checkouts, the article on accessible forms and checkout goes deeper into error messages and required fields.

An empty link is a link without text that a screen reader can read out. WebAIM found empty links on 46.3% of homepages. Usually it is a social media icon or a logo without alt text.

  • WCAG criteria: 2.4.4 Link Purpose (In Context), level A, and 4.1.2 Name, Role, Value, level A.
  • Why it matters: the user only hears "link" and doesn't know where it goes.
<!-- Wrong: icon without text -->
<a href="https://www.linkedin.com/company/example"><svg>…</svg></a>

<!-- Right: text for the screen reader, icon hidden -->
<a href="https://www.linkedin.com/company/example">
  <svg aria-hidden="true" focusable="false">…</svg>
  <span class="visually-hidden">Follow us on LinkedIn</span>
</a>

5. Empty buttons

An empty button is a button without an accessible name, and WebAIM found one on 30.6% of homepages. Think of a hamburger menu, a close icon or a search button with only an icon.

  • WCAG criterion: 4.1.2 Name, Role, Value, level A. For an image used as a button, also 1.1.1.
  • Why it matters: if you can't see the button, you don't know what it does and won't dare to press it.
<button type="button" aria-label="Open menu" aria-expanded="false">
  <svg aria-hidden="true" focusable="false">…</svg>
</button>

6. Missing document language

A page without a language setting doesn't tell the browser what language the text is in. According to WebAIM, it was missing on 13.5% of homepages.

  • WCAG criterion: 3.1.1 Language of Page, level A. For passages in another language: 3.1.2 Language of Parts, level AA.
  • Why it matters: a screen reader may then read English text with, for example, a French pronunciation, which is often unintelligible.
<html lang="en">
  …
  <p>Our approach is pure <span lang="fr">savoir-faire</span>.</p>
</html>

7. A messy heading structure

Headings are a page's table of contents for screen reader users, and on many sites it doesn't add up. WebAIM counted skipped heading levels, such as a jump from H2 to H4, on 41.8% of homepages. 18.1% had more than one H1, and 7.5% had no headings at all.

  • WCAG criteria: 1.3.1 Info and Relationships (A) and 2.4.6 Headings and Labels (AA).
  • Why it matters: WebAIM writes that headings are the main way screen reader users navigate content.

A skipped level is not always a WCAG failure in itself, but it makes the structure unclear. Use headings in order, and choose a heading level based on structure, not font size. Bold text that looks like a heading but isn't a heading in the code is a failure under 1.3.1.

Vague link text such as "click here", "more" or "continue" says nothing about where the link goes. WebAIM found such link text on 15.2% of homepages, with an average of 5.3 instances per page.

  • WCAG criterion: 2.4.4 Link Purpose (In Context), level A.
  • Why it matters: screen reader users often have a list of all links read out. Ten times "read more" is then useless.

Put the destination in the link text: "see our opening hours" instead of "click here". This is the error you can most easily prevent as a content editor.

9. ARIA used incorrectly

WAI-ARIA is a set of HTML attributes that gives extra information to assistive technology, but using it incorrectly makes a page worse. WebAIM counted more than 133 ARIA attributes per homepage on average. Pages with ARIA had an average of 59.1 errors, compared with 42 on pages without.

WebAIM stresses that this is a correlation, not proof that ARIA causes the errors; pages with ARIA are also more complex. One concrete finding, though: 22% of ARIA menus (role="menu") caused accessibility problems because of missing code or keyboard support.

  • WCAG criterion: usually 4.1.2 Name, Role, Value, level A.
  • Fix: use plain HTML elements first, such as <button>, <nav> and <a>. They already have the right role and keyboard support built in. Only add ARIA where HTML falls short.

A skip link is a link at the top of the page that lets keyboard users skip the navigation and go straight to the content. According to WebAIM, 17.1% of homepages had a skip link, and one in ten of those didn't work.

  • WCAG criterion: 2.4.1 Bypass Blocks, level A. A skip link is a common way to meet it; headings and landmarks such as <main> help too.
  • Why it matters: without a skip link, a keyboard user has to tab through the whole menu again on every page.
<body>
  <a href="#content" class="skiplink">Skip to content</a>
  <header>…</header>
  <main id="content">…</main>
</body>

Don't hide the skip link with display: none, because then it won't work. Make it visible as soon as it receives focus.

Which errors do automated tools find, and which do they miss?

Automated tools find whether something is missing, but rarely whether something is right. That distinction determines how much manual work you have left after a scan.

ErrorAutomatically detectableWhat stays manual
Low contrastOnly with a rendered pageText over images, gradients and hover states
Missing alt textYesWhether the alt text describes the image well
Fields without labelsYesWhether the label is clear
Empty links and buttonsYesWhether the name describes the function well
Missing document languageYesWhether the language set is correct
Heading structurePartly, such as skipped levelsWhether headings describe the content well
Vague link textPartly, known phrases like "click here"Whether a link is clear in context
ARIATechnical errors in attributesWhether keyboard operation works
Skip linkWhether it is presentWhether it becomes visible and jumps to the content

Colour contrast deserves separate attention. To measure contrast, a tool needs to know what colour the text and background actually end up with, including stylesheets, images and layers. That requires the page to actually be rendered. A test that only analyses the HTML therefore can't measure contrast reliably. For that reason Flowproof reports contrast as something to check manually, rather than giving a result that isn't correct.

How to combine automated and manual testing is covered in testing website accessibility. The criteria themselves are explained in WCAG 2.2 explained.

How to check this on your own site

Follow these steps to track down the ten errors on your own site:

  1. Run an automated test on your homepage, a landing page, a product page and your most important form. It finds missing alt text, labels, empty links and buttons, and the document language.
  2. Measure contrast with a contrast checker, especially for light shades, brand colours and text over photos.
  3. Review your heading structure with a browser extension that shows the headings as a list, and check whether that list reads like a table of contents.
  4. Read your link text on its own, away from the surrounding text, and replace every "click here" or "read more".
  5. Tab through the page using only the keyboard: does the skip link work, can you see the focus, and can you open and close menus?
  6. Check the alt text in your media library for content, not just for presence.

Flowproof's accessibility check is included in the paid Pro and Business plans. It tests with axe-core against WCAG 2.0, 2.1 and 2.2 level A and AA, shows the success criterion, level and severity for each finding, and also checks whether you have a skip link and a link to your accessibility statement. You can create a free account and upgrade afterwards.

Frequently asked questions

What is the most common accessibility error on websites?

Text with insufficient colour contrast. In the 2026 WebAIM Million report, 83.9% of the one million homepages tested had low-contrast text. Missing alt text on images and form fields without labels come next.

Does an automated test find all accessibility errors?

No. Automated tools find technical errors such as missing alt text or an empty link, but not whether the alt text is accurate or the link text is clear. WebAIM itself writes that the absence of detected errors does not mean a page is accessible. Manual testing is still needed.

What contrast does text need under WCAG?

At level AA, WCAG 2.2 asks for a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text. Large text is at least 18 point, or 14 point bold. This is set out in success criterion 1.4.3.

Is a skipped heading level a WCAG failure?

Not automatically. WCAG asks that the structure of the page is correct in the code and that headings describe the topic. A jump from H2 to H4 does make the structure unclear for screen reader users, so it's sensible to use headings in order.

Further reading

Back to the complete guide to website accessibility.

Is your website accessible?

Flowproof tests your pages against WCAG 2.2 A and AA and shows which success criterion each issue affects. Included in Pro and Business.

See the plans
The 10 most common website accessibility errors