High Contrast in mobilen Apps — Was es ist, Barrierefreiheit und Kontrasteinstellungen

Autor: IT Sectr Veröffentlicht: 2026-05-16 Lesezeit: 13 Min.

High Contrast — ein Barrierefreiheitsmodus von Betriebssystemen, der den Farbkontrast von Oberflächenelementen erhöht, um die Unterscheidbarkeit zu verbessern. In iOS befindet sich die Funktion Increase Contrast unter Settings > Accessibility > Display & Text Size und ermöglicht es, den Kontrast von Text, Schaltflächen und Rändern separat zu verstärken. In Android ist der ähnliche Modus High Contrast Text verfügbar unter Einstellungen > Bedienungshilfen > Text mit hohem Kontrast. Laut der Weltgesundheitsorganisation haben mindestens 2,2 Milliarden Menschen Sehbehinderungen, für die High Contrast entscheidend wichtig ist.

Wichtige Punkte

  • High Contrast — ein Modus zur Erhöhung des Farbkontrasts für die Barrierefreiheit mobiler und Desktop-Betriebssysteme
  • iOS Increase Contrast — drei Schalter: Erhöhung des Kontrasts von Text, Schaltflächen und Rändern
  • Android High Contrast Text — Überlagerung eines dunklen Hintergrunds mit weißem Text für maximalen Kontrast
  • WCAG-Kontrastverhältnis — Standard 4.5:1 für normalen Text und 3:1 für großen Text (AA-Stufe)
  • CSS prefers-contrast — eine Medienfunktion zur Anpassung von Stilen an die systemweite Kontrasteinstellung

Was ist High Contrast in der Barrierefreiheit?

High Contrast ist ein Anzeigemodus, bei dem das Betriebssystem oder die Anwendung den Unterschied zwischen der Vordergrundfarbe (Text, Symbole) und dem Hintergrund vergrößert. Das minimale Kontrastverhältnis für normalen Text nach dem WCAG-AA-Standard beträgt 4.5:1, für großen Text (ab 18pt oder 14pt fett) — 3:1. Der High-Contrast-Modus kann das Verhältnis auf 7:1 und höher erhöhen und so maximale Lesbarkeit gewährleisten.

Im Gegensatz zum einfachen Abdunkeln des Hintergrunds oder Aufhellen des Textes arbeitet High Contrast umfassend: Es ersetzt die Farbpalette der Benutzeroberfläche durch einen begrenzten Satz kontrastreicher Farben, fügt Umrisse um Elemente hinzu und entfernt Transparenz. Dieser Modus ist für Menschen mit eingeschränkter Sehschärfe, Lichtempfindlichkeit und bestimmten Formen von Farbenblindheit konzipiert.

Es gibt drei Arten von High Contrast: systemweit (im Betriebssystem aktiviert und betrifft alle Anwendungen), in der App (integrierter Modus innerhalb einer bestimmten Anwendung) und im Webmodus (CSS-Medienfunktion prefers-contrast). Systemweites High Contrast ist am leistungsstärksten, da es Farben sogar in Anwendungen überschreibt, die keine eigene Barrierefreiheitsunterstützung haben.

Wer braucht High Contrast?

Die Hauptnutzer von High Contrast sind Menschen mit Katarakt (Trübung der Linse, die die Kontrastempfindlichkeit verringert), Makuladegeneration (Verlust des zentralen Sehvermögens), Glaukom und diabetischer Retinopathie. Dieser Modus ist auch bei Arbeiten in hellem Sonnenlicht notwendig — hoher Kontrast gleicht Blendung auf dem Bildschirm aus. Laut WebAIM (2025) haben 86 % der Webseiten Text mit einem Kontrast unter WCAG AA — High Contrast auf der Benutzerseite korrigiert diesen Mangel teilweise.

Increase Contrast in iOS: Einstellung und Kontrastarten

In iOS befindet sich die Funktion Increase Contrast unter Settings > Accessibility > Display & Text Size und umfasst drei unabhängige Schalter: Increase Contrast (allgemeine Verstärkung), Darken Colors (Abdunkeln heller Farben) und Reduce Transparency (Transparenz reduzieren). Increase Contrast ist der Hauptschalter, der Text, Schaltflächen und Ränder von Systemelementen beeinflusst.

Technisch implementiert iOS Increase Contrast über tintColor und die UIVisualEffectView-Ebene. Bei Aktivierung erhöht das System den Alpha-Wert für dunkle Töne und verringert ihn für helle Töne, wodurch das Kontrastverhältnis aller UI-Elemente um 2–3 Punkte angehoben wird. Reduce Transparency ersetzt halbtransparente Hintergründe (Milchglaseffekt) durch undurchsichtige, was die Lesbarkeit von Text auf unscharfen Hintergründen weiter verbessert.

Überprüfen von Increase Contrast in einer iOS-App

Ein Entwickler kann den Status von Increase Contrast über UIAccessibility überprüfen und Farben entsprechend anpassen. Wenn der Kontrast beispielsweise erhöht ist, können gesättigtere Akzentfarben verwendet werden; andernfalls sollte ein Basiskontrastverhältnis von 4.5:1 über die Standardpalette sichergestellt werden. UIAccessibility.isReduceTransparencyEnabled ist auch nützlich, um Unschärfeeffekte zu deaktivieren, wenn der Modus aktiv ist.

swift
import UIKit

class ContrastManager {

    // Überprüfen des Increase-Contrast-Status
    static var isIncreaseContrastEnabled: Bool {
        return UIAccessibility.isDarkerSystemColorsEnabled
    }

    // Überprüfen von Reduce Transparency
    static var isReduceTransparencyEnabled: Bool {
        return UIAccessibility.isReduceTransparencyEnabled
    }

    // Farbe an den Kontrastmodus anpassen
    static func adjustedAccentColor() -> UIColor {
        guard isIncreaseContrastEnabled else {
            return .systemBlue
        }
        // Gesättigteres Blau bei aktivem High Contrast
        return UIColor(red: 0.0, green: 0.35, blue: 0.9, alpha: 1.0)
    }

    // Hintergrundfarbe unter Berücksichtigung von Reduce Transparency
    static func backgroundColor() -> UIColor {
        if isReduceTransparencyEnabled {
            return .systemBackground // Undurchsichtiger Hintergrund
        }
        return UIColor.systemBackground.withAlphaComponent(0.85)
    }

    // Änderungen abonnieren
    static func observeChanges(observer: Any, selector: Selector) {
        NotificationCenter.default.addObserver(
            observer,
            selector: selector,
            name: UIAccessibility.darkerSystemColorsStatusDidChangeNotification,
            object: nil
        )
        NotificationCenter.default.addObserver(
            observer,
            selector: selector,
            name: UIAccessibility.reduceTransparencyStatusDidChangeNotification,
            object: nil
        )
    }
}

// Anwendungsbeispiel: UINavigationBar
func applyContrastToNavigationBar(_ navBar: UINavigationBar) {
    if ContrastManager.isIncreaseContrastEnabled {
        navBar.isTranslucent = false
        navBar.barTintColor = ContrastManager.backgroundColor()
        navBar.titleTextAttributes = [
            .foregroundColor: UIColor.label,
            .font: UIFont.boldSystemFont(ofSize: 18)
        ]
    }
}

Die Klasse ContrastManager bietet Zugriff auf den Increase-Contrast-Status über isDarkerSystemColorsEnabled, passt die Akzentfarbe an, wenn der Modus aktiv ist, deaktiviert die Navigationsleisten-Transparenz und abonniert Systembenachrichtigungen über Kontraständerungen. UIKit zeichnet Elemente automatisch neu, wenn sich der UIAccessibility-Status ändert.

Dynamische iOS-Farben (UIColor Well) und Kontrast

iOS bietet dynamische UIColor-Farben (systemBackground, label, secondaryLabel), die sich automatisch an den Increase-Contrast-Modus anpassen. Wenn Increase Contrast aktiviert wird, ändern die Systemfarben ihre Werte: label wird dunkler (oder heller im Dunkelmodus), der Hintergrund verliert Transparenz. Entwickler werden ermutigt, für alle UI-Elemente dynamische Farben zu verwenden, um Konflikte mit dem Systemkontrast zu vermeiden.

High Contrast Text in Android: Dunkles Thema und Kontrast

In Android funktioniert die Funktion High Contrast Text anders als in iOS. Anstatt das Kontrastverhältnis sanft zu erhöhen, wendet Android ein umgekehrtes Farbschema an: dunkler Hintergrund und weißer Text mit erhöhter Fettung. Dieser Modus ist besonders auf AMOLED-Displays effektiv, wo Schwarz maximalen Kontrast bietet. Die Einstellung befindet sich unter Einstellungen > Bedienungshilfen > Sichtverbesserungen.

Android High Contrast Text verwendet zwei Mechanismen: Überschreiben der Farbpalette durch eine Design-Überlagerung und Anwenden einer ColorMatrix zur Erhöhung des Kontrasts von Bitmap-Bildern. Das System analysiert das aktuelle Anwendungsthema (Hell/Dunkel) und wendet eine Überlagerung mit maximalem Kontrast an: weißer Vordergrund (#FFFFFF) auf schwarzem Hintergrund (#000000). Halbtransparente Elemente erhalten einen undurchsichtigen Hintergrund.

Überprüfen von High Contrast Text über die Android-API

Um den Status von High Contrast Text in Android zu überprüfen, werden AccessibilityManager und ContentResolver verwendet. Die API ermöglicht es, festzustellen, ob der Modus aktiv ist, und die Benutzeroberfläche anzupassen. Jetpack Compose unterstützt die Anpassung über CompositionLocalProvider und LocalContrast.

kotlin
import android.accessibilityservice.AccessibilityService
import android.content.Context
import android.provider.Settings
import android.view.accessibility.AccessibilityManager
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color

class HighContrastHelper {

    // Überprüfung über AccessibilityManager
    fun isHighContrastTextEnabled(context: Context): Boolean {
        val am = context.getSystemService(
            Context.ACCESSIBILITY_SERVICE
        ) as AccessibilityManager
        return am.isEnabled && am.getEnabledAccessibilityServiceList(
            AccessibilityService.FEEDBACK_ALL_MASK
        ).any { it.resolveInfo.serviceInfo.packageName ==
            "com.android.server.accessibility" }
    }

    // Überprüfung über globale Einstellungen
    fun isHighContrastFromSettings(context: Context): Boolean {
        return try {
            Settings.System.getInt(
                context.contentResolver,
                "high_text_contrast_enabled"
            ) == 1
        } catch (e: Settings.SettingNotFoundException) {
            false
        }
    }

    // Jetpack Compose — Farben unter Berücksichtigung des Kontrasts
    @Composable
    fun contrastAwareColors(): Pair<Color, Color> {
        val context = androidx.compose.ui.platform.LocalContext.current
        return if (isHighContrastTextEnabled(context)) {
            Color.White to Color.Black
        } else {
            Color.Black to Color.White
        }
    }
}

// View-System: dynamischer Farbwähler
class ContrastTextView @JvmOverloads constructor(
    context: Context, attrs: AttributeSet? = null
) : AppCompatTextView(context, attrs) {

    private val helper = HighContrastHelper()

    override fun onAttachedToWindow() {
        super.onAttachedToWindow()
        if (helper.isHighContrastTextEnabled(context)) {
            setTextColor(Color.WHITE)
            setBackgroundColor(Color.BLACK)
            setTypeface(getTypeface(), Typeface.BOLD)
        }
    }
}

Die Klasse HighContrastHelper überprüft, ob High Contrast über AccessibilityManager und Systemeinstellungen aktiv ist, passt Farben in Jetpack Compose an und bietet ein benutzerdefiniertes ContrastTextView für das View-System. In Android gibt es im Gegensatz zu iOS keine direkte Benachrichtigung über High-Contrast-Änderungen — ContentObserver auf Settings.System ist für dynamische Aktualisierungen erforderlich.

Material Design 3 und High Contrast

Material Design 3 (Material You) enthält integrierte High-Contrast-Unterstützung über Dynamic Color. Wenn der Systemmodus aktiv ist, wählt Material 3 automatisch die maximale Tonpalette aus: background = Neutral0, onBackground = Neutral100, primary = Primary100. Entwickler müssen nur MD3-Komponenten verwenden — das System übernimmt die Kontrastanpassung automatisch.

WCAG-Kontrastverhältnis: Standards 4.5:1 und 3:1

Das WCAG-Kontrastverhältnis ist ein mathematisches Verhältnis der Leuchtdichte zwischen zwei Farben, das zur Bewertung der Textzugänglichkeit verwendet wird. Der Standard definiert zwei Schwellenwerte: 4.5:1 für normalen Text (AA-Stufe) und 3:1 für großen Text (ab 18px/14px fett). Für die AAA-Stufe sind 7:1 für normalen Text und 4.5:1 für großen Text erforderlich. Der High-Contrast-Modus sollte idealerweise 7:1 und mehr bieten.

Die Berechnung des Kontrastverhältnisses erfolgt nach der Formel: (L1 + 0.05) / (L2 + 0.05), wobei L1 die relative Leuchtdichte der helleren Farbe und L2 die relative Leuchtdichte der dunkleren Farbe ist. Die relative Leuchtdichte wird aus sRGB-Kanälen mit Gewichten berechnet: 0.2126R + 0.7152G + 0.0722B. Für Barrierefreiheitsentwickler reicht es aus, Werkzeuge wie WebAIM Contrast Checker, Color Contrast Analyser oder Accessibility Inspector in Xcode zu verwenden.

WCAG 2.2 Kontrastschwellen-Tabelle

StufeNormaler TextGroßer Text (18px/14px fett)UI-Komponenten
AA4.5:13:13:1
AAA7:14.5:1
High Contrast iOS~7:1~5.5:14.5:1
High Contrast Android~10:1~10:17:1

Kontrastprüfung im Code

Zur automatischen Überprüfung des Kontrastverhältnisses in einer Webanwendung kann JavaScript verwendet werden. Wenn der High-Contrast-Modus aktiv ist, sollten Elemente hervorgehoben werden, die den AA-Standard nicht erfüllen. Nachfolgend ein Beispiel zur Berechnung der relativen Leuchtdichte und des Kontrastverhältnisses in JavaScript.

js
// Berechnung des Kontrastverhältnisses nach WCAG 2.2
class ContrastChecker {

    // Konvertierung von sRGB in den linearen Raum
    linearize(channel) {
        const s = channel / 255
        return s <= 0.04045
            ? s / 12.92
            : Math.pow((s + 0.055) / 1.055, 2.4)
    }

    // Relative Leuchtdichte
    relativeLuminance(r, g, b) {
        const R = this.linearize(r)
        const G = this.linearize(g)
        const B = this.linearize(b)
        return 0.2126 * R + 0.7152 * G + 0.0722 * B
    }

    // Kontrastverhältnis zwischen zwei Farben
    getContrastRatio(hex1, hex2) {
        const rgb1 = this.hexToRgb(hex1)
        const rgb2 = this.hexToRgb(hex2)
        const L1 = this.relativeLuminance(rgb1.r, rgb1.g, rgb1.b)
        const L2 = this.relativeLuminance(rgb2.r, rgb2.g, rgb2.b)
        const lighter = Math.max(L1, L2)
        const darker = Math.min(L1, L2)
        return (lighter + 0.05) / (darker + 0.05)
    }

    hexToRgb(hex) {
        const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
        return result ? {
            r: parseInt(result[1], 16),
            g: parseInt(result[2], 16),
            b: parseInt(result[3], 16),
        } : null
    }

    // Prüfung auf AA-Stufe (4.5:1)
    passesAA(hex1, hex2) {
        return this.getContrastRatio(hex1, hex2) >= 4.5
    }

    // Prüfung auf AAA-Stufe (7:1)
    passesAAA(hex1, hex2) {
        return this.getContrastRatio(hex1, hex2) >= 7.0
    }
}

// Verwendung
const checker = new ContrastChecker()
console.log(checker.getContrastRatio("#333333", "#FFFFFF"))
// → 13.2:1 (AAA)
console.log(checker.passesAA("#999999", "#FFFFFF"))
// → false (2.8:1)

Die Klasse ContrastChecker in JavaScript implementiert eine vollständige Kontrastverhältnisberechnung nach WCAG 2.2: Konvertierung von sRGB in den linearen Raum, Berechnung der relativen Leuchtdichte mit Rec.709-Gewichten und Vergleich mit AA/AAA-Schwellenwerten. Dieses Werkzeug ist nützlich für die automatisierte Farbpalettenprüfung bei der Entwicklung von Webanwendungen mit High-Contrast-Unterstützung.

Kontrastprüfungswerkzeuge

Um das Kontrastverhältnis in einer fertigen Anwendung zu überprüfen, verwenden Sie Accessibility Scanner (Android), Xcode Accessibility Inspector (iOS) oder axe DevTools (Web). Diese Werkzeuge finden automatisch Elemente mit einem Kontrast unter WCAG AA und heben sie hervor. Der High-Contrast-Modus sollte während der Prüfung aktiviert sein — dies zeigt, ob die systemseitige Kontrastverstärkung ausreicht, um 7:1 zu erreichen.

CSS prefers-contrast: Anpassung von Webseiten an den Systemkontrast

Die CSS-Medienfunktion prefers-contrast ermöglicht es Webseiten, Stile basierend auf der systemweiten Kontrasteinstellung des Benutzers anzupassen. Die Funktion akzeptiert die Werte: no-preference (Standard), more (Benutzer hat High Contrast aktiviert), less (Benutzer bevorzugt reduzierten Kontrast) und custom (Feineinstellung). Sie wird seit 2022 von allen modernen Browsern unterstützt.

prefers-contrast: more — ein Signal für Webentwickler: das Textkontrastverhältnis erhöhen, halbtransparente Hintergründe durch undurchsichtige ersetzen, Grenzen interaktiver Elemente verstärken und kontrastarme Hintergrundbilder entfernen. iOS Safari und Android Chrome übergeben den Wert more, wenn der systemweite High-Contrast-Modus (Increase Contrast / High Contrast Text) aktiviert ist.

Anpassungsbeispiel mit prefers-contrast

Wenn prefers-contrast: more aktiv ist, sollte die Webseite die Anzahl der Farben minimieren und eine Schwarz-Weiß-Palette mit Akzentfarben für Hervorhebungen bevorzugen. Nachfolgend ein Beispiel für eine CSS-Anpassung mit Farbersetzung, Transparenzentfernung und Randverstärkung.

css
/* Basisstile (no-preference) */
.card {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(0, 0, 0, 0.1);
    color: #333;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.button {
    background: #0066CC;
    color: #FFFFFF;
    border: none;
    padding: 12px 24px;
}

/* Hoher Kontrast: more */
@media (prefers-contrast: more) {
    .card {
        background: #FFFFFF;
        border: 2px solid #000000;
        color: #000000;
        box-shadow: none;
    }

    .button {
        background: #004499;
        outline: 2px solid #000000;
        outline-offset: 2px;
    }

    .muted-text {
        color: #000000; // War #666 — jetzt schwarz
    }

    .overlay {
        background: rgba(0, 0, 0, 0.8); // War 0.4 — verstärkt
    }
}

/* Reduzierter Kontrast: less */
@media (prefers-contrast: less) {
    .card {
        border: 1px solid rgba(0, 0, 0, 0.05);
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
    }
}

Im CSS-Beispiel unter prefers-contrast: more erhält die Karte einen undurchsichtigen weißen Hintergrund, einen 2px schwarzen Rand, der Text wird schwarz (#000 statt #333) und die Schaltfläche wird dunkelblau mit einer schwarzen Kontur für Sichtbarkeit. Unter prefers-contrast: less (ein seltener Fall — der Benutzer bevorzugt weiche Farben) wird der Kontrast stattdessen reduziert.

Kombination mit prefers-color-scheme

Für eine vollständige Barrierefreiheitsanpassung wird prefers-contrast mit prefers-color-scheme (helles/dunkles Thema) kombiniert. Wenn prefers-color-scheme: dark und prefers-contrast: more beide aktiv sind, sollten die Farben weiß auf schwarz mit hellen Akzenten sein. Im hellen Modus — schwarz auf weiß. Die Kombination dieser Medienfunktionen ergibt 4 Kombinationen, die für eine vollständige Barrierefreiheitsabdeckung getestet werden müssen.

Häufig gestellte Fragen

Was ist High Contrast in mobilen Anwendungen?

High Contrast — ein Barrierefreiheitsmodus, der den Farbkontrast von Oberflächenelementen für Menschen mit Sehbehinderungen erhöht. In iOS heißt die Einstellung Increase Contrast (Settings > Accessibility > Display & Text Size), in Android — High Contrast Text (Einstellungen > Bedienungshilfen). Der Modus ersetzt Farben durch kontrastreiche, entfernt Transparenz und verstärkt Ränder.

Wie überprüfe ich High Contrast in einer iOS-App?

Um High Contrast in iOS zu überprüfen, verwenden Sie UIAccessibility.isDarkerSystemColorsEnabled (Bool). Um Änderungen zu verfolgen, abonnieren Sie UIAccessibility.darkerSystemColorsStatusDidChangeNotification. UIKit ändert Farben dynamisch, wenn der Modus aktiviert wird — verwenden Sie System-UIColor-Farben (systemBackground, label, secondaryLabel) für automatische Anpassung.

Wie funktioniert High Contrast Text in Android?

Android High Contrast Text wendet ein umgekehrtes Farbschema an — weißer Text auf schwarzem Hintergrund mit erhöhter Fettung. Der Modus verwendet eine Design-Überlagerung und ColorMatrix zur Kontrasterhöhung. Material Design 3 passt Farben automatisch an, wenn High Contrast aktiv ist — Entwickler müssen nur MD3-Komponenten und Dynamic Color von Android 12+ verwenden.

Welche WCAG-Anforderungen gibt es für Textkontrast?

WCAG definiert Kontrastverhältnisse: AA-Stufe erfordert 4.5:1 für normalen Text und 3:1 für großen Text (ab 18px oder 14px fett). AAA-Stufe — 7:1 für normalen Text und 4.5:1 für großen Text. Die Berechnung erfolgt über die Formel (L1 + 0.05) / (L2 + 0.05) unter Verwendung der relativen Leuchtdichte von sRGB-Kanälen mit Rec.709-Gewichten.

Wie passt CSS prefers-contrast Webseiten für High Contrast an?

Die CSS-Medienfunktion prefers-contrast: more ermöglicht es Webseiten, den Kontrast zu erhöhen, wenn systemweites High Contrast aktiv ist: rgba-Hintergründe durch undurchsichtige ersetzen, Ränder auf 2px verstärken, Text schwarz auf weiß machen und box-shadow deaktivieren. Es wird mit prefers-color-scheme für vollständige Anpassung unter dunklem Thema + High Contrast kombiniert. Von allen modernen Browsern seit 2022 unterstützt.

Zusammenfassung

  • High Contrast — ein systemweiter Barrierefreiheitsmodus, der den Oberflächenkontrast für Menschen mit Sehbehinderungen (Katarakt, Makuladegeneration) erhöht
  • iOS Increase Contrast — drei Schalter: Gesamtkontrast, Farbverdunklung, Transparenzreduzierung
  • Android High Contrast Text — umgekehrtes Weiß-auf-Schwarz-Schema mit erhöhter Fettung und AMOLED-Optimierung
  • WCAG-Kontrastverhältnis — AA = 4.5:1, AAA = 7:1; obligatorisch für Barrierefreiheitskonformität
  • CSS prefers-contrast: more — eine Medienfunktion zur Anpassung von Webstilen an systemweites High Contrast (Unterstützung seit 2022)
  • Dynamische Farben — iOS UIColor.systemBackground und Android MD3 Dynamic Color passen sich automatisch an den Kontrast an
  • Prüfwerkzeuge — Accessibility Scanner (Android), Xcode Inspector (iOS), axe DevTools (Web) zur Überprüfung des Kontrastverhältnisses

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch