"""Count WCAG 2.2 text contrast for all opaque 8-bit sRGB background codes.""" import json def count_backgrounds(): channels=[code/255 for code in range(256)] linear=[v/12.92 if v<=0.04045 else ((v+0.055)/1.055)**2.4 for v in channels] blues=[0.0722*v for v in linear] counts={'noir_seul':0,'blanc_seul':0,'les_deux':0,'aucun':0} for red in linear: for green in linear: rg=0.2126*red+0.7152*green for blue in blues: luminance=rg+blue black=(luminance+0.05)/0.05>=4.5 white=1.05/(luminance+0.05)>=4.5 label=('les_deux' if white else 'noir_seul') if black else ('blanc_seul' if white else 'aucun') counts[label]+=1 return counts if __name__=='__main__': print(json.dumps(count_backgrounds(),indent=2))