# Kontrastprüfer (WCAG 2.2) > Berechnet das Kontrastverhältnis zweier CSS-Farben nach WCAG 2.2 und schlägt Farben gleichen Farbtons vor, die die Schwellen erreichen. ## URL-API - Mensch: https://contrast.barrierefrei.kiwi/?fg=7A8789&bg=FFFFFF - Maschine: https://contrast.barrierefrei.kiwi/?fg=7A8789&bg=FFFFFF&format=json Parameter: - `fg`: Vordergrund-/Textfarbe, `bg`: Hintergrundfarbe. Jede CSS-Farbe, URL-kodiert: Hex mit oder ohne `#` (3/4/6/8 Stellen), `rgb()`, `rgba()`, `hsl()`, `hwb()`, `lab()`, `oklch()`, `color()`, Farbnamen. - `format=json`: Die Seite zeigt nur das JSON in einem `
`. Benötigt JavaScript (Headless-Browser), da die Seite statisch ausgeliefert wird.

Beispielantwort:

```json
{
  "input": { "fg": "7A8789", "bg": "FFFFFF" },
  "fg": "#7A8789",
  "bg": "#FFFFFF",
  "effective": { "fg": "#7A8789", "bg": "#FFFFFF" },
  "ratio": 3.71,
  "wcag": {
    "version": "2.2",
    "normalText": { "AA": false, "AAA": false },
    "largeText": { "AA": true, "AAA": false },
    "nonText": { "AA": true }
  },
  "suggestions": {
    "fg": [ { "target": 4.5, "color": "#6D797A", "ratio": 4.5 }, { "target": 7, "color": "#515A5C", "ratio": 7.07 } ],
    "bg": [ { "target": 4.5, "color": "#1D1D1D", "ratio": 4.53 }, { "target": 7, "color": null, "ratio": null } ]
  },
  "url": "https://contrast.barrierefrei.kiwi/?fg=7A8789&bg=FFFFFF"
}
```

Bei ungültiger Farbe: `{ "error": "invalid color", "field": "fg" | "bg", "input": {…} }`.

## Berechnung (ohne Aufruf selbst nachrechenbar)

1. Alpha: Hintergrund mit Alpha wird auf Weiß gelegt, Vordergrund mit Alpha auf den so entstandenen Hintergrund: `c = a·fg + (1−a)·bg`, je Kanal auf 0–255 gerundet. Ergebnis steht in `effective`.
2. Relative Luminanz je Kanal: `c/255 ≤ 0.04045 ? c/12.92 : ((c+0.055)/1.055)^2.4`, dann `L = 0.2126·R + 0.7152·G + 0.0722·B`.
3. Kontrast: `(L_hell + 0.05) / (L_dunkel + 0.05)`, auf 2 Nachkommastellen abgeschnitten (nie aufgerundet).

Schwellen:
- Normaler Text: AA 4.5, AAA 7 (SC 1.4.3, 1.4.6)
- Großer Text (ab 24px oder ab 18.66px fett): AA 3, AAA 4.5
- Nicht-Text-Elemente (Icons, Rahmen, Bedienelemente): AA 3 (SC 1.4.11), kein AAA

Vorschläge: gleicher HSL-Farbton und -Sättigung, nur die Helligkeit ändert sich; jeweils die nächstgelegene Farbe, die das Ziel erreicht. Alpha des Ausgangswerts bleibt erhalten. `null` = mit diesem Farbton nicht erreichbar.