Fix any WCAG failure.
Plain-English guides to all 30 checks AccessKnight runs — what each one means, who it affects, and exactly how to fix it with copy-paste code.
30 in-depth guides.
Images
Images missing alt text
All <img> elements must have an alt attribute describing the content, or alt="" if decorative.
Decorative images inside interactive elements
Images with alt="" inside links/buttons need descriptive alt text.
Image alt text is unhelpful or redundant
Alt text shouldn't duplicate nearby text or use filename patterns — screen readers need meaningful descriptions.
Structure
Heading hierarchy skips levels
Headings must follow logical order (h1→h2→h3) without skipping.
Page missing or has multiple h1
Every page should have exactly one h1.
Empty heading elements
Headings must have text. Empty headings confuse screen reader navigation.
Missing landmark regions
Use <main>, <nav>, <header> for page structure.
Duplicate element IDs
IDs must be unique. Duplicates break label associations and ARIA references.
Navigation
Links with generic text
Avoid "click here", "read more". Link text should describe the destination.
Links with no accessible name
Links must have text, aria-label, or a titled image.
Links open new window without warning
target="_blank" links should warn users via visible text or aria-label.
Missing skip navigation link
First focusable element should be a skip link to bypass repeated content.
Positive tabindex values
tabindex > 0 overrides natural tab order. Use 0 or -1 only.
Forms
Form inputs missing labels
Every input needs <label>, aria-label, or aria-labelledby.
Buttons with no accessible name
Buttons need text, aria-label, or title.
Common inputs missing autocomplete
Name, email, phone, address fields should have autocomplete for faster form filling.
Select dropdowns missing labels
Every <select> must have a label.
Required fields without visible indicator
Required fields should be visually marked (e.g., asterisk) so all users know they're mandatory.
Document
Page missing language attribute
<html> must have a lang attribute for correct screen reader pronunciation.
Page missing or empty title
<title> is the first thing screen readers announce. Every page needs one.
Viewport disables user scaling
Don't set maximum-scale=1 or user-scalable=no. Users must zoom to 200%.
Page uses meta refresh
Meta refresh redirects are disorienting. Use server-side redirects.
Iframes missing title
Every <iframe> needs a title describing its content.
Color
Tables
ARIA
Invalid ARIA roles
ARIA role values must be valid WAI-ARIA names.
Broken ARIA ID references
aria-labelledby, aria-describedby, aria-controls must reference existing IDs.
Nested interactive elements
Buttons, links, and interactive roles cannot be nested inside each other.
Media
Find these issues on your site
Scan any page against all 30 WCAG 2.1 rules and get a scored report with fixes — free, no credit card.
Run a free scan →