Accessible Emoji, Tweaked
Léonie Watson recently posted Accessible Emoji, a simple technique to make emoji characters accessible to those with screen readers. It requires a little bit of extra effort when inserting an emoji into a web page, but it is worth it to convey the meaning to screen reader users.
Then there are users like me, who cannot tell when an emoji face is laughing or crying, or who cannot tell the difference between a peach and an eggplant emoji. You can imagine what this has done for my dating life.
Borrowing a little from a tool-tip-ish CSS-only example from Russ Weakley, I have enhanced Léonie’s example to make that handy
aria-label display when the mouse hovers over the emoji. Add an unfortunate
tabindex and now a keyboard-only user can put focus on the emoji.
I set bottom of the tool-tip relative to the top of the emoji, allowing for very long explanations that do not hide the emoji itself. I also use a bit of animation to make it visually more apparent from where the tool-tip is supposed to spring. If you find the animation is problematic for users you can just drop the reference and all works fine.
I included print styles so that even when printed users like me will benefit from the additional context for the emoji (or users like my parents who still print articles to read them). Which is a great reminder to never forget your print styles (I have written on this extensively).
The text scales with the base font size. Make sure the
max-width limits the tool-tip from shooting out of the window. I did not include any Windows High Contrast Mode styles as the existing styles lend themselves well to be overridden.
When the device and/or browser does not recognize an emoji, your users can still get meaning with a tap or hover.
Update: January 4, 2017
I was reminded that some operating systems allow folks to use emoji that are custom to that operating system, without telling the user that some other folks cannot see it. The tweet below shows how that is a problem. When building a web page, it is even more reason to make sure you provide alternative text.
@aardrian “” is part of a private-use Unicode range, and on macOS and iOS, it renders as an Apple logo. http://www.liquisearch.com/mapping_of_unicode_characters/private_use_characters pic.twitter.com/GoQS4xEgwo— Ashley Bischoff (@FriendlyAshley) January 4, 2017
In case Twitter is hosed, just view a screen shot of the image here (115kb PNG).