Social media accessibility means publishing posts that people can actually use regardless of how they browse — with a screen reader, with the sound off, with low vision, or on a cracked phone in bright sunlight. In practice it comes down to about eight repeatable habits: alt text on images, captions on video, camel-case hashtags, readable contrast, plain caption structure, sane emoji placement, no Unicode "fancy" fonts, and no information carried by color alone. None of them take longer than a minute per post, and every one of them also feeds text to the systems that decide who sees your content.
That last part is why this checklist sticks when the ethics argument alone doesn't. Alt text is indexable text. Captions are a transcript. A camel-case hashtag parses correctly for a screen reader and a search index alike. For most of this list, accessibility work and discoverability work are the same work.
The eight-point checklist at a glance
| Element | The habit | Where it applies |
|---|---|---|
| Alt text | Describe every image in one or two plain sentences | Anywhere with an alt field |
| Captions | Burned-in subtitles as default, caption file where accepted | All video |
| Hashtags | #CamelCaseEveryTag, grouped at the end or in the first comment | All platforms |
| Fonts | Native keyboard characters only — no Unicode script/bold generators | All platforms |
| Emoji | End of a line, never mid-word, never as bullets | All platforms |
| Contrast | High contrast text on graphics; don't rely on color alone | All image and video |
| Structure | Short lines, real line breaks, front-loaded meaning | All captions |
| Motion & sound | No strobing; never put key information in audio only | Video |
Everything below is how to actually do each one, and where the platforms differ.
Alt text: the highest-leverage 15 seconds
Alt text is a short written description of an image that a screen reader speaks aloud. If you write nothing, most platforms fall back to machine-generated object recognition — "may contain: two people, tree, outdoor" — which is vague, frequently wrong, and helps nobody. Our alt text glossary entry has the short definition; the Instagram alt text guide covers the writing formula in depth.
Support varies, and as of November 2025 it breaks down roughly like this:
- Real alt text fields: Instagram, Facebook, X, LinkedIn, Threads, Bluesky, Mastodon and Pinterest all give you a place to describe an image before or after posting.
- No alt field — the visible text does the job: YouTube thumbnails and Google Business Profile photos have no description layer, so your title, description and post copy have to carry the context.
- Video: alt text generally doesn't apply. Captions and a descriptive caption body are the equivalent.
Support shifts, so check your composer rather than trusting a list — TikTok, for instance, has been adding description fields to photo posts while video stays caption-led.
A workable formula: subject + action or context + one relevant detail. "A barista pouring latte art into a white cup at a wooden counter, morning light through the window" beats "coffee pic." Three rules that matter more than length:
- Transcribe any text that appears in the image. Words baked into a graphic are invisible to search and to screen readers otherwise. This is the single most-skipped item on the list.
- Skip "image of" / "photo of." Screen readers already announce it.
- Write distinct alt text per carousel slide. Each slide is its own image with its own field.
Don't keyword-stuff it. A description crammed with search terms is worse for the person listening and reads as spam to the platform.
Captions: files versus burned-in subtitles
Two different things get called "captions," and the distinction matters:
- Caption files (.srt or .vtt) are separate text tracks the viewer can toggle on or off. YouTube is the important one here — uploaded caption tracks are machine-readable, editable, and contribute to how the video is understood and surfaced. Facebook and LinkedIn also accept an SRT upload on desktop video posts, and most platforms now auto-generate a track you can edit before publishing.
- Burned-in subtitles, also called open captions, are rendered into the video pixels. Nobody can turn them off, which is exactly why they're reliable: they survive re-uploads, cross-posting and any platform that quietly drops your caption track.
The practical rule: burn in open captions as your default, and additionally upload a caption file wherever the platform accepts one. Burned-in subtitles guarantee the sound-off viewer gets the message; the caption file gives you the searchable transcript. A large share of feed video is watched muted, so this isn't only about deaf and hard-of-hearing viewers — it's the single change most likely to lift completion rate on a talking-head clip.
Two checks before you publish: auto-generated captions are frequently wrong on names, brands and jargon, so read them once and fix them; and keep burned-in text out of the platform's UI overlay zones. The social media image and video size reference shows where buttons and usernames sit on each format — subtitles hidden behind a share icon are the same as no subtitles.
To be clear about our own tool: SocialKit doesn't generate captions, transcribe audio or burn subtitles — that happens in your video editor before upload. What it does is give you a composer where the finished file, the caption and the per-platform hashtags all get reviewed together before anything goes out.
Camel-case hashtags
Write #SocialMediaAccessibility, not #socialmediaaccessibility. Screen readers parse capitalized words as separate words and read the tag as a phrase; an all-lowercase run of letters is read as one unintelligible string or spelled out character by character. Hashtag matching is case-insensitive on every major platform, so capitalizing costs you exactly nothing in reach — and it makes long tags legible to sighted readers too. Most of the famous accidentally-obscene hashtag disasters were lowercase run-ons that nobody proofread as one string.
Two placement habits that also help:
- Group hashtags at the end, not sprinkled mid-sentence. A tag inside a sentence interrupts the read-aloud flow and breaks the grammar for everyone.
- Move bulk hashtags to the first comment where it suits the platform. It keeps the caption itself clean and readable. If you schedule ahead, this can be automated — see how to schedule a first comment with hashtags.
Fancy fonts break more than screen readers
Those bold, script and gothic "fonts" from online generators aren't fonts. They're Unicode mathematical and symbol characters that happen to look like letters. A screen reader may announce them as "mathematical bold capital A," read them as nonsense, or skip them silently — turning your headline into dead air.
The damage is wider than accessibility: that text usually can't be found by in-app search, and sometimes renders as empty boxes on older devices. For emphasis, use structure instead — a short line on its own, a line break, or CAPS on a single word (not a whole sentence, which some screen readers spell out letter by letter). The guide to Instagram fonts and caption formatting covers what still works for visual hierarchy.
Same principle for decorative separators: ✦•✦•✦ becomes six spoken symbol names. One line break does the job.
Emoji placement
Every emoji has a spoken name. 🎉 is "party popper." A caption ending in seven emoji ends in seven consecutive spoken names, and a caption that uses ✅ as a bullet character reads "white heavy check mark" before every single item.
The rules are simple:
- Put emoji at the end of a sentence or line, not in the middle and never inside a word.
- Cap it at one to three per post. Decorative rows are noise in audio.
- Don't let an emoji carry meaning a word isn't also carrying. "Link in bio 👆" is fine; "👆" alone is not.
- Never use emoji as list bullets. Use a line break or a dash.
Our guide to using emoji in social posts goes further on tone and platform norms, and the emoji glossary entry covers how they're interpreted.
Contrast, text size and color
For anything with text on it — quote cards, carousel slides, thumbnails, Story frames — aim for the WCAG AA targets: a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text. Free contrast checkers will give you the number in seconds. Practical translations:
- Thin white type over a photo almost always fails. Add a dark overlay, a solid color block, or a text shadow.
- Light grey on white and mid-blue on black are the two most common failures in brand templates. Test your template once and you've fixed every post that uses it.
- Size up. Text sized for a laptop preview is often unreadable on the phone where it'll actually be seen.
- Never rely on color alone. A red bar versus a green bar means nothing to a colorblind viewer without a label. Add text, icons or patterns.
If you're building these graphics yourself without a design background, the design tips for non-designers walk through templates and hierarchy — most of what makes a graphic accessible is also what makes it look intentional.
Caption structure and plain language
Screen readers read a wall of text as a wall of text, and so does everyone else. Structure fixes both:
- Front-load the point in the first line, before the "more" truncation.
- Use real line breaks to separate ideas.
- Write plain sentences. Short words, active voice, no acronym unless you expand it the first time.
- Use descriptive link text where links are clickable. "Read the pricing breakdown" beats a bare URL or "click here."
- Skip the S P A C E D O U T aesthetic. It's read letter by letter.
Length matters too, since a truncated caption can strand the actual message below the fold — the character limits reference has the current cutoffs per platform. Beyond that, the mechanics of a caption people finish reading are covered in how to write engaging captions; accessible captions and good captions turn out to be almost the same document.
Motion, flashing and sound
- No strobing or rapid flashing — anything flashing more than three times a second is a seizure risk. Fast-cut edits with hard white flashes are the usual culprit.
- Avoid heavy parallax and shaking text in animated templates.
- Never put critical information in audio only. If a voiceover says the discount code and it's nowhere on screen or in the caption, deaf viewers and muted viewers both miss it.
- Describe visual-only jokes in the caption. If the punchline is entirely in the frame, one line of context makes it land for a screen-reader user.
- Add a content warning for flashing, loud audio or distressing subject matter — a line at the top of the caption, or the native content warning on platforms like Mastodon that offer one.
Bake it into scheduling, not accessibility week
Most brands' accessibility is patchy not because anyone disagrees with it, but because alt text is the last field before publish — and the last field before publish is the one that gets skipped when you're posting from your phone.
The fix is to move the work upstream, to the moment you're already writing the caption. When you draft a week of posts in one sitting, you write a week of alt text in the same sitting, with the images in front of you and the context fresh. In SocialKit that's the composer step: you write once, then customize the caption, hashtags and media per platform across all 11 networks — so per-platform alt text and a first-comment hashtag block are part of composing the post, not a separate cleanup pass. The visual calendar then shows you what's queued, which makes a quick accessibility review of the week's images realistic instead of theoretical. Every plan covers all 11 platforms and starts with a 7-day free trial, from €29/month as of November 2025.
Two team habits worth adding. If you run an approval step, put "alt text present, captions burned in, contrast checked" in the reviewer's pass rather than a policy document nobody opens. And fix your templates once — most contrast and safe-zone failures are template failures, repeated.
Start here this week
Don't try to retrofit your whole back catalog. Work in this order:
- Turn on alt text reminders where the platform offers them (X and Bluesky both have a setting that nudges or requires a description before you post).
- Test your two most-used graphic templates in a contrast checker and fix them.
- Add three lines to your posting checklist: alt text written, on-image text transcribed, captions burned in.
- Switch every saved hashtag set to camel case. It's a one-time find-and-replace in whatever doc you keep them in.
- Delete your fancy-font generator bookmark. Replace the emphasis with line breaks.
- Do one caption review pass on next week's scheduled posts: front-loaded first line, emoji at the end, no decorative separators.
Six moves, most of them one-time, and the result is content a meaningfully larger audience can actually consume — plus a lot more indexable text attached to posts you were publishing anyway. Run the checklist for a month and it stops being a checklist; it just becomes how you post.