Readability Standards & CM-Colors¶
This guide explains how our simple terms map to official accessibility standards (WCAG). Use this if you need to verify compliance for a ticket or audit.
Mapping Terms to Standards¶
We use simple language, but it maps directly to strict mathematical standards.
CM-Colors Output |
WCAG Level |
What it means |
|---|---|---|
“Readable” |
AA |
The global standard. Required for most government and business websites. |
“Very Readable” |
AAA |
The strict standard. For enhanced accessibility or critical text. |
“Not Readable” |
Fail |
Does not meet minimum contrast requirements. |
How to check compliance¶
You can check the exact status of any color pair in Python:
from cm_colors import ColorPair
pair = ColorPair("#767676", "#ffffff")
print(pair.is_readable)
# Output: "Readable" <-- This means it passes WCAG AA
# If you need AAA (Very Readable):
if pair.is_readable != "Very Readable":
print("Does not meet AAA standard")
Meeting Specific Goals¶
Goal: “I need to pass WCAG AA”¶
Use the default settings. make_readable() aims for AA by default because it’s the industry standard.
# Fixes color to meet WCAG AA (4.5:1 ratio)
fixed, success = pair.make_readable()
Goal: “I need to pass WCAG AAA”¶
Use the very_readable flag. This tells the tool to target the 7:1 contrast ratio required for AAA.
# Fixes color to meet WCAG AAA (7:1 ratio)
fixed, success = pair.make_readable(very_readable=True)
Goal: “I have large text (headings)”¶
WCAG has looser rules for large text (18pt+ or 14pt+ bold). Tell us about it so we don’t darken your colors unnecessarily.
# Uses the large text standard (3:1 for AA)
pair = ColorPair("#999", "#fff", large_text=True)
fixed, success = pair.make_readable()
Summary Table¶
You don’t need to memorize the ratios. Just know that Readable = AA and Very Readable = AAA.