contrastRatio function

double contrastRatio(
  1. PosColor a,
  2. PosColor b
)

Kontrastverhältnis nach WCAG: 1 (gleich) bis 21 (Schwarz auf Weiß).

4,5 ist die Schwelle für Fließtext, 3 für große Schrift. Die Kasse hält sich an 4,5 — auch für den großen Betrag, denn gelesen wird er oft schräg und in schlechtem Licht.

Implementation

double contrastRatio(PosColor a, PosColor b) {
  final ha = a.luminance;
  final hb = b.luminance;
  final hell = ha > hb ? ha : hb;
  final dunkel = ha > hb ? hb : ha;
  return (hell + 0.05) / (dunkel + 0.05);
}