There are a good number of folks with sight and hearing impairments: blindness, low vision, and visual impairment represent almost 10% of the total world population and disabling hearing loss represents over 5% of the total world population.
So we've built ways to help technology that supports impairments, like screen readers, either ignore or better understand the Font Awesome icons you're using.
Auto-accessibility with Kits
If you're using a Kit, we've handled accessibility for you. If the icon is being used in place of some text, just add some descriptive text in the title attribute - like this: title="[icon meaning]" - to your icon element and we'll make it accessible. Otherwise, if it's just decorative, you don't need to do anything - we'll make sure it doesn't interfere with the content. Learn more
There are two ways that icons are used on websites, apps, and other digital places:
Icon Use
What to Do
For Decorative Elements
If you're using an icon to add some extra decoration or branding, it does not need to be announced to users as they are navigating your site or app aurally. Additionally, if you're using an icon to visually re-emphasize or add styling to content already present in your HTML, it does not need to be repeated to an assistive technology-using user. In these cases, the icon should be hidden from the screenreader so it doesn't interfere with the established meaning.
For Semantic or Interactive Purposes
When you're using an icon to convey meaning, you need to make sure that this meaning is also conveyed to users by providing text-based alternatives. This goes for content you're abbreviating via icons (e.g. shopping cart status, number of unread messages, etc.) as well as interactive controls (e.g. buttons, form elements, toggles, etc.).
Auto-Accessibility with Kits
The easiest way to support accessible icons is with a Font Awesome Kit. Every Kit comes with auto-accessiblity built-in and provides the modern and proper syntax assistive technologies recognize.
Here's how it works:
For Icons That Are Decorative
Font Awesome auto-accessibility feature will make sure it is ignored by assistive technology. There's nothing extra you need to on top of how you would usually reference an icon.
For Icons That Have Semantic or Interative Meaning
The Font Awesome auto-accessibility feature will create alternative text for the icon using the description you set with the title attribute.
So if your markup looks like this:
<buttontype="submit"><spanclass="fa-solid fa-arrow-right"title="Submit My Tax Return"></span></button>
The Font Awesome Kit will adjust it so the meaning is conveyed in supporting elements that only screenreaders "see":
<buttontype="submit"><spanclass="fa-solid fa-arrow-right"title="Submit My Tax Return"aria-hidden="true"></span><spanclass="sr-only">Submit My Tax Return</span></button>
Manually Make Your Icons Accessible
If you are hosting yourself, you can manually set-up accessibility for your icons using the instructions below, for either Web Fonts and CSS, SVG and JS, SVG Sprites .
Accessiblility with Web Fonts with CSS
Accessibility for webfonts takes a bit more work, as the Webfont with CSS method can't add any attributes or elements to your HTML, but is well worth the effort. You'll just need to consider whether your icon is just decorative or has semantic meaning.
Decorative Icons
If your icons are purely decorative, you'll need to manually add an aria-hidden attribute to each of your icons so they're accessible.
If your icons have semantic meaning, you'll need to manually add a few things so that your icon is appropriately accessible:
aria-hidden="true" attribute.
Provide a text alternative inside a <span> (or similar) element. Also include appropriate CSS to visually hide the element while keeping it accessible to assisitive technologies. Our style toolkit includes a fa-sr-only based on best practices(opens new window) to handle that hiding.
title attribute on the icon to provide a tooltip for sighted mouse users.
<iaria-hidden="true"class="fa-solid fa-car"title="Time to destination by car"></i><spanclass="fa-sr-only">Time to destination by car:</span><span>4 minutes</span>
Class
Details
fa-sr-only
Visually hides an element containing a text-equivalent for an icon while keeping it accessible to assisitive technologies
fa-sr-only-focusable
Used alongside fa-sr-only to show the element again when it’s focused (e.g. by a keyboard-only user)
In the case of focusable interactive elements, there are various options to include an alternative text or label to the element, without the need for any visually hidden <span> or similar. For instance, simply adding the aria-label attribute with a text description to the interactive element itself will be sufficient to provide an accessible alternative name for the element. If you need to provide a visual tooltip on mouseover/focus, we recommend additionally using the title attribute or a custom tooltip solution.
An icon being used to communicate shopping cart state:
<ahref="path/to/shopping/cart"aria-label="View 3 items in your shopping cart"><iaria-hidden="true"class="fa-solid fa-shopping-cart"></i></a>
An icon being used as a link to a navigation menu:
<aaria-label="Skip to main navigation"href="#navigation-main"><iaria-hidden="true"class="fa-solid fa-bars"></i></a>
An icon being used as a delete button's symbol with a title attribute to provide a native mouse tooltip:
<aaria-label="Delete"class="btn btn-danger"href="path/to/settings"><iaria-hidden="true"class="fa-solid fa-trash"title="Delete this item?"></i></a>
Advertisement
Remove ads with a Pro plan!
Using this requires Font Awesome Pro
Pro
A subscription to a Pro-level plan will remove all third-party advertisments on fontawesome.com.
And of course Pro-level plans come with…
All 16,083 Icons in Font Awesome
Solid, Regular, Light, Thin, and Duotone Styles for Each Icon + Brands
A Perpetual License to Use Pro
Services and Tools to Make Easy Work of Using Icons
Our SVG+JS method uses the same auto-accessibility feature that is part of Kits. When your icon conveys meaning, we add supporting HTML elements and attributes so that your icons are accessible to the widest audience possible.
When your icon has semantic meaning, all you need to do is throw a title="meaning" attribute. Auto-accessibility takes care of the rest, adding the following:
Proper ARIA role (role="img")
title tag with a proper id attribute, based upon the title attribute given to the icon
aria-labelledby attribute and wire it to the title tag
<!-- Your HTML - Semantic Icons --><ititle="Magic is included!"class="fa-solid fa-magic"></i>
You can control the id attributes generated by specifying data-fa-title-id. This is useful
for some testing frameworks that use snapshots to verify test results.
<!-- Your HTML - Semantic Icons --><ititle="Magic is included!"data-fa-title-id="magic"class="fa-solid fa-magic"></i>
SVG Sprites follow most of the same rules as our SVG with JavaScript. However, you will need to add <title>, role, and aria-labelledby yourself.
<!-- Manually add title, role, and aria-labelledby --><ahref="https://twitter.com/fontawesome"><svgaria-labelledby="my-twitter-title"role="img"><titleid="my-twitter-title">The Font Awesome teams' Twitter account</title><usexlink:href="fa-brands.svg#twitter"></use></svg></a>
Decorative Icons
Add aria-hidden and role for decorative sprites.
<!-- Manually add aria-hidden and role --><ahref="https://twitter.com/fontawesome"><svgaria-hidden="true"role="img"><usexlink:href="fa-brands.svg#twitter"></use></svg></a>
<!-- Using property shorthand --><divslot="description">
You might be tempted to use
<codeclass="inline"><svg aria-hidden></code> and leave the
<codeclass="inline">="true"</code> part out. Don't, it's important for screen
readers to have a value that
<aclass="link blue5 hover-blue6"href="https://www.w3.org/TR/wai-aria-1.1/#aria-hidden">follows the spec</a>.
</div>
Advertisement
Remove ads with a Pro plan!
Using this requires Font Awesome Pro
Pro
A subscription to a Pro-level plan will remove all third-party advertisments on fontawesome.com.
And of course Pro-level plans come with…
All 16,083 Icons in Font Awesome
Solid, Regular, Light, Thin, and Duotone Styles for Each Icon + Brands
A Perpetual License to Use Pro
Services and Tools to Make Easy Work of Using Icons
Font Awesome comes bundled with basic animations in our support styling. These animations now support and leverage the prefers-reduced-motionCSS media feature(opens new window) to detect if a user has requested that the system minimize the amount of non-essential motion it uses.
Case
How It Affects Included Animations
No preference set (default)
Animations will render as expected
Preference set to reduce
Animations will be disabled
When a prefers-reduced-motion is set to reduce, the user prefers less motion on the page to help reduce discomfort from vestibular motion disorders and other motion sensitivities.
Other Cases and Information
While the scenarios and techniques here help avoid some serious issues and confusion, they are not exhaustive.
There are many complex contexts and use cases when it comes to accessibility, such as users with low vision who need a high color contrast ratio to see UI. There are some great tools and resources to learn from and work on these issues out there. Here are a few reads we recommend: