C1
Image alternative text
Every meaningful image needs a short description a screen reader can read aloud.
✕ Don't
No alt, so it reads the filename: "IMG_2043.jpg" — or a useless alt="image".
✓ Do
alt="Aerial view of a Maldivian island ringed by a turquoise lagoon at sunset."
WCAG 1.1.1 · Writing alt text · per platform
C2
Complex image & infographic descriptions
Charts and infographics carry data — a one-word alt throws it all away.
✕ Don't
A bar chart posted with alt="chart". Every number is lost to non-visual users.
✓ Do
Short alt ("Bar chart: support requests by type, 2024") plus the figures in the caption or a linked page: Communication 42%, Mobility 31%, Vision 18%…
WCAG 1.1.1
C3
Text embedded in images
Words baked into a graphic can't be read aloud, searched, translated or zoomed.
✕ Don't
A quote card where the quote exists only as pixels, with no alt and nothing in the post text.
✓ Do
Put the full quote in the post text (and the alt); let the graphic be decoration. Keep text overlays high-contrast and brief.
WCAG 1.4.5 Images of Text
C4
Video & animation captions
Captions carry the audio for Deaf viewers — and the majority who watch on mute.
✕ Don't
Ship raw auto-captions: "welcome to a lily M V we test for double a".
✓ Do
Review them, add speaker labels and sound cues: "[upbeat music] Irshad: Welcome to A11y.mv — we test for WCAG 2.2 AA."
WCAG 1.2.2 · Captions & video
C5
Transcripts & audio description
Captions cover what you hear; transcripts and audio description cover the rest.
✕ Don't
Post an audio clip with no transcript, or a silent screen-demo that never says what's happening on screen.
✓ Do
Add a transcript in the caption or a link, and narrate the visuals — "the button's in the top-right" instead of "tap here".
WCAG 1.2.3 / 1.2.5 · Transcripts
C6
Colour contrast & graphic-text legibility
Text needs to stand out from its background — at least 4.5:1 for normal sizes.
✕ Don't
Light-grey caption text on a pale graphic at ≈ 1.9:1 — unreadable in sunlight or with low vision.
✓ Do
Dark text on a light surface (or vice-versa) at ≥ 4.5:1; add a solid scrim behind text placed over photos.
WCAG 1.4.3 · Contrast guide & checker
C7
Use of colour alone
If colour is the only cue, colour-blind users miss the message.
✕ Don't
"Tap the green button", or red = sold out — with colour as the only signal.
✓ Do
Add text, an icon or a pattern: "Sold out ✕", "In stock ✓", or name the button by its label.
WCAG 1.4.1 · Colour alone
C8
Hashtag formatting
CamelCase tells a screen reader where each word in a hashtag begins.
✕ Don't
#disabilityawarenessmonth — read as one long, garbled token.
✓ Do
#DisabilityAwarenessMonth, placed at the end of the post, after your message.
WCAG 1.1.1 / 1.3.1 · Hashtag reader
C9
Emoji usage & placement
Screen readers speak every emoji's full name, so a few go a long way.
✕ Don't
🎉We're🚀 hiring👏 a11y👏 engineers👏👏 — emoji mid-sentence and as separators.
✓ Do
We're hiring accessibility engineers. 🚀 — one or two, at the end. Never as bullet points.
WCAG 1.1.1 / 1.3.2 · Emoji
C10
Link text, URL & QR practice
Links should say where they go; QR codes need a text alternative.
✕ Don't
"click here", a raw tracking URL read out character by character, or a QR code with no written address.
✓ Do
Read the full guide: a11y.mv/social-guide — and always print the plain-text link beside any QR code.
WCAG 2.4.4 · Links
C11
Plain language & readability
Clear, front-loaded writing helps cognitive-disabled readers, and everyone skimming.
✕ Don't
"Leveraging synergistic paradigms, our EOD deliverable actualises best-in-class a11y KPIs."
✓ Do
"New guide: make your social posts work for everyone." Say the point first; spell out acronyms; keep sentences short.
WCAG 3.1.5 · Plain language
C12
Language ID & bilingual / Dhivehi content
Mark the language so screen readers switch voices — and keep Dhivehi and English apart.
✕ Don't
Mix Thaana and English mid-sentence with no separation. An English voice reads ދިވެހި as silence or gibberish.
✓ Do
Post each language as its own labelled block — 🇲🇻 ދިވެހި then 🇬🇧 English — and on the web tag it: <p lang="dv" dir="rtl">.
WCAG 3.1.1 Language of Page / 3.1.2 Language of Parts
C13
Motion, flashing & autoplay
Fast flashes can trigger seizures; endless motion causes nausea.
✕ Don't
A strobing GIF that flashes several times a second, autoplaying with sound, posted with no warning.
✓ Do
Keep any flash under three per second, avoid autoplay with sound, add a ⚠️ flashing images warning, and offer a still alternative.
WCAG 2.3.1 Three Flashes / 1.4.2 Audio Control · Motion
C14
Profile & contact accessibility
Your bio, handle and contact details are content too — keep them readable.
✕ Don't
A bio in fancy Unicode, contact details trapped inside a banner image, and no alt on the avatar or Story-highlight covers.
✓ Do
Plain-text bio and contact info, a described profile & cover image, and a pinned "How to reach us" post in real text.
Composite (1.1.1 · 1.4.5 · 4.1.2)
C15
Stylized text & special characters
"Fancy" font generators output rare maths symbols, not letters.
✕ Don't
𝓗𝓪𝓹𝓹𝔂 𝓐𝓬𝓬𝓮𝓼𝓼𝓲𝓫𝓲𝓵𝓲𝓽𝔂 𝓓𝓪𝔂 — skipped or read as symbol names. Also avoid ASCII art and symbol spam.
✓ Do
Happy Accessibility Day in plain letters, with the platform's own bold or a single emoji for emphasis.
WCAG 1.1.1 / 4.1.2 · Fancy fonts
C16
Live & ephemeral video
Live streams and Stories still need captions — even when they vanish in 24 hours.
✕ Don't
Go live or post a Story with spoken-only information, no captions, and let it disappear with no record.
✓ Do
Turn on live/auto captions, read on-screen text aloud, use Story caption stickers and alt, then save the replay with corrected captions.
WCAG 1.2.2 Captions / 1.2.4 Captions (Live)