Design für den Hochkontrastmodus: Windows, macOS und Web
Embed This Widget
Add the script tag and a data attribute to embed this widget.
Embed via iframe for maximum compatibility.
<iframe src="https://colorfyi.com/iframe/entity//" width="420" height="400" frameborder="0" style="border:0;border-radius:10px;max-width:100%" loading="lazy"></iframe>
Paste this URL in WordPress, Medium, or any oEmbed-compatible platform.
https://colorfyi.com/entity//
Add a dynamic SVG badge to your README or docs.
[](https://colorfyi.com/entity//)
Use the native HTML custom element.
Der Hochkontrastmodus ist eines der am häufigsten fehlerhaft umgesetzten Barrierefreiheits-Features in Webanwendungen. Nicht weil Entwickler ihn ignorieren – viele wissen nicht einmal, dass er existiert. Der Hochkontrastmodus ersetzt die sorgfältig gewählten Farben in Ihrem Design-System durch einen kleinen Satz hochangekontrastierter Systemfarben. Hintergründe werden schwarz oder weiß. Text wird zum Gegenteil. Benutzerdefinierte Farbpaletten, Gradienten, Box-Schatten und Hintergrundbilder, die Informationen vermitteln, verschwinden. Was bleibt, muss ausreichen, damit Nutzer navigieren und die Oberfläche bedienen können.
Für Nutzer, die auf den Hochkontrastmodus angewiesen sind – vor allem Menschen mit Sehbeeinträchtigungen, Lichtempfindlichkeit oder bestimmten kognitiven Einschränkungen – ist dies keine Präferenz. Es ist eine Voraussetzung für die Benutzbarkeit. Fehler darin bedeuten, dass ein Teil Ihrer Nutzer Ihr Produkt überhaupt nicht nutzen kann.
Was ist der Hochkontrastmodus und wer nutzt ihn?
Der Hochkontrastmodus ist ein Barrierefreiheits-Feature auf Betriebssystemebene, das Anwendungs- und Webseiten-Farbschemata durch hochkontrastige Alternativen ersetzt. Er wurde in Windows eingeführt und später (in anderer Form) von macOS und iOS übernommen.
Windows-Hochkontrastmodus
Der Windows-Hochkontrastmodus ist die aggressivste Implementierung. Wenn er aktiviert ist (über Einstellungen → Erleichterte Bedienung → Hoher Kontrast), überschreibt Windows systemweit Farben, auch in Webbrowsern. Chrome, Edge und Firefox respektieren den Windows-Hochkontrastmodus und wenden ihn auf Webinhalte an.
Windows bietet vier eingebaute Hochkontrastthemen: - Hoher Kontrast Schwarz: Nahezu schwarzer #000000 Hintergrund, weißer #FFFFFF Text - Hoher Kontrast Weiß: Nahezu weißer Hintergrund, dunkler Text - Hoher Kontrast Nr. 1: Dunkler blau-schwarzer #1F1F1F Hintergrund mit gelbem Text - Hoher Kontrast Nr. 2: Variationen auf dunklem Hintergrund mit unterschiedlichen Akzentfarben
Nutzer können auch benutzerdefinierte Themes erstellen und individuelle Farben für jede Systemfarbrolle auswählen.
macOS – Kontrast erhöhen
macOS wählt einen weniger aggressiven Ansatz. „Kontrast erhöhen" (Systemeinstellungen → Bedienungshilfen → Anzeige) verstärkt die visuelle Präsenz von UI-Steuerelementen – Rahmen, Trennlinien und Schaltflächen werden visuell deutlicher – ohne das gesamte Anwendungsfarbschema zu ersetzen. macOS bietet auch „Transparenz reduzieren", das durchsichtige Hintergründe durch opake ersetzt.
Die prefers-contrast: more-Medienabfrage erkennt sowohl den Windows-Hochkontrastmodus (in einigen Browsern) als auch macOS „Kontrast erhöhen". Die tatsächliche Farbersetzung unter Windows lässt sich jedoch besser über forced-colors: active erkennen.
Wer ist auf den Hochkontrastmodus angewiesen?
Zu den Nutzern des Hochkontrastmodus gehören: - Menschen mit Sehbeeinträchtigungen, für die Standard-Kontrastverhältnisse (selbst WCAG-AA-konforme) zum komfortablen Lesen nicht ausreichen - Menschen mit Photophobie (Lichtempfindlichkeit), die Standard-Hellmodus-Oberflächen schmerzhaft oder schwer nutzbar finden - Menschen mit bestimmten Formen von Farbsehschwäche, bei denen hoher Kontrast Unterschiede klärt, die Farbunterschiede nicht klären können - Nutzer in hellen Umgebungen, in denen Bildschirmblendung den Standardkontrast auswäscht - Menschen mit bestimmten kognitiven Unterschieden, die vereinfachte, hochkontrastige Oberflächen einfacher zu lesen finden
Diese Gruppe ist nicht klein. Microsoft schätzt, dass Hunderte Millionen Windows-Nutzer Barrierefreiheits-Features aktiviert haben, und der Hochkontrastmodus gehört zu den meistgenutzten dieser Features.
Forced Colors in CSS
Die forced-colors-Medienabfrage ist der CSS-Mechanismus zur Erkennung, wenn der Browser Farben mit systemdefinierten Werten überschreibt. Sie wurde in CSS Color Level 4 standardisiert und wird von allen modernen Browsern unterstützt.
@media (forced-colors: active) {
/* Stile, die nur bei aktiven Forced Colors angewendet werden */
}
Wenn forced-colors: active aktiv ist, führt der Browser Folgendes durch:
1. Ersetzt die meisten color-, background-color-, border-color-, outline-color-, fill- und stroke-Werte durch Systemfarben
2. Entfernt box-shadow (ersetzt es durch nichts, oder optional durch einen Outline)
3. Entfernt background-image vollständig (als Hintergründe verwendete Bilder und Gradienten verschwinden)
4. Macht border-Eigenschaften sichtbar, auch wenn sie auf transparent gesetzt wurden
Dieser letzte Punkt ist bedeutsam: Rahmen, die Sie als unsichtbar definiert haben (um stattdessen box-shadow für visuelle Tiefe zu verwenden), werden im Forced-Colors-Modus sichtbar. Umgekehrt verschwinden visuelle Hinweise, die Sie mit box-shadow erstellt haben.
Was wird überschrieben?
Nicht alles wird überschrieben. SVG-Bilder, Rasterbilder (<img>-Elemente) und background-image-Werte, die echte Bilder (keine Gradienten) sind, bleiben erhalten. Der Browser wendet Forced Colors nur auf CSS-spezifizierte Farben an.
Das ergibt ein vorhersehbares Muster für das, was Sie korrigieren müssen:
| Visuelles Element | Im Forced-Colors-Modus |
|---|---|
color: #3B82F6 |
Ersetzt durch CanvasText oder LinkText |
background-color: #EFF6FF |
Ersetzt durch Canvas |
border-color: #E2E8F0 |
Ersetzt durch ButtonBorder oder CanvasText |
box-shadow: 0 2px 4px rgba(0,0,0,0.1) |
Vollständig entfernt |
background-image: url(photo.jpg) |
Wie gehabt erhalten |
background-image: linear-gradient(...) |
Entfernt |
outline: none |
Kann durch System-Fokusring ersetzt werden |
Systemfarb-Keywords
CSS stellt Systemfarb-Keywords bereit, die auf dieselben Farbwerte verweisen, die das Betriebssystem für sein Hochkontrastthema verwendet. Diese Keywords in Ihren forced-colors-Medienabfrage-Stilen zu verwenden bedeutet, dass Ihre Komponente die tatsächlich vom Nutzer gewählten Systemfarben verwendet, statt einer fest codierten Annäherung.
Die wichtigsten Systemfarb-Keywords
Canvas /* Standard-Hintergrund (typischerweise schwarz bei Hoher Kontrast Schwarz) */
CanvasText /* Standard-Textfarbe auf Canvas */
LinkText /* Nicht besuchte Link-Textfarbe */
VisitedText /* Besuchte Link-Textfarbe */
ActiveText /* Aktive/gedrückte Link-Farbe */
ButtonFace /* Hintergrund für Schaltflächenelemente */
ButtonText /* Text auf Schaltflächenelementen */
ButtonBorder /* Rahmen für Schaltflächenelemente */
Field /* Hintergrund für Formulareingaben */
FieldText /* Text in Formulareingaben */
Highlight /* Hintergrund von ausgewähltem/markiertem Text */
HighlightText /* Text auf ausgewähltem/markiertem Hintergrund */
GrayText /* Deaktivierter Text */
Mark /* Hintergrund für hervorgehobenen Text (wie <mark>) */
MarkText /* Text auf Mark-Hintergrund */
Diese Keywords können überall dort verwendet werden, wo ein CSS-Farbwert gültig ist. Sie werden zu den tatsächlichen Themenfarben des Nutzers aufgelöst:
/* Schaltfläche, die Forced Colors respektiert */
.button {
background-color: #2563EB;
color: #FFFFFF;
border: 2px solid transparent;
}
@media (forced-colors: active) {
.button {
background-color: ButtonFace;
color: ButtonText;
border-color: ButtonBorder;
/* Der Forced-Colors-Modus macht den Rahmen sichtbar;
explizites ButtonBorder stellt die richtige Farbe sicher */
}
}
Die forced-color-adjust-Eigenschaft
Die forced-color-adjust-Eigenschaft steuert, ob ein bestimmtes Element an der Forced-Color-Überschreibung teilnimmt:
/* Ein Element VON der Forced-Color-Überschreibung ausschließen */
.color-swatch {
forced-color-adjust: none;
background-color: var(--swatch-color);
/* Diese Hintergrundfarbe bleibt auch im Forced-Colors-Modus erhalten */
}
Verwenden Sie forced-color-adjust: none sparsam. Es ist angemessen für Elemente, bei denen Farbe DER Inhalt ist – Farbwähler, Farbproben, Datenvisualisierungselemente – sollte aber nicht verwendet werden, um funktionale UI-Elemente von Forced Colors auszuschließen. Schaltflächen oder Formularfelder vom Forced-Colors-Modus auszuschließen kann sie im Hochkontrastmodus unsichtbar oder unbenutzbar machen.
Teststrategien auf verschiedenen Plattformen
Testen auf Windows
Der genaueste Test ist auf einem echten Windows-Gerät mit aktiviertem Hochkontrastmodus:
- Öffnen Sie Einstellungen → Erleichterte Bedienung → Hoher Kontrast
- Wählen Sie „Hoher Kontrast Schwarz" (die anspruchsvollste Option für Webinhalte)
- Öffnen Sie Ihre Seite in Chrome, Edge und Firefox
Wenn Sie kein Windows-Gerät haben, können Sie eine Windows-VM verwenden (Windows 11 ist kostenlos für Entwicklungszwecke verfügbar) oder Browser-Entwicklertools nutzen, die Forced Colors simulieren.
Chrome DevTools-Simulation:
- DevTools öffnen (F12)
- Ctrl+Shift+P (Cmd+Shift+P auf Mac) drücken, um die Befehlspalette zu öffnen
- Nach „Rendering" suchen und das Rendering-Panel öffnen
- Zu „CSS-Medienfunktion forced-colors emulieren" scrollen und auf „active" setzen
Dies simuliert die CSS-Änderungen, repliziert aber nicht perfekt den Windows-Hochkontrastmodus, weil es einen vereinfachten Satz von Systemfarbersetzungen verwendet. Es reicht aus, um die meisten Probleme während der Entwicklung zu erkennen, aber echter Windows-Test ist vor der Auslieferung erforderlich.
Firefox DevTools-Simulation:
Firefox hat eine eingebaute „Hoher Kontrast"-Simulation in seinem Barrierefreiheits-Panel, die echtes Windows-Verhalten enger annähert als Chromes Implementierung.
Testen auf macOS
- Systemeinstellungen → Bedienungshilfen → Anzeige
- „Kontrast erhöhen" aktivieren
- In Safari testen (das macOS-Kontrasteinstellungen am getreuesten respektiert)
macOS-Tests sind hauptsächlich relevant, um Probleme mit der prefers-contrast: more-Medienabfrage zu identifizieren. Die Farbersetzung, die Windows anwendet, erfolgt auf macOS nicht, daher zeigt macOS-Testing eine andere Klasse von Problemen.
Grenzen automatisierter Tests
Automatisierte Barrierefreiheits-Test-Tools (axe-core, Lighthouse, pa11y) testen kein Hochkontrastmodus-Verhalten. Die Forced-Color-Änderungen sind ein Rendering-Problem, keine Barrierefreiheitsregelverletzung im herkömmlichen Sinne – Ihre WCAG-Kontrastverhältnisse können in Ordnung sein, während Ihre Hochkontrastmodus-Darstellung fehlerhaft ist. Das bedeutet, Hochkontrastmodus-Tests müssen manuell durchgeführt werden.
Eine minimale manuelle Test-Checkliste
Überprüfen Sie für jede Seite oder Komponente im Forced-Colors-Modus:
- [ ] Gesamter Text ist gegen seinen Hintergrund sichtbar
- [ ] Alle interaktiven Elemente (Links, Schaltflächen, Formulareingaben) sind visuell erkennbar
- [ ] Fokusindikatoren sind sichtbar (nicht auf unsichtbar überschrieben)
- [ ] Formularfeld-Grenzen sind sichtbar
- [ ] Deaktivierte Zustände sind visuell unterscheidbar (mit
GrayText) - [ ] Ausgewählte Zustände (Checkboxen, Radio-Buttons, Tabs) sind von nicht ausgewählten unterscheidbar
- [ ] Fehler- und Erfolgszustände sind unterscheidbar (nicht nur durch Farbe)
- [ ] Icon-only-Schaltflächen haben sichtbare Grenzen oder barrierefreie Beschriftungen
- [ ] Keine Informationen werden ausschließlich durch
box-shadow, Gradient oderbackground-imagevermittelt
Häufige Fehler und wie man sie behebt
Fehler 1: Box-Schatten als Rahmen verwenden
Der weitverbreitetste Hochkontrastmodus-Fehler: UI-Komponenten, deren visuelle Grenzen durch box-shadow statt durch border definiert sind. Eine Karte mit box-shadow: 0 1px 3px rgba(0,0,0,0.1) scheint im Standardmodus über ihrem Hintergrund zu schweben. Im Forced-Colors-Modus wird der Schatten entfernt. Wenn kein tatsächlicher border definiert ist, wird die Karte unsichtbar – ihr Hintergrund verschmilzt mit dem Seitenhintergrund, weil beide durch Canvas ersetzt werden.
Lösung: Definieren Sie immer border für Komponenten, die eine sichtbare Begrenzung benötigen. Setzen Sie ihn im Standardmodus auf transparent, wenn Sie die Schatten-Ästhetik bevorzugen:
.card {
background-color: #FFFFFF;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
border: 1px solid transparent; /* unsichtbar im Standardmodus */
border-radius: 0.5rem;
}
@media (forced-colors: active) {
.card {
border-color: CanvasText; /* sichtbar im Forced-Colors-Modus */
/* box-shadow wird automatisch entfernt */
}
}
Fehler 2: Icon-only-Schaltflächen ohne sichtbare Grenzen
Eine Icon-Schaltfläche ohne Text, Rahmen und Hintergrund, die nur auf die eigene Farbe des Icons zur Sichtbarkeit setzt, wird im Forced-Colors-Modus zu einer schwebenden Form mit unvorhersehbarem Aussehen. Das SVG kann erhalten bleiben oder zu ButtonText umgefärbt werden, was die Schaltfläche visuell mehrdeutig macht.
Lösung: Pairen Sie Icon-only-Schaltflächen immer entweder mit einem sichtbaren Rahmen oder einem sichtbaren Hintergrund im Forced-Colors-Modus, und stellen Sie sicher, dass immer eine barrierefreie Beschriftung (aria-label) vorhanden ist:
.icon-button {
background-color: transparent;
border: 1px solid transparent;
border-radius: 0.25rem;
padding: 0.5rem;
}
@media (forced-colors: active) {
.icon-button {
border-color: ButtonBorder;
}
}
Fehler 3: Benutzerdefinierte Fokusindikatoren, die verschwinden
Designs, die den Standard-Browser-Fokusring (outline: none) ausblenden und ihn durch einen benutzerdefinierten Fokusindikator mit box-shadow ersetzen, verlieren diesen Indikator im Forced-Colors-Modus vollständig. Der Nutzer kann nicht erkennen, welches Element fokussiert ist.
Lösung: Verwenden Sie im Forced-Colors-Modus outline für Fokusindikatoren statt box-shadow. Das Forced-Colors-Rendering erhält outline, während es box-shadow entfernt:
.focusable:focus-visible {
outline: none;
box-shadow: 0 0 0 2px #2563EB, 0 0 0 4px rgba(37, 99, 235, 0.3);
}
@media (forced-colors: active) {
.focusable:focus-visible {
outline: 2px solid Highlight;
outline-offset: 2px;
box-shadow: none;
}
}
Fehler 4: Gradient-Hintergründe als Inhaltsträger
Hero-Bereiche, die einen Gradient-Hintergrund hinter Text verwenden, oder Overlays, die einen halbtransparenten dunklen Gradient verwenden, um weißen Text über einem Foto lesbar zu machen, verlieren diesen Gradient im Forced-Colors-Modus. Text, der gegen den Gradient lesbar war, kann unlesbar werden – oder das Hintergrundbild kann vollständig verschwinden, wenn es über CSS background-image statt einem <img>-Element gesetzt wurde.
Lösung: Verwenden Sie für Fotos, die als echte Bildinhalte dienen, ein <img>-Element (das im Forced-Colors-Modus erhalten bleibt) statt CSS background-image. Für Hero-Text auf Gradient-Hintergründen stellen Sie sicher, dass der Text ohne den Gradient ausreichend Kontrast hat, indem Sie mit entferntem Gradient testen:
.hero {
background-image: linear-gradient(to right, #1E3A8A, #1D4ED8);
/* Im Forced-Colors-Modus: Dieser Gradient wird entfernt, Canvas ersetzt ihn */
}
.hero-text {
color: #FFFFFF;
/* Im Forced-Colors-Modus: Dies wird zu CanvasText, was in Ordnung sein sollte */
}
Für den Fall, dass ein Foto den einzigen visuellen Kontext für Text liefert:
<!-- img statt background-image verwenden, damit es im Forced-Colors-Modus erhalten bleibt -->
<div class="hero">
<img src="hero-photo.jpg" alt="Beschreibung des Foto-Kontexts" class="hero-bg-image">
<div class="hero-content">
<h1>Überschriftentext</h1>
</div>
</div>
Fehler 5: Nur-Farbe-Statusindikatoren
Ein Status-Badge, der Hintergrundfarbe verwendet, um „Erfolg" (grün), „Warnung" (gelb) oder „Fehler" (rot) ohne Text oder Icon anzuzeigen, hat seine Farbe im Forced-Colors-Modus ersetzt. Alle drei Zustände können visuell identisch werden.
Dies ist sowohl ein Hochkontrastmodus-Problem als auch eine WCAG-1.4.1-Verletzung (Information nur durch Farbe vermittelt).
Lösung: Fügen Sie jeder Statusanzeige ein Textlabel oder Icon hinzu. Das Textlabel („Erfolg", „Warnung", „Fehler") bleibt im Forced-Colors-Modus erhalten, unabhängig davon, was mit der Hintergrundfarbe passiert:
<!-- Falsch: Nur-Farbe-Status -->
<span class="badge badge-success">3</span>
<!-- Richtig: Farbe + Textlabel -->
<span class="badge badge-success">
<svg aria-hidden="true"><!-- Häkchen-Icon --></svg>
Genehmigt
</span>
Fehler 6: Deaktivierter Zustand nicht vom aktivierten unterscheidbar
Im Forced-Colors-Modus sollten deaktivierte Formularelemente GrayText für ihren Text verwenden, um sie visuell von aktiven Elementen zu unterscheiden. Einige benutzerdefinierte Komponentenimplementierungen verwenden nur Deckkraft oder benutzerdefinierte Farbwerte für deaktivierte Zustände, die durch Forced Colors auf Standard-CanvasText überschrieben werden und deaktivierte Elemente identisch mit aktivierten aussehen lassen.
Lösung: Setzen Sie explizit color: GrayText für deaktivierte Zustände innerhalb der Forced-Colors-Medienabfrage:
.input:disabled {
opacity: 0.5;
cursor: not-allowed;
}
@media (forced-colors: active) {
.input:disabled {
color: GrayText;
border-color: GrayText;
opacity: 1; /* opacity hilft im Forced-Colors-Modus nicht */
}
}
Das Prinzip: Mit Struktur kommunizieren, nicht mit Farbe
Der Hochkontrastmodus erzwingt eine nützliche Design-Übung: Wenn Farbe und Schatten entfernt werden, können Nutzer dann noch Struktur, Hierarchie und Zustand Ihrer Oberfläche verstehen? Dies ist dasselbe Prinzip, das WCAG 1.4.1 zugrunde liegt („nicht nur durch Farbe"), und wer es umfassend erfüllt, erfüllt damit auch die Anforderungen des Hochkontrastmodus.
Designen Sie nach diesem Prinzip bedeutet:
- Sichtbare Rahmen für alle interaktiven Elemente, die klare Grenzanforderungen haben
- Text oder Icon + Farbe für alle Statusinformationen statt nur Farbe
- Outline-basierte Fokusindikatoren, die Forced-Color-Überschreibungen überleben
<img>-Elemente für inhaltsführende Bilder statt CSSbackground-image- Explizite deaktivierte Zustände mit
GrayTextoder visuellen Markierungen jenseits der Deckkraft
Wenn Ihre Oberfläche Struktur durch Form, Text und Rahmen kommuniziert statt nur durch Farbe und Schatten, wird der Hochkontrastmodus zu einer Konfigurationsänderung statt einem vollständigen Redesign. Die Investition, dies korrekt umzusetzen, zahlt sich für Nutzer aus, die darauf angewiesen sind – und verbessert in der Regel die strukturelle Klarheit des Designs für alle Nutzer.
Ähnliche Farben
Ähnliche Marken
Ähnliche Werkzeuge
Kontrastprüfer
Prüfen Sie Farbkontrastverhältnisse gemäß den WCAG 2.1-Richtlinien. Testen Sie die AA- und AAA-Konformität für normalen und großen Text.
Farbenblindheits-Simulator
Simulieren Sie, wie Farben bei Deuteranopie, Protanopie, Tritanopie und Achromatopsie erscheinen.