Skip to main content
Accessible icons ensure that all users, including those using assistive technologies, can understand and interact with your application effectively.

The Title Prop

The title prop adds a <title> element inside the SVG, providing a text description for screen readers:
When rendered, this creates:
The title element provides accessible names for screen readers and appears as a tooltip in many browsers.

Decorative vs Meaningful Icons

Icons fall into two categories that require different accessibility approaches:
Icons that are purely visual and don’t convey unique information should be hidden from screen readers:
The text “Lets go for a?” conveys the message, so the icon is decorative.

Icon Buttons

When icons are used as buttons without text, provide accessible labels:
1

Use aria-label

Add descriptive aria-label to the button element:
2

Add title for tooltips

Optionally include title for visual tooltip:
3

Hide icon from screen readers

Add aria-hidden to the icon to avoid redundancy:

Icons with Adjacent Text

When icons accompany visible text, hide the icon from screen readers:
Don’t add title or aria-label to decorative icons when text is already present - this creates redundant announcements for screen reader users.
For icon-based navigation links:

Status Indicators

For icons indicating status, ensure the meaning is conveyed accessibly:

Form Field Icons

Icons in form fields require special consideration:
Always pair form field icons with visible labels. Icons alone are not sufficient for accessibility.

Icon-Based Navigation

For icon-heavy navigation, provide multiple ways to understand the interface:

Color and Contrast

Never rely on color alone to convey information. Icons should be distinguishable by shape, not just color.
Ensure icons meet WCAG contrast requirements:

Accessibility Checklist

✓ Add aria-hidden="true"✓ Ensure adjacent text provides full context✓ Don’t add title or aria-label
✓ Add aria-label to the parent interactive element✓ Or provide visible text label✓ Consider adding title for tooltips✓ Add aria-hidden="true" to avoid redundancy when label is present
✓ Use role="status" or role="alert"✓ Consider aria-live regions for dynamic updates✓ Include text description, not just the icon
✓ Ensure 3:1 contrast ratio for UI components (WCAG AA)✓ Don’t rely on color alone to convey meaning✓ Test with color blindness simulators

Testing Accessibility

Test your icon implementation with:
  • Screen readers: NVDA (Windows), JAWS (Windows), VoiceOver (macOS/iOS)
  • Keyboard navigation: Ensure all icon buttons are keyboard accessible
  • Browser extensions: axe DevTools, WAVE, Lighthouse
  • Automated testing: jest-axe, pa11y, Playwright accessibility tests

Next Steps

Customizing Icons

Learn how to customize icon appearance

Styling

Apply global styles with IconContext