Sunset vibes 🌅 no alt text, we'll add it later (narrator: they did not)
📣 Accessible social media
Posts everyone can use
More than 1 in 6 people live with a disability, and they're on every platform you post to. A few small habits — good alt text, captions on every video, CamelCase hashtags — make your content reach further and exclude no one. Follow along with Reef Café 🐠, a little café learning to post for everyone (and quietly racking up more likes for it). Same post, two ways — with the reason each change matters.
Describe your images
Screen readers can't see a photo — they read its alt text aloud. No alt text means the image simply isn't there for blind and low-vision followers.
WCAG 1.1.1 Non-text Content · Deep dive: writing alt text →✕ Inaccessible
A screen reader reaches the photo and says:
"IMG_2043.jpg"
🤷
No alt text falls back to the filename. alt="image" or alt="photo" is just as useless.
✓ Accessible
Golden hour from the deck 🌅
Now the screen reader says:
"Aerial view of a Maldivian island ringed by a turquoise lagoon at sunset."
👌
Describe the purpose, not every pixel. Skip "image of…", don't keyword-stuff, and give purely decorative images empty alt (alt="") so they're passed over.
Caption every video
Captions serve Deaf and hard-of-hearing viewers — and anyone watching with the sound off: in an open-plan office, on a commute, or beside a sleeping baby. Auto-captions are a starting point, never the finish line.
WCAG 1.2.2 Captions · 1.2.5 Audio Description · Deep dive: captions & video →✕ Inaccessible
Raw auto-captions, left unchecked:
The caption track reads:
"welcome to a lily M V we test for double a"
Auto-captions mangle names, jargon and punctuation ("A11y.mv" → "a lily M V"), and add no speaker labels or sound cues.
✓ Accessible
Reviewed, corrected captions:
The caption track reads:
"[upbeat music] Irshad: Welcome to A11y.mv — we test for WCAG 2.2 AA."
Fix the auto-transcript, name speakers, and note meaningful sound. Add a transcript for audio-only posts and audio description when visuals carry information the narration doesn't.
Capitalise your hashtags
A run-together hashtag is a wall of lowercase letters. CamelCase — a capital starting every word — tells screen readers where the words break, and helps everyone read it.
WCAG 1.3.1 Info & Relationships · 3.1.5 Reading Level✕ Inaccessible
Fresh catch today! #seafoodlover #disabilityawarenessmonth
Often announced as:
"seafoodlover … disabilityawarenessmonth"
— one long garble.
All-lowercase gives the screen reader no word boundaries, and a run-on can read as an accidental, very different word.
✓ Accessible
Fresh catch today! #SeafoodLover #DisabilityAwarenessMonth
Announced clearly as:
"Seafood Lover … Disability Awareness Month"
Capitalising each word lets assistive tech split and pronounce it. Keep hashtags and @mentions at the end of the post, after your main message.
Try it
Hashtag reader
Type a hashtag and see how CamelCase changes the way a screen reader chunks it.
#a11ymv or #A11yMv.
Approximate word segmentation:
Accessibility Matters
This is a simplified illustration. Actual pronunciation varies by screen reader, voice, language and punctuation settings — the point is that capitalisation gives it word boundaries to work with.
Use emoji sparingly, at the end
Screen readers read every emoji's full name aloud. Sprinkled between words, they shatter a sentence; used as bullets, they repeat endlessly.
WCAG 1.1.1 Non-text Content · 1.3.2 Meaningful Sequence✕ Inaccessible
🎉We're🎉 now🎉 open🎉 for🎉 brunch👏👏👏
Announced as:
"party popper We're party popper now party popper open party popper for party popper brunch clapping hands clapping hands clapping hands"
😵
Emoji mid-sentence and as separators bury the message under spoken emoji names.
✓ Accessible
We're now open for brunch! 🎉
Announced as:
"We're now open for brunch! party popper"
One or two emoji, placed at the end. Never repeat the same emoji as a rhythm, and never use emoji in place of bullet points.
Lead with plain language
Clear, front-loaded writing helps people with cognitive disabilities, non-native readers, and anyone skimming a busy feed.
WCAG 3.1.3 Unusual Words · 3.1.4 Abbreviations · 3.1.5 Reading Level✕ Inaccessible
Leveraging synergistic F&B paradigms, our EOD deliverable actualises best-in-class customer NPS going forward. 🧵1/12
Jargon, undefined acronyms and buried meaning make readers work to decode a simple point. (Also: nobody knows what you're selling.)
✓ Accessible
New menu, same great coffee. Come try our weekend brunch — here's what's on it.
Say the point first. Spell out acronyms the first time, keep sentences short, and skip needless jargon.
Make links make sense
Most platforms read a link exactly as it's written. A raw, tracker-laden URL is read out character by character.
WCAG 2.4.4 Link Purpose✕ Inaccessible
Book a table 👉 reefcafe.mv/b?utm_source=ig&utm_campaign=q3&ref=aff_1993&id=x7Kq2
Read out as: "h t t p s colon slash slash reef cafe dot m v slash b question mark…"
😴
Screen readers spell out long tracking URLs. There's no cue to where the link goes or why to follow it.
✓ Accessible
Book a table for the weekend:
reefcafe.mv/book
Introduce the link with plain text ("Book a table:"), use a short, human-readable URL, and put it on its own line — don't bury it mid-sentence.
Skip the "fancy" Unicode fonts
Those 𝓼𝓬𝓻𝓲𝓹𝓽 and 𝕕𝕠𝕦𝕓𝕝𝕖-𝕤𝕥𝕣𝕦𝕔𝕜 styles aren't fonts — they're rare maths symbols. Screen readers can't map them to letters.
WCAG 1.3.1 · 4.1.2 Name, Role, Value✕ Inaccessible
𝓖𝓻𝓪𝓷𝓭 𝓞𝓹𝓮𝓷𝓲𝓷𝓰 𝓣𝓸𝓷𝓲𝓰𝓱𝓽!
Often announced as:
"(silence)"
— or each symbol's obscure maths name.
Styled Unicode is skipped or read as gibberish, and can't be searched, translated or enlarged reliably.
✓ Accessible
Grand Opening Tonight! 🎈
Announced as:
"Grand Opening Tonight!"
Use plain letters. If you need emphasis, rely on the platform's own bold/italic, wording, or a single emoji — not decorative code points.
Mind GIFs, flashing & motion
Fast-flashing content can trigger seizures, and endless motion is painful for people with vestibular disorders.
WCAG 2.3.1 Three Flashes · 2.2.2 Pause, Stop, Hide✕ Inaccessible
A strobing, high-contrast GIF that flashes several times a second, posted with no warning and no description.
More than three flashes per second is a seizure risk. Auto-playing, un-pausable motion also causes nausea and distraction.
✓ Accessible
A gentle clip with no rapid flashing, a described first frame, and a clear "flashing images" warning if any risk remains.
Avoid strobe effects, keep any flash under three per second, describe the GIF's content, and warn before flashing or motion-heavy media.
→ Go deeper
These sub-pages walk through the details with more examples.
✅ The 16-point checklist
Every category, C1–C16, with a clear do and don't example for each — from alt text to Dhivehi bilingual content and live video.
🖼️ Writing great alt text
Alt text vs. image descriptions, the "purpose" test, decorative images, and text-in-images.
📱 Alt text on every platform
Step-by-step for Instagram, X, LinkedIn, Facebook, TikTok, Bluesky and more — with character limits and their limitations.
🎬 Captions, transcripts & audio description
Open vs. closed captions, fixing auto-captions, speaker labels and sound cues, transcripts, and describing what the camera shows.
🎨 Colour & contrast
The ratios that matter, an interactive contrast checker, common mistakes, and why colour alone is never enough.
Before you hit post
The 60-second accessibility checklist
Run through this every time. Most items take seconds once they're a habit.
- Every meaningful image has alt text that describes its purpose.
- Decorative-only images are marked empty (
alt="") so they're skipped. - Videos have reviewed, accurate captions — not just auto-captions.
- Audio-only posts have a transcript.
- Hashtags use CamelCase and sit at the end of the post.
- No more than one or two emoji, placed at the end — never as bullets.
- The main message comes first; acronyms are spelled out.
- Links are introduced with plain text and use short, readable URLs.
- No fancy Unicode fonts — plain letters only.
- No rapid flashing (under three flashes per second) and motion is described.
- Colour and contrast in graphics meet 4.5:1, and nothing relies on colour alone.
# Where to add it, per platform
The habits are the same everywhere; only the buttons move. A quick map of where each platform hides its accessibility features.
Instagram & Threads
Alt text lives under Advanced settings → Write alt text before you share. Auto-generated alt exists — always overwrite it. Add captions to Reels and edit the auto-transcript.
X (Twitter)
Turn on image descriptions in settings, then tap +Alt on each image. Upload .srt caption files to videos rather than relying on auto-captions.
Click Alt text on each uploaded image. For video, upload an .srt caption file under the post's settings before publishing.
Edit an image, choose Alternative text → Override generated alt text. Add captions to videos via an uploaded .srt file.
TikTok & Reels
Enable auto-captions, then edit them for accuracy. Add photo alt text where offered, and avoid text baked only into fast-moving frames.
YouTube
Upload your own caption file or correct the auto-captions in Studio. Add descriptive titles and a full transcript or audio description where visuals matter.
Bluesky & Mastodon
Both prompt for alt text on every image and can nudge you when it's missing — turn those reminders on and keep them on.
Everywhere else
No alt field? Add a short image description in the post or first comment. No caption support? Burn open captions into the video itself.
? Common questions
The things people ask most when they start making their posts accessible.
Do I really need alt text if my caption already describes the image?
If the caption fully describes the image, you can keep the alt short — or, for a purely decorative image, mark it empty so it's skipped. But captions and alt text do different jobs: a screen reader reads alt text as the image, in place, while the caption is separate prose. When in doubt, add a concise alt; it never hurts. See writing great alt text.
Aren't the platform's automatic captions and auto alt-text good enough now?
They're a great head start and a poor finish. Auto-captions still mangle names, jargon and punctuation, and AI alt-text produces vague guesses like "image may contain: tree". Always review and correct them — it takes seconds and it's the difference between "a lily M V" and "A11y.mv". See captions & video.
Will accessible posts hurt my reach or look less polished?
The opposite. Captions boost watch-time (most people scroll on mute), alt text and clear language help search and comprehension, and CamelCase hashtags are simply easier for everyone to read. Accessibility and good marketing pull in the same direction.
How many emoji and hashtags is too many?
Aim for one or two emoji, placed at the end of the post, and a small handful of CamelCase hashtags after your message. Screen readers read every emoji's name and every hashtag aloud, so a wall of them turns your post into noise.
What about the "fancy" fonts and bold text in bios?
Those stylish 𝓼𝓬𝓻𝓲𝓹𝓽 and 𝗯𝗼𝗹𝗱 characters are actually rare maths symbols. Screen readers skip them or read them letter-by-letter as gibberish, and they can't be searched or translated. Use plain text, and lean on wording or a single emoji for emphasis. See fancy fonts.
I post in Dhivehi and English — how do I handle both?
Keep each language in its own clearly-labelled block rather than mixing them mid-sentence,
so assistive tech can switch voices. On the web, tag the language and direction
(lang="dv" dir="rtl"). There's a full example as
check C12.
▶ Check your own posts
Quick, free ways to catch problems before your followers do:
🔊 Listen to it
Turn on VoiceOver (⌘+F5 on Mac / iPhone) or Android TalkBack and let it read your draft post and its images. Does it make sense with your eyes closed?
🔇 Watch on mute
Play your video with the sound off. If you can't follow it from the captions alone, they aren't done yet.
🎨 WebAIM Contrast Checker (opens in a new tab)
Paste the colours from your graphic or text overlay to confirm they clear 4.5:1 for normal text.
📚 Accessible Social (opens in a new tab)
A free, in-depth reference with per-platform guides and checklists — a great companion to this page.
Want a workshop on this for your social or comms team, or an audit of your channels?
Get in touch