Alt text counter for Threads, X, Bluesky, Mastodon and LinkedIn
Write an image description once and see how each network counts it against its own limit, from 1,000 characters on X and Threads to 10,000 on Mastodon. It also points out the habits screen reader users notice, like starting with “image of”.
Runs in your browser. Your text and images never leave it.
Updated
Counted for each network as you type. Nothing you type leaves your browser.
Alt text limits
Nothing to count yet
- Threads1,000 leftThreads doesn't say how it counts, so we count the strictest way.0 of 1,000
- X1,000 leftX doesn't say how it counts, so we count the strictest way.0 of 1,000
- Bluesky2,000 left0 of 2,000
- Mastodon10,000 left0 of 10,000
- LinkedIn4,086 leftLinkedIn doesn't say how it counts, so we count the strictest way.0 of 4,086
Type a description, or try the example, and each network's count shows up here.
The alt text limit on each network
Every image in a post gets its own description, and each network caps how long it can be.
| Network | Limit | Counted in | Note |
|---|---|---|---|
| Threads | 1,000 | UTF-16 units: most emoji count 2 | Threads doesn't say how it counts. |
| X | 1,000 | UTF-16 units: most emoji count 2 | X doesn't say how it counts. |
| Bluesky | 2,000 | UTF-16 units: most emoji count 2 | The app's limit; the record itself sets none. The app counts like JavaScript's length, so most emoji count 2. |
| Mastodon | 10,000 | Code points: most emoji count 1 | |
| 4,086 | UTF-16 units: most emoji count 2 | LinkedIn recommends staying under 120 characters. |
Those are the limits for images in a post. There are a few more places to describe an image: Mastodon lets you describe your profile picture and header, in up to 150 characters, and a site's link card on X can carry its own description of up to 420, set in the page's twitter:image:alt tag.
Why the count differs between networks
Plain letters count 1 everywhere. Emoji, some accented letters and a few scripts don't.
Threads, X, Bluesky and LinkedIn count the way JavaScript does, in UTF-16 units. Most letters take 1, but most emoji take 2, and a family or a flag joined from several emoji takes more. Mastodon counts code points, where most emoji take 1.
Threads, X and LinkedIndon't say which way they count, so this tool counts them the stricter way, in UTF-16 units. A description that fits here fits there too. In practice the difference only shows up near the limit, and a description that long is rarely a good one.
What to put in alt text
The limits are generous. What makes a description useful is what it says, and accessibility guides agree on most of it.
- Say what the image is there for.The same photo needs different words in a post about the venue and a post about the speaker. Describe what someone would miss if they couldn't see it.
- Keep it short.WebAIM's advice is usually a few words, rarely more than a sentence or two. LinkedIn recommends staying under 120 characters.
- Skip “image of”.Screen readers announce that it's an image first. Say it's a photo, a drawing or a screenshot only when that matters.
- Write out the words in the image.A screenshot of a quote, a slide or a sign needs its text in the description, or it's lost to anyone who can't see it.
- For a chart, give the point. “Replies doubled from March to June” says more than every value. Put the detail in the post, where everyone can read it.
- Leave tags and links in the post.They aren't links in alt text, and a screen reader reads them out as part of the description.
Does Shaflex send alt text with my images?
Yes. In Shaflex you write a description for each image in your draft, and it goes out as that image's alt text on every network you post to, across Threads, X, Bluesky, Mastodon and LinkedIn, the same as posting by hand. If a network can't take an image, the post still goes to the networks that can, with a note saying why.
See how Shaflex schedules for Threads, X, Bluesky, Mastodon and LinkedIn, how one draft goes to every network, and what the free plan includes.
Where these rules come from
Each one is from the network's own documentation, help pages or source code. We last checked them on .
- Meta for Developers: Threads publishing reference (alt_text)
- X Developer Platform: Create media metadata (alt_text)
- Bluesky social-app source: image size configs, alt text and link card constants
- Bluesky social-app source: AltTextCounterWrapper
- Mastodon source: MediaAttachment (limits, formats, descriptions)
- mastodon.social instance API (configuration.media_attachments)
- LinkedIn Marketing API: Images API
- LinkedIn Marketing API: MultiImage API
- W3C WAI: Images tutorial
- W3C WAI: An alt decision tree
- WebAIM: Alternative text
More free tools
Each one runs in your browser too.
- Image tool
Image resizer
Crop, pad and compress an image for any network and placement, right in your browser.
Open it - Image tool
Carousel maker
Turn a long post, a thread or a list into a carousel: a cover, a slide per point and a closing slide, for Instagram, TikTok, LinkedIn or Facebook.
Open it - Image tool
Quote card maker
Turn a post, a tweet or a quote into one image on a gradient or solid background, in square, portrait, landscape or story size, saved as a PNG.
Open it
Questions
What's the alt text character limit on each network?
1,000 characters on Threads, 1,000 on X, 2,000 on Bluesky, 10,000 on Mastodon by default (each server can set its own) and 4,086 on LinkedIn through its API, which recommends staying under 120. Each image in a post gets its own description.
Is Bluesky's alt text limit 1,000 or 2,000 characters?
2,000. That's the limit in the Bluesky app's own code. The post record itself sets no limit, so another app could allow more, but 2,000 is what you get in the app.
How long should alt text be?
As short as it can be while still saying what matters. WebAIM's advice is usually a few words, rarely more than a sentence or two. For a chart or a screenshot full of text, say the point in the alt text and put the detail in the post.
Should alt text start with “image of” or “photo of”?
No. Screen readers already say it's an image before reading the description, so “image of” is heard twice. If it matters that it's a photo, a painting or a screenshot, say so in a few words.
Can I put hashtags or links in alt text?
You can, but they don't work there. A #tag in alt text isn't a link and doesn't put the post in a feed, and a link can't be followed. A screen reader reads both out as part of the description, so put them in the post instead.
Why do emoji count as 2 on some networks?
Threads, X, Bluesky and LinkedIn count alt text the way JavaScript does, in UTF-16 units, where most emoji take 2. Mastodon counts code points, where most emoji take 1. Threads, X and LinkedIn don't say how they count, so this tool counts them the stricter way.
Is my text saved or sent anywhere?
No. It's counted in your browser, and your description isn't stored or sent.
Describe it once, post it everywhere.
In Shaflex the alt text you write in a draft goes out with the image to every network, on the schedule you set.
Free plan, no card needed.



