WCAG Fix Templates

Common accessibility issues with copy-paste code solutions

Critical

Not Keyboard Accessible

WCAG 2.1.1 Level A

All functionality must be available via keyboard.

Don't do this
<div onclick="openMenu()">Menu</div>

<span class="button" onclick="submit()">Submit</span>
Do this instead
<button type="button" onclick="openMenu()">Menu</button>

<button type="submit">Submit</button>

<!-- If div is necessary -->
<div role="button" tabindex="0"
     onclick="openMenu()"
     onkeydown="if(event.key==='Enter')openMenu()">
  Menu
</div>
Tips:
  • Use native interactive elements (button, a, input)
  • Add tabindex="0" for custom interactive elements
  • Handle both click and keyboard events
  • Ensure visible focus indicators
Major

Missing Focus Indicator

WCAG 2.4.7 Level AA

Interactive elements must have a visible focus indicator.

Don't do this
:focus {
  outline: none;
}
Do this instead
:focus {
  outline: 2px solid #1e3a5f;
  outline-offset: 2px;
}

/* Custom focus styles */
:focus-visible {
  outline: 2px solid #1e3a5f;
  box-shadow: 0 0 0 4px rgba(30, 58, 95, 0.3);
}

/* Remove only for mouse users */
:focus:not(:focus-visible) {
  outline: none;
}
Tips:
  • Never use outline:none without alternative
  • Focus indicator should be clearly visible
  • Use :focus-visible for keyboard-only focus
  • Contrast ratio of 3:1 for focus indicator

Find these issues automatically

WCAG Pulse scans your website and shows exactly which fixes you need.

Try Free Scan