Walmart's 4.5:1 text contrast for video: set Sume caption colors
Walmart wants 4.5:1 contrast for normal text and 3:1 above 18 px. Sume caption design.colors sets text and card colors; ratios for four pairs inside.

Set the caption text and card colors yourself so the pair clears Walmart's contrast levels. Walmart's accessibility checklist, in its Rich media: Technical requirements PDF (updated Sep 17, 2026, read 2026-10-08), asks for a contrast ratio of 4.5:1 for normal-sized text and 3:1 for text larger than 18 px, and logos need no minimum. In Sume you send design.colors on POST /v1/video-captions; white text on a black card is 21:1, well over both.
The rule
Walmart refers to level AA compliance, which asks for 4.5:1 on normal text and 3:1 on larger text, defined on the page as larger than 18 px. It also says text that overlaps an image or video must still be legible. Embedded text other than a brand logo is discouraged in images.
A caption sitting directly on moving footage has no fixed background, so its ratio changes every frame. A solid card behind the text gives you one known pair to calculate.
The Sume fields
The caption docs say a style is a set of design tokens and that design overrides them for one request, each field optional and merged over the style. The colors group has base, active, stroke, accent, accent_deep and card, where a null card shows no card. Typography has font_size_ratio and stroke_width_px, and placement has anchor_ratio.
If you send nothing, the style decides: slam for Latin text. A caption job costs a flat $0.20 for videos up to 60 seconds, and a restyle of a clip Sume already transcribed is still a render at the same price.
| Text | Background | Ratio | Meets 4.5:1 | Meets 3:1 |
|---|---|---|---|---|
| #FFFFFF | #000000 | 21.0:1 | Yes | Yes |
| #FFE600 | #000000 | 16.6:1 | Yes | Yes |
| #22D3EE | #000000 | 11.6:1 | Yes | Yes |
| #9CA3AF | #FFFFFF | 2.5:1 | No | No |
curl -X POST https://api.sume.com/v1/video-captions \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: walmart-contrast-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/example/clean.mp4",
"style": "black-outline",
"design": {
"colors": { "base": "#FFFFFF", "card": "#000000" }
}
}'How to check the result
Contrast math tells you the pair is safe only if the pair is what renders. Pull one still from the captioned clip with POST /v1/video-frames at a time when a caption is on screen and look at it at phone size. If the text sits over bright footage with no card, the ratio you computed does not apply.
The ratios above come from the standard WCAG relative-luminance formula, not from Walmart's page; Walmart only states the 4.5:1 and 3:1 levels. Sume does not verify contrast for you.
If you caption a batch, fix the design object once and reuse it for every clip, then spot-check three or four captioned stills instead of all of them. Each caption job is a flat $0.20 for videos up to 60 seconds, so a 25-clip batch is $5.00 and a mistake caught on the first clip costs 20 cents, not five dollars.
- Pick a card color that is a solid fill, not a translucent one, if you need a fixed pair.
- Stroke color helps legibility but does not change the ratio of text to card.
- Larger than 18 px is Walmart's wording; treat text as normal-sized when in doubt.
Sources
Related posts
More in Use cases
- Walmart video .vtt captions: Sume burns text in, you build the file
Walmart calls closed captions optional but recommended and wants a .vtt name. Sume burns captions into pixels and returns no .vtt; here is the transcript route.
- Wan 3.0 clip as a Genjutsu source: $13.80 for 30 s at 480p
Use a 30-second Wan 3.0 clip as the motion source for Higgsfield Genjutsu: the two-step cost at 480p and 720p, and the request for each step.
- Wedding save-the-date video with Omni: 8 seconds, vertical
A 9:16 save-the-date from an engagement photo with Gemini Omni Flash: $1.00 at 720p on Sume, with names and date added as captions, not generated text.
- Weekly TikTok trend sweep: 3 regions x 4 keywords is $1.20
Loop four keywords over US, GB and KR with Sume trending search: 12 calls, $1.20 a week. A short Python script and a month of cost.
Written by Sume