Freigeben über


Modus mit hohem Kontrast

Plattformen

Clients – Windows 8
Server – Windows Server 2012

Beschreibung

In früheren Windows-Betriebssystemen war der Modus mit hohem Kontrast auf Designs beschränkt, die unter klassischen Designs ausgeführt werden, die nicht visuell formatiert wurden. In Windows 8 und Windows Server 2012 wurde der klassische Modus entfernt und durch visuell formatierte Designs mit hohem Kontrast ersetzt. Einer der Hauptvorteile dieser Änderung ist das Entfernen eines separaten Codepfads für Apps, die im klassischen Modus ausgeführt werden.

Entwickler müssen immer noch darüber informiert werden, wie sich der Modus mit hohem Kontrast auf ihre App auswirken kann und wie Sie eine App entwickeln, die wirklich stilunabhängig ist. Dies ist wichtig, da die falsche Verwendung oder Annahme von Designfarben dazu führen kann, dass sich Apps unter einem visuellen Stil wie Aero ordnungsgemäß verhalten, die gleichen Apps reagieren unter hohem Kontrast falsch. In Aero ist text beispielsweise immer schwarz und die Hervorhebungsfarbe ist hellblau. In Schwarz mit hohem Kontrast ist die Hervorhebungsfarbe jedoch schwarz. Wenn Sie schwarzen Text annehmen, wie es in vielen In-Box-Apps vor Windows 8 der Fall war, und die Systemstandardeinstellung zum Hervorheben verwenden, wird dem Benutzer schwarzer Text auf einem schwarzen Hintergrund angezeigt. In diesen Situationen ist es notwendig, zu verstehen, wie Designs und Systemmetriken korrekt verwendet werden, damit die App in allen Stilen korrekt aussieht.

Erscheinungsformen

  • Design ist nicht im Clientbereich von Apps aktiviert, die kein Windows 8-<unterstütztes WINDOWS 8->-Tag im App-Manifest enthalten. Daher müssen die Apps den Clientbereich mit dem Codepfad rendern, der zum Rendern im Modus mit hohem Kontrast des klassischen Designs erforderlich ist.
  • Design ist nicht sowohl in den Bereichen nicht client- als auch clientseitig in Designs mit hohem Kontrast aktiviert. Es ist auch nicht in Apps aktiviert, die kein Windows 8-<unterstütztesOS->-Tag im App-Manifest enthalten und in den Nicht-Clientbereich eines Fensters mit der DwnIsCompositionEnabled()-API zeichnen. Die gesamte App wird im Modus mit hohem Kontrast des klassischen Designs gerendert.
  • Apps, die Unterstützung für Windows 8 in ihrem Manifest hinzufügen, aber keine visuellen Stile zum Rendern verwenden, d. h. sie hartcodieren Farben oder Bilder in ihren Apps, werden möglicherweise nicht ordnungsgemäß in Designs mit hohem Kontrast gerendert. Text kann möglicherweise schwierig zu lesen sein, oder Bilder werden möglicherweise nicht angezeigt, da sie im Modus mit hohem Kontrast angezeigt werden sollten.

Milderung

Die Textfarben in den Designs mit hohem Kontrast wurden erstellt, damit sie den Microsoft-Richtlinien für die Barrierefreiheit entsprechen. Wir pflegen ein 14:1-Kontrastverhältnis zwischen Vordergrund und Hintergrund. Wenn die standardmäßig aktivierten Farben für einen bestimmten Endbenutzer nicht geeignet sind, können sie einfach über die Systemsteuerungseinstellungen für "Fensterfarbe" in diesen Designs mit hohem Kontrast angepasst werden.

Diese UI-Komponenten können in Designs mit hohem Kontrast angepasst werden:

  • Fensterhintergrundfarbe
  • Textfarbe
  • Hyperlinksfarbe
  • Deaktivierter Text
  • Ausgewählte Text-Vordergrund- und Hintergrundfarben
  • Vordergrund- und Hintergrundfarben für aktive Fenstertitel
  • Inaktive Fenstertitel-Vordergrund- und Hintergrundfarben
  • Vordergrund- und Hintergrundfarben für Schaltflächen

Lösung

Wenn unerwartetes Verhalten in Apps in Designs mit hohem Kontrast angezeigt wird, kann eine der folgenden Lösungen hilfreich sein:

  • Manifestieren einer App für Windows 8:

    Apps, die nicht das windows 8-<unterstützteOS->-Tag im App-Manifest enthalten, werden ihre Clientbereiche ohne Design gerendert. In-Box-Apps sollten diesen Eintrag im App-Manifest enthalten. Fügen Sie den GUID-Wert 4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38 für Windows 8 hinzu.

  • Verwenden von visuellen Formatvorlagen mit vom Besitzer gezeichneten UIs:

    Vom Besitzer gezeichnete Steuerelemente sollten die Anweisungen auf MSDN- zum ordnungsgemäßen Rendern von Steuerelementteilen und -zuständen befolgen, einschließlich Text. Entwickler sollten sich nicht auf die in einem Gerätekontext angegebene Text- oder Hintergrundfarbe verlassen, um nicht-UxTheme-Methoden zum Rendern zu verwenden. Wenn für das betreffende Steuerelement kein Designteil vorhanden ist, verwenden Sie "GetThemeSysColor" mit der entsprechenden Metrik und zeichnen Sie den Text mit standardmäßigen GDI-Methoden. Wenn keines der UxTheme-Aufrufe geeignet ist, verwenden Sie die GetSysColor-Methode, um die entsprechende Metrik abzurufen.

  • Auswählen der Textfarbe:

    Verwenden Sie keine hartcodierte Textfarbe, auch wenn davon ausgegangen wird, dass sie in allen gängigen Szenarien einwandfrei aussieht. Die Versanddesigns werden auf eine Weise erstellt, die eine hohe Sichtbarkeit mit zugehörigen Metriken unterstützt. Beispielsweise soll COLOR_HIGHLIGHTTEXT mit COLOR_HIGHLIGHT als Hintergrund verwendet werden und COLOR_WINDOWTEXT mit COLOR_WINDOW als Hintergrund verwendet werden. Wenn es Ausnahmen zu diesen Zuordnungen gibt, arbeiten Sie mit ihnen in den Designteilen und Zustandsdefinitionen selbst und nicht im Code zusammen. Beim Entwerfen von UIs mit hohem Kontrast ist es entscheidend, dass die Benutzeroberfläche für das aktuell angewendete Design mit hohem Kontrast agnostisch ist, da Benutzer mit hohem Kontrast ihre Farben anpassen können.

  • Reaktion auf WM_ThemeChange Ereignis:

    Wenn Ihre App die Vom Design abgerufenen Farben zwischenspeichert oder Farben auf nicht standardmäßige Weise anwendet, fügen Sie einen Meldungshandler für WM_THEMECHANGE hinzu, mit dem die gespeicherten Farbwerte neu berechnet und die Benutzeroberfläche neu geordnet wird.

  • Schreiben einer WWA-App mit hohem Kontrast:

    Web-Apps haben keinen Zugriff auf die UxTheme-APIs, sollten aber trotzdem mit den aktuellen Systemmetriken als Grundlage für die Benutzeroberfläche geschrieben werden. Es gibt einige Ressourcen für WWA-Entwickler, um sicherzustellen, dass eine app mit hohem Kontrast kompatibel ist:

    • Die W3C-CSS-Farbspezifikation gibt die Syntax für die Verwendung von Systemmetriken anstelle bestimmter Farben an.
    • Unterstützung für Medienabfragen mit hohem Kontrast wird Internet Explorer 10 hinzugefügt.
    • WWAs können die IAccessibilityCapabilities::get_HighContrast()-Methode nutzen, um den Zustand des hohen Kontrasts zu überprüfen.

    Windows Store-Apps haben nicht viele der gleichen Probleme mit Designteilen, die in klassischen Windows-Anwendungen vorhanden sind, aber Sie müssen dennoch die Compliance mit hohem Kontrast sicherstellen. Internet Explorer ignoriert standardmäßig bestimmte benutzerdefinierte Formatvorlagen und ersetzt sie durch werte mit hohem Kontrast. Hintergrundbild-, Hintergrund- und Farb-CSS-Eigenschaften werden z. B. ignoriert.

    Wenn Sie nicht möchten, dass Internet Explorer eigenschaften ignoriert, die Sie festlegen, und sie haben sichergestellt, dass die Benutzeroberfläche mit hohem Kontrast kompatibel ist, können Sie die neue M3-CSS-Eigenschaft "ms-high-contrast: off" für ein übergeordnetes Element festlegen.

  • Schreiben einer Windows Store-App mit hohem Kontrast:

    Windows Store-App sollte die SystemColors Klasse verwenden, um die richtige Farbgebung von UI-Elementen zu bestimmen. Beachten Sie dabei, dass bestimmte Systemmetrikfarben in Verbindung verwendet werden sollen, z. B. SystemColors.WindowColor und SystemColors.WindowTextColor. Dies erleichtert eine überlegene Erfahrung mit hohem Kontrast.

  • ordnungsgemäß hohen Kontrast in früheren Versionen von Windows erkennen:

    Apps, die in früheren Versionen von Windows ausgeführt werden, haben keinen Zugriff auf die neuen Designs mit hohem Kontrast, auch wenn das Manifest die Kompatibilität mit der betreffenden Windows-Version angibt. Daher kann es erforderlich sein, zusätzliche Codepfade einzufügen, um das Rendering in der klassischen Umgebung zu verarbeiten, die in früheren Versionen von Windows verwendet wird. Das Vorhandensein eines hohen Kontrasts in diesem Fall sollte durch Aufrufen der SystemParametersInfo--Funktion mit dem SPI_GETHIGHCONTRAST-Flag überprüft werden. Dies ist die einzige unterstützte Möglichkeit, das Vorhandensein von hohem Kontrast zu überprüfen.

Tests

Stellen Sie beim Testen einer App sicher, dass sie in allen von Windows 8 bereitgestellten Designs korrekt gerendert wird: Aero, Basic, High Contrast 1, High Contrast 2, High Contrast Black und High Contrast White. Stellen Sie sicher, dass der Text in den Designs mit hohem Kontrast deutlich sichtbar und leicht zu lesen ist.

Betriebsmittel