DEV Community

Horus Lugo
Horus Lugo

Posted on • Edited on • Originally published at horus.dev

Happy Emoji Day! The Best Accessibility Practices To Use Emojis on the Web 🎉

Today is the World Emoji Day and because of that I'm going to share with you two tips that will make your Emojis accessible to people using screen readers:

1. Replacing Text with Emojis

The first one is going to be useful when we are replacing text with emojis. As an example, we could use the red cross emoji instead of the text "Delete" in a button that triggers the deletion of a record in our app, let's see the bad approach and the good one:

The bad approach: This button is not accessible, it will confuse the user because of how emojis are read by screen readers.


<button>❌</button>

Enter fullscreen mode Exit fullscreen mode

The good approach: This button is now accessible, we have wrapped the Emoji in a <span /> tag that has the role=img and aria-label attributes.

For a screen reader, the emoji will behave like an image with a description, and it will simply read it's description making this code accessible!


<button>
  <span role="img" aria-label="Delete">❌</span>
</button>

Enter fullscreen mode Exit fullscreen mode

2. Using Emojis as Decoration

This case is useful when we are using emojis as decoration, that's also when we don't want screen readers to see them, and for that we can use the aria-hidden attribute with the value true.

Here's an example with a bad and a good approach:

The bad approach: This button is accessible but doesn't follow the best practices as the screen reader will try to read the emoji and that will create unnecessary noise for the user.


<button>❌ Delete</button>

Enter fullscreen mode Exit fullscreen mode

The good approach: This button will work perfectly in screen readers because we're telling it to ignore the emoji. That's it!


<button>
  <span role="img" aria-hidden="true">❌</span> Delete
</button>

Enter fullscreen mode Exit fullscreen mode

It works with icons too! 🤯

It can't be all about emojis today, I'm pretty sure your app has icons, maybe you got those from FontAwesome? Material? An SVG you created?

Are they accessible? Because the tips we just saw also apply for icons!

So... even if you don't use emojis, what are you waiting for? Go and make your apps more accessible!


Follow me on Twitter https://twitter.com/HorusGoul if you want to learn more about web development!

Top comments (2)

Collapse
 
jslim profile image
José Delgado

Cool!.

Collapse
 
horusgoul profile image
Horus Lugo

Glad you liked it :)