Color Blindness Simulator
Simulate 8 color vision deficiencies on images, screenshots and color palettes. Full-size PNG export and a pair check that flags colors that look the same.
- Runs in your browser
- Your data never leaves your browser
- Free · No Sign-Up
Scan with WeChat to share this tool
Examples, details and FAQ Worked examples, how it compares with other tools, and answers to common questions.
Example: the Default Chart Colors of matplotlib
The first four colors of matplotlib’s default cycle (tab10, also D3’s category10) are blue #1F77B4, orange #FF7F0E, green #2CA02C and red #D62728. Paste them into Colors mode. Under protanopia the green becomes #A39119 and the orange #A59100: ΔEOK 0.006 and contrast 1.00:1, flagged Look the same. Under deuteranopia the red and green are 0.040 apart (contrast 1.17:1), flagged Hard to tell apart. A line chart with these four series needs labels on the lines or different markers, not only a legend.
Example: Status Colors in a UI Kit
The default palette of Material UI uses #2E7D32 for success, #ED6C02 for warning, #D32F2F for error and #0288D1 for info. This is the list the Colors mode opens with. Under protanopia, success and warning are 0.057 apart (1.22:1). Under achromatopsia, success and error are 0.006 apart (1.02:1): in grayscale they are the same gray. Every pair has a contrast ratio below 3:1 under all types, so the hue carries the whole message. Add an icon and a text label to each status, as WCAG 2.2 Success Criterion 1.4.1 asks.
How the Results Are Computed
Each pixel is decoded from sRGB to linear light, multiplied by a 3×3 matrix, clipped and encoded back. The matrices for the red, green and blue types come from Machado, Oliveira and Fernandes (2009), the same values as the R package colorspace with linear = TRUE. For example, #E74C3C becomes #786D39 under protanopia.
The pair check measures the distance between two simulated colors in OKLab (ΔEOK) and their WCAG contrast ratio:
- Look the same: ΔEOK below 0.02, the just-noticeable difference that CSS Color 4 uses for gamut mapping.
- Hard to tell apart: below 0.06. Szafir (2018) found that a noticeable difference for a scatterplot point was about three times larger than lab models predict, so 0.06 is three JNDs. Small marks such as points and thin lines need at least this much.
- Distinct: 0.06 or more.
The contrast ratio is shown next to ΔEOK because a pair that differs mainly in lightness stays readable in a grayscale printout too. A ratio of 3:1 is the minimum WCAG 2.2 Success Criterion 1.4.11 sets for adjacent parts of a graphic.
How Common Each Type Is
Figures from the prevalence table in Webvision (Kalloniatis and Luu), based on European populations:
| Type | Men | Women |
|---|---|---|
| Deuteranomaly | 5% | 0.4% |
| Deuteranopia | 1.5% | 0.01% |
| Protanomaly | 1% | 0.01% |
| Protanopia | 1% | 0.01% |
| Tritanopia | 0.008% | 0.008% |
| All types | about 8% | about 0.5% |
Tritanomaly and the monochromacies are rare. A review in Eye (Simunovic, 2010) puts rod monochromacy and incomplete achromatopsia at 1 in 33,000 to 50,000. Rates differ by population: the Japanese Ophthalmological Society gives about 5% of men and 0.2% of women in Japan. Test the red–green types first; they cover almost everyone affected.
Compared with Chrome DevTools and Coblis
Checked on 2 October 2026:
- Chrome DevTools (Rendering → Emulate vision deficiencies, Chrome 152) has protanopia, deuteranopia, tritanopia and achromatopsia with the same Machado matrices, but no anomalous types, no severity and no export. On a Mac with a Display P3 screen, the colors read from a DevTools screenshot match the matrices applied in Display P3, not in sRGB. Green
#2CA02Cunder tritanopia came out as rgb(32, 155, 136); this tool gives rgb(0, 155, 137). On 24 test colors the largest difference was 32 levels. - Coblis runs in the browser and keeps the full image size, but shows one type at a time. It uses the HCIRN projection model, so
#E74C3Cunder protanopia is rgb(143, 131, 78), lighter than the Machado result. Its anomalous types are a fixed mix (1.75 parts simulation to 1 part original), with no severity setting, and its monochromacy uses Rec. 601 luma on gamma-encoded values.
Neither tool checks a palette pair by pair.
Limits
- A simulation shows an average observer, not what one person sees. It does not replace testing with people who have color vision deficiency.
- Colors outside sRGB (for example in Display P3 photos) are clipped to sRGB before the simulation. The tool reports the share of such pixels when the browser can read the image in Display P3.
- Images above 16,777,216 pixels are scaled down. HEIC and TIFF open only in browsers that decode them (Safari).
- Severity applies to the three anomalous types in steps of 0.1. Achromatomaly has no published model; the tool uses a 50/50 mix in linear light.
- Screen capture is not available on phones; there, take a screenshot and paste or open it.
- The Colors mode checks up to 12 colors; transparency is ignored.
Related checks: text contrast in the Color Contrast Checker, new palettes in the Color Palette Generator, and exact colors from a screenshot with the color picker.
FAQ
Which color blindness model does the simulator use?
Protanopia, deuteranopia and tritanopia and their anomalous forms use the matrices published by Machado, Oliveira and Fernandes (2009), applied in linear RGB. Chrome DevTools uses the severity 1.0 matrices from the same paper, rounded to three decimals, for its protanopia, deuteranopia and tritanopia modes; it has no anomalous modes. Achromatopsia is the Rec. 709 luminance in linear light, and achromatomaly is a 50/50 mix of the original and achromatopsia because no published matrix exists for it.
Is my image uploaded?
No. The image is decoded, simulated and encoded as PNG in your browser tab. The page sends no request with the image or the colors, and it saves only your view settings (mode, view, type and severity), never the image or the color list. Analytics records only the tool name and the action: opening an image, the sample chart, a screen capture, a download, and one event 1.5 seconds after you stop typing colors.
Why do my results differ from Chrome DevTools?
DevTools applies the matrices in the color space of your screen. On a Display P3 screen (Chrome 152 on a Mac, measured on 2 October 2026) the results differed from the sRGB calculation by up to 32 levels per channel, for example rgb(32, 155, 136) instead of rgb(0, 155, 137) for #2CA02C under tritanopia. This tool always computes in sRGB, so the PNG is the same on every screen.
What does the severity slider change?
It sets the severity of protanomaly, deuteranomaly and tritanomaly from 0.1 to 0.9, in the 0.1 steps of the Machado table. The default 0.6 is a middle value. Protanopia, deuteranopia and tritanopia always use severity 1.0.
How large can the image be?
Up to 16,777,216 pixels, the largest canvas every current browser accepts. A larger image is scaled down to that size and the tool says so. The cards show a reduced preview; the PNG download uses the full processed size and is computed in slices so the page stays responsive.