
Write alt text on your website and you have done something useful for the people who need it. Share that article automatically to four social networks and, on most of them, the alt text you wrote does not travel with it. The image arrives; the description does not.
This is one of the least discussed consequences of publishing at volume. When a person shares a post by hand, they can type a description into the box the network provides. When a feed does it, nobody types anything, and whether the image ends up described depends entirely on how each network handles link previews — which is a very different mechanism from uploading a photograph.
This guide covers where alt text actually goes, which networks keep it and which discard it, and what to change on your own site so the situation improves everywhere at once.
Almost all the confusion here comes from conflating two mechanisms that look the same to a reader and are entirely different underneath.
An uploaded image is a file you hand to the network. The network stores it, and it usually offers a field where you can attach a description. That field is what most accessibility advice is about.
A link preview is what happens when you post a URL. The network fetches the page, reads its open-graph tags, and renders a card using the image those tags nominate. No file is uploaded, and there is no description field, because from the network’s point of view you did not post an image at all — you posted a link.
Automated posting from a feed produces the second kind almost exclusively. That single fact explains most of what follows.
The behaviour differs enough that a general rule would be misleading. The table below reflects how link previews behave, not uploaded images.
| Network | Alt text on a link preview | Notes |
|---|---|---|
| Not carried from your page | Preview images are decorative to the markup; the post text does the describing | |
| X | Not carried from your page | Alt text exists for uploaded media only |
| Not carried from your page | Same distinction between uploads and previews | |
| Mastodon | Not carried; strongly expected on uploads | Culturally the strictest network about descriptions |
| Bluesky | Not carried on preview cards | Alt text applies to uploaded images |
| Partially — reads page context | The closest to using your page’s own markup | |
| Telegram / Discord / Matrix | No concept on previews | The message text is the only description |
The pattern is consistent: alt text is a property of an upload, and automated posts are not uploads. Anyone promising that your alt text will carry through to social media is describing something that does not happen.
On a link preview, three things do the work, and all three come from your own site.
The post text — the title your feed emits. This is read aloud by screen readers and is the primary description of what the reader is being offered. It matters far more than most publishers realise, because on an automated post it is the only human-written text present.
The open-graph title and description — rendered inside the card, and read as part of it.
The image itself, which for most assistive technology is announced merely as an image, with no further detail.
The practical conclusion is uncomfortable but useful: for automated posts, your headline is your alt text. A title that describes what the article is about produces an accessible post. A title that relies on the picture to make sense — “You won’t believe this one” — produces a post that conveys nothing to someone who cannot see the image.
Everything above is downstream of your website, which means one set of fixes improves every destination at once. Four things, in order of impact.
The single highest-value change. If the headline makes sense with no image present, every automated post you ever make will be comprehensible. This also improves search results, feed readers and email newsletters — the same text appears in all of them.
Many sites leave og:description to be auto-generated from the first paragraph, which often begins mid-thought. A deliberate one or two sentences is read out as part of the card and is worth the minute it takes.
Not the site logo. A logo on every post tells a sighted reader nothing and an assistive technology user even less. If an article has a genuinely relevant image, make sure that is the one the tags point at.
It does not travel to social networks, but it still serves the readers who arrive on your site, and search engines use it. The work is not wasted; it simply does a different job from the one people assume.
Two cases where it genuinely carries through, and they are worth knowing because they are the exceptions that make the rule confusing.
Pinterest behaves differently from the others, drawing on page context when building a pin. Sites with good image markup do measurably better there, which is one reason Pinterest rewards the work that other networks ignore.
Anything that uploads rather than links. If a workflow downloads your image and uploads it as media — some automation platforms can be configured this way — then an alt field exists and can be populated, usually from the feed’s title or a dedicated field. This is the only route by which automated posts get real alt text, and it is worth knowing it exists before concluding the situation is hopeless.
Since the headline is doing the describing, it is worth applying the principles of good alt text to headlines rather than treating them as separate skills.
Describe the content, not the container. “Sunrise over a mountain ridge” says something; “Featured image” says nothing.
Do not begin with “image of”. Assistive technology already announces that it is an image. The same applies to headlines beginning with “Photo:”.
Length should match the purpose. A sentence is usually right. A paragraph is rarely read; three words are rarely enough.
Do not stuff keywords. It reads badly aloud, which is the whole point of the text, and search engines have treated it as a negative signal for years.
Decorative images need empty alt, not missing alt. On your own pages, alt="" tells a screen reader to skip a purely decorative image. Omitting the attribute entirely makes it announce the filename instead, which is worse than silence.
Two checks, neither of which takes long, and both worth doing once before publishing at volume.
First, open one of your articles and read only the headline and the open-graph description aloud, ignoring the image entirely. If you cannot tell what the article is about, neither can a substantial portion of your audience.
Second, look at what your pages actually declare. The og:image, og:title và og:description tags are what every network reads, and problems there affect every destination simultaneously — which is also why fixing them is efficient. This is the same markup behind automated posting generally; a site whose tags are in order produces good posts everywhere without further work.
When a preview comes out wrong — no image, the wrong image, a truncated title — the cause is almost always in the page’s own markup rather than in the automation. The networks are doing exactly what they were told; they were simply told something different from what you intended. Six failure modes account for nearly all of it.
A relative image path. og:image must be an absolute URL with the scheme included. A value like /wp-content/uploads/cover.jpg is valid HTML and useless to a crawler, which has no base to resolve it against. The card renders with no image at all, and the post loses its only visual element.
An image the crawler cannot fetch. Hotlink protection, a CDN rule that blocks unfamiliar user agents, or a file behind a login will all produce an imageless card while the picture displays perfectly to you in a browser. The crawler is not logged in and is not coming from your domain.
An image below the minimum size. Most networks discard anything under roughly 200 pixels on a side and will not enlarge a small file. Thumbnails nominated by accident — a common result of a plugin choosing the wrong image size — are silently dropped rather than shown small.
More than one og:image tag. Two plugins each adding their own is the usual cause. Behaviour varies: some networks take the first, some the last, and the result is inconsistent across destinations for reasons that look inexplicable until you view the source.
A missing og:title. Without it the network falls back to the HTML <title> element, which on many sites carries a site-name suffix and an SEO phrase appended by a plugin. The card then reads as a search-result snippet rather than a headline.
A cached preview. Networks cache what they scraped the first time, sometimes for days. If you fixed the tags after the first share, the old card persists. The fix is a network’s own scraping tool, or a fresh URL — not another attempt at the same post.
Checking for all six takes about a minute: open the article, view source, and search for og:. Everything a network will ever know about your page is in those few lines, and reading them yourself is faster than inferring the problem from the card.
The abstract advice becomes concrete quickly when you look at a real pair of headlines for the same article — a piece about a bakery that changed its overnight proving schedule.
Dependent on the image: “Guess what time we start now.” Alongside a photograph of a clock reading half past three, this works on a page. As an automated post it conveys nothing: the headline is a question, the description repeats it, and the image is announced as an image. A reader using a screen reader has been given a puzzle with no solution, and a sighted reader scrolling quickly has no reason to stop.
Standing alone: “Why we moved our overnight proving to 3:30am.” The picture still does its work for anyone who sees it, but the post no longer depends on it. This version reads correctly aloud, appears sensibly in a feed reader, survives being quoted in an email newsletter, and describes itself in search results.
Nothing about the second version is an accessibility compromise. It is simply a better headline, which is the practical argument for doing this work: the same edit that makes an automated post comprehensible to someone who cannot see the image also makes it more likely to be clicked by someone who can. If you publish across several destinations — a Pinterest board alongside the usual networks, say — the gain multiplies, because one headline is doing the describing everywhere at once.
No. On a link preview, the image is fetched from your open-graph tags and no description travels with it. Alt text applies to images uploaded directly to those networks.
Your headline and your open-graph description. For automated posts, the title is effectively the alt text.
For social previews, largely yes — but it still serves visitors to your site and is used by search engines, so it remains worth doing.
Pinterest, which draws on page context more than the others. Mastodon has the strongest culture around descriptions, but that applies to uploads rather than link cards.
Yes, where the workflow uploads the image as media rather than posting a link. That is the only route by which a genuine alt field gets populated.
Use alt="" for purely decorative images. Omitting the attribute causes some screen readers to read the filename instead.
Alt text is a modest, long-standing signal for image search. The larger effect from this work is on technical SEO generally, since the same tags shape how your pages appear everywhere.
Alt text does not travel with automated posts, and no setting will make it. The mechanism networks use for link previews has no field for it, because from their perspective you shared a link rather than an image.
That sounds like bad news and is really a simplification. It means the accessibility of everything you publish automatically depends on three things you already control on your own site: a headline that makes sense without the picture, a written open-graph description, and an image worth showing.
Fix those three and every destination improves at once — along with your search results, your feed readers and anyone who shares your articles by hand. Keep writing alt text on your pages for the readers who arrive there. Just stop expecting it to reach the networks, and put that effort into the headline instead, where for automated posting it does the same job.