Skip to main content
Fix guides

How to fix common WCAG accessibility issues

Plain-English guides to the issues automated testing finds most often — what each one means, who it affects, and how to fix it.

Serious 1.4.3 Contrast (Minimum) · AA

Fix low colour contrast (WCAG 1.4.3)

Text must have a contrast ratio of at least 4.5:1 against its background (3:1 for large text, 18.66px bold or 24px regular and up).

Critical 1.1.1 Non-text Content · A

Add text alternatives to images (WCAG 1.1.1)

Every <img> needs an alt attribute. Meaningful images get a description; purely decorative images get an empty alt="".

Serious 2.4.4 Link Purpose / 4.1.2 Name, Role, Value · A

Give links a discernible name (WCAG 2.4.4)

Every link must expose text that describes where it goes — including icon-only links, which need an accessible label.

Critical 4.1.2 Name, Role, Value · A

Give buttons a discernible name (WCAG 4.1.2)

Every button must have text or an accessible label so assistive tech can announce what it does.

Critical 1.3.1 Info and Relationships / 4.1.2 Name, Role, Value · A

Label every form field (WCAG 1.3.1 / 4.1.2)

Every input, select, and textarea needs a programmatically associated label.

Serious 2.4.2 Page Titled · A

Give each page a title (WCAG 2.4.2)

Every page needs a non-empty <title> that describes its topic or purpose.

Serious 3.1.1 Language of Page · A

Declare the page language (WCAG 3.1.1)

The <html> element must carry a valid lang attribute.

Moderate 1.3.1 Info and Relationships · A

Keep headings in a logical order (WCAG 1.3.1)

Heading levels should not skip — don't jump from an <h2> straight to an <h4>.

Serious 1.3.1 Info and Relationships · A

Structure lists correctly (WCAG 1.3.1)

<ul> and <ol> may only contain <li> (plus script/template) as direct children.

Serious 1.4.1 Use of Colour · A

Make links distinguishable without colour (WCAG 1.4.1)

A link inside a block of text must be told apart from surrounding text by more than colour alone (e.g. an underline) unless its contrast with that text is at least 3:1.

Serious 2.5.8 Target Size (Minimum) · AA

Make touch targets big enough (WCAG 2.5.8)

Interactive targets should be at least 24×24 CSS pixels, or have enough spacing around them — a WCAG 2.2 addition.

Critical 4.1.2 Name, Role, Value · A

Provide required ARIA attributes (WCAG 4.1.2)

An element with an ARIA role must include every attribute that role requires (e.g. a role="checkbox" needs aria-checked).

See where your site stands

Run a free WCAG 2.2 AA scan and get a prioritized list of what to fix.