-
Notifications
You must be signed in to change notification settings - Fork 0
/
colourblind_worst_contrast.c
41 lines (32 loc) · 1.67 KB
/
colourblind_worst_contrast.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include "../colourblind.h"
#define cbIMPLEMENTATION
#include "../colourblind.h"
int main() {
cb_rgb Purple = { 0.8f, 0.1f, 0.6f };
cb_rgb Green = { 0.1f, 0.8f, 0.2f };
float WorstImpairmentContrast = 21.f; // maximum possible contrast for the test used
cb_impairment WorstImpairment = cbUnimpaired; // == 0
for(cb_impairment Impairment = cbUnimpaired; Impairment < cbImpairmentCount; ++Impairment) {
cb_rgb PurpleImpaired = ColourblindRGB(Impairment, Purple);
cb_rgb GreenImpaired = ColourblindRGB(Impairment, Green);
printf("The %s equivalent of Purple is { %.2f, %.2f, %.2f }\n",
cbImpairmentStrings[Impairment], PurpleImpaired.R, PurpleImpaired.G, PurpleImpaired.B);
printf("The %s equivalent of Green is { %.2f, %.2f, %.2f }\n",
cbImpairmentStrings[Impairment], GreenImpaired.R, GreenImpaired.G, GreenImpaired.B);
float ImpairmentContrast = cbContrastRGB(PurpleImpaired, GreenImpaired);
printf("The %s Purple-Green contrast is %4f:1\n\n",
cbImpairmentStrings[Impairment], ImpairmentContrast);
if(ImpairmentContrast < WorstImpairmentContrast) {
WorstImpairment = Impairment;
WorstImpairmentContrast = ImpairmentContrast;
}
}
char *PassFail = WorstImpairmentContrast >= cbGuidelineScores[cbWCAG_Contrast_AA]
? "passes"
: "fails";
printf("\nThe contrast was worst in the %s condition, with a value of %4f:1\n"
"This %s the WCAG AA requirement.",
cbImpairmentStrings[WorstImpairment], WorstImpairmentContrast, PassFail);
return 0;
}