Improving Your Tweet Accessibility

Twitter persists. Even if you have moved to Mastodon, Twitter will persist. As such, we need to continue to ensure it is accessible to all users. This post gathers some tips you can and should use.

Image Alternative Text

The last few days have seen more and more folks who are not disabled users, accessibility practitioners, nor adjacent folks promoting the use of alternative text for images on Twitter. This is awesome. I have written about it before and even offered Tweets with plain text instructions.

To try to reduce friction, I am going to show how the screens look to make this all go.

Some quick notes before we get started:

Enabling Image Alternative Text on Twitter

I will show you the web interface and an app interface. Bear in mind that these screens change over time, so if you are reading this in the future you may find that stuff is slightly different.

Web Interface

Go to the Profile and settings menu, choose Settings and privacy. From the screen that comes up, choose Accessibility at the bottom of the list (on the left). Check the box Compose image descriptions and press Save changes.

App Interface (Android)

Tap your profile pic to see the menu and choose Settings and privacy. On the next screen, choose Accessibility under the General heading. Check the box Compose image descriptions. There is no save button, so just return to your timeline.

User profile menu in the Twitter app. Settings and privacy screen in the Twitter app. Screen in the Twitter app to enable accessibility settings.

Embedding Alternative Text in a Tweet

Remember, this is not an automatic thing. You need to add alternative text yourself. Here is the basic process now that you have enabled it.

Web Interface

When you are writing a tweet and add an image, you will see a black bar on the bottom of the image with the text Add description. Click that and then type some text on the following screen. Be sure to hit the Apply button. Warning: if you click off the Tweet modal and your tweet goes away, even though it will save your tweet text, it will have lost the alternative text you wrote. So always at least copy it into your buffer just in case.

A new tweet being written, with an option to add an image description to the attached image. The dialog box to add alt text to an image.

App Interface (Android)

When you are writing a tweet and add an image, you will see a black bar on the bottom of the image with the text Add description…. Click that and then type some text on the following screen. Be sure to hit the Apply button at the top of the screen. If you do not, your text will not be saved.

Composing a tweet with an image in the Android app. The screen in the Android app to enter your image alternative text.

If you reply to a tweet with an image, note that you have to hit the Reply button to get the option to add alternative text. If you just respond in the area under the tweet, there is no option to add alternative text.

Writing Alternative Text

On Twitter, Robot Hugs did a great job of giving some examples using a tweet thread. I have embedded some of them here.


Hashtags on Twitter can be a problem when they are just long runs of all lower-case text. Not only are they hard to read for native speakers, but for non-native speakers of a language they can be impossible to parse. Further, screen readers just plow through them with generally poor pronunciation.

The best rule of thumb here is to essentially use camel case. Capitalize the first letter of each new word. It will be more readable, translatable, and better pronounced in screen readers.

I made a demo using this tweet:

The tweet as spoken by NVDA.
The tweet as spoken by JAWS.

My first time testing mixed case hashtags with screen readers was back in 2010. It was worlds better, but since I generally shunned hashtags I did a poor job of sharing that insight.


Emoji can be problematic for a lot of reasons, some of which I outlined in my post Avoid Emoji as Class Names as well as my post Accessible Emoji, Tweaked. Neither of them deals directly with Twitter, though.

In general, avoid too many emoji. Understand that different screen settings and sizes may make them hard to see, and that different cultural backgrounds (and context) can change their meaning. But beyond all that, they are just verbose in screen readers.

The tweet as spoken by NVDA.
The tweet as spoken by JAWS.

I hid the source of those tweets, because that is not the only account to use 👏 to punctuate every word. It is also an extreme example, but I hope it gets the point across.


Consider your audience. Consider making your tweets accessible. Now you can have a bigger audience.

These tips generally apply to Twitter user names as well, though you should consider them in profile bios as well.

Similarly, you will see some overlap with being nice over SMS as outlined in Texting Etiquette for Low Vision.

Update: February 21, 2018

An interview with Sassy Outwater at CBC radio: ‘Loudly Crying Face’: Your cute emojis are spoiling social media for blind users

Update: March 3, 2018

Eric Bailey made a video demonstration how different Unicode text in display names is read by a screen reader.

Update: July 15, 2018

The post Listening to Poo, Your Emoji and You discusses how annoying emoji and other special characters can be in Twitter handles.



Hello, thank you for the great information on making Twitter accessible. I was about to Tweet a link to your post about emojis, but realized that there wasn’t audio that matches what the Jaws reading. Would it be possible to include a transcript so the post is accessible to people who are Deaf or rely on captions or transcripts? Thank you for considering. Best, Susan Henderson

In response to Susan Henderson. Reply

Ah, oops. Great suggestion. Will add and comment here when done.


Thanks! It’s great information. I’m sharing it with our staff.

Susan Henderson; . Permalink

Leave a Comment or Response

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.