Accessible on-screen text: contrast, the bottom 20 percent, no flashing

A checklist for text that everyone can read, including people watching muted, on a small screen, in sunlight, or with photosensitivity. Eight checks, each with the parameter to test against.

ACCESSIBLE TEXT, the checklist

1. Contrast: white text with a dark outline or a dark band passes on almost any background. Measured contrast between text and what is directly behind it at least 4.5:1 (the WCAG text threshold, used here as a parameter; check with any contrast picker on a frame grab from the busiest moment).
2. No text in the bottom 20 percent of a vertical frame and the bottom 10 percent of a horizontal one: the player's own controls and captions sit there.
3. No text in the top 10 percent: status bar, account name, the feed tabs.
4. Size: a parameter to check, not a number to trust. Read the video on a phone at arm's length with the smallest text; if you squint, it is too small.
5. Hold time: words divided by 2.5 seconds, minimum 1.2 s per overlay; subtitles 1-6 s per cue.
6. No flashing: nothing that changes luminance more than 3 times in any second, no full-frame strobes, no rapid cuts between a dark and a bright frame for more than a second (the photosensitivity threshold, used as a parameter; when in doubt, slow it down).
7. Captions carry the meaning, not only the words: a sound that matters is written ([door slams], [laughs]) and the speaker is named when more than one talks off camera.
8. The text is also in the caption or description: a viewer with a screen reader does not see burned text. Put the number, the name and the URL in the post text too.

Check on a phone, muted, with the screen brightness at half, outdoors if you can.

Paste into your assistant as the first message of a new chat; fill the braces first.

Steps

  1. Grab three frames: the busiest background, the brightest, the darkest. Check contrast on all three, not on the frame you designed for.
  2. Walk the checklist on the exported file, not the timeline; the export has the real letterboxing and the real encoding softness.
  3. Fix in this order: position, size, contrast, hold. Position fixes are free; contrast fixes may need a band under the text.

Tips

  • An outline plus a soft shadow passes almost everywhere; a box passes everywhere but hides the picture. Use the box only on white backgrounds.
  • Test the darkest frames with the screen at full brightness in a dark room; that is where a flash hurts and where a thin outline disappears.
works withBy hand: No tool needed: a checklist or a technique. · CapCut / any editor: A manual recipe for any editor. · ffmpeg: A terminal command you run yourself.
costFree. No API, no key.
statusUnverified: written from the technique, not yet run end to end by us.
licenseCC BY 4.0 for the text here; skills are MIT.
updated2026-11-01
for agentscaption-accessibility-checklist.md
#accessibility#captions#contrast#safe-zone#checklist#on-screen-text

Related

Captions & text beginner

Burned subtitles for 9:16: position, lines, characters, colour, as parameters

Settings for subtitles burned into vertical video for muted feeds: above the platform UI, two lines, about 32 characters each, white with a dark outline. Starting values, checked on a phone.

ffmpegCapCut / any editorBy hand
Captions & text beginner

Reading speed for on-screen text and speech: the parameters to check against

How long a text overlay must stay up and how many words a voice can carry per second, given as parameters you measure on yourself, with the formula and the two failure modes: unreadable, and slow.

By handCapCut / any editorClaude
Captions & text beginner

Three caption variants plus hashtags, with per-platform length limits

An agent prompt that writes three captions (short, story, question) and a hashtag set per platform, counting characters and hashtags against limits you paste in from today's upload form.

Claude CodeClaudeChatGPT
Captions & text beginner

Hook text on screen: a plan for the first three seconds, word by word

A prompt that plans what text appears in the first 3 seconds of a vertical video: the words, the moment each appears, the hold, what the picture does under it. Written so the hook works muted.

Claude CodeClaudeChatGPT
Video generation beginner

Before you post a generated video: disclosure and rights checklist

Six checks for AI-generated clips before they go on TikTok, Reels, Shorts or a client's site: labels, likeness, music, logos, model terms and provenance.

By hand
Captions & text intermediate

Burn subtitles with ffmpeg: the command with size, outline and margin

One ffmpeg command that burns an SRT into a 9:16 video with white text, a dark outline and the block held above the platform UI, plus the check that your ffmpeg build can run it at all.

ffmpeg