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 wurden, die nicht visuell formatiert waren. In Windows 8 und Windows Server 2012 wurde der klassische Modus entfernt und durch visuelle Designs mit hohem Kontrast ersetzt. Einer der Standard Vorteile dieser Änderung ist das Entfernen eines separaten Codepfads für Apps, die im klassischen Modus ausgeführt werden.

Entwickler müssen 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, dieselben Apps reagieren jedoch falsch bei hohem Kontrast. Für instance ist der Text in Aero immer schwarz, und die Hervorhebungsfarbe ist hellblau. In Schwarz mit hohem Kontrast ist die Hervorhebungsfarbe jedoch schwarz. Wenn Sie von schwarzem Text ausgehen, wie dies in vielen Box-Apps vor dem Windows 8 der Fall war, und verwenden Sie den Systemstandard für die Hervorhebung, wird dem Benutzer schwarzer Text auf einem schwarzen Hintergrund angezeigt. In diesen Situationen müssen Sie verstehen, wie Designs und Systemmetriken richtig verwendet werden, damit die App stilübergreifend korrekt aussieht.

Manifestationen

  • Das Theming ist im Clientbereich von Apps, die kein Windows 8 <supportedOS-Tag> im App-Manifest enthalten, nicht aktiviert. Daher müssen die Apps den Clientbereich mithilfe des Codepfads rendern, der zum Rendern im Modus mit hohem Kontrast des klassischen Designs erforderlich ist.
  • Das Theming ist sowohl im Nicht-Client- als auch im Clientbereich von Apps in Designs mit hohem Kontrast nicht aktiviert. Es ist auch nicht in Apps aktiviert, die kein Windows 8 <supportedOS-Tag> in ihrem App-Manifest enthalten und die mithilfe der DwnIsCompositionEnabled()-API im Nicht-Clientbereich eines Fensters 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 codieren Farben oder Bilder in ihren Apps, werden in Designs mit hohem Kontrast möglicherweise nicht ordnungsgemäß gerendert. Text ist möglicherweise schwer zu lesen, oder Bilder werden im Modus mit hohem Kontrast möglicherweise nicht so angezeigt, wie sie sollten.

Minderung

Die Textfarben in den Designs mit hohem Kontrast wurden so erstellt, dass sie den Microsoft-Richtlinien für Barrierefreiheit entsprechen. Wir behalten ein Verhältnis mit hohem Kontrast von 14:1 zwischen Vordergrund und Hintergrund bei. Wenn die standardmäßig aktivierten Farben nicht für einen bestimmten Endbenutzer geeignet sind, können sie in diesen Designs mit hohem Kontrast problemlos über die Einstellungen des Bedienfelds für "Fensterfarbe" angepasst werden.

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

  • Hintergrundfarbe des Fensters
  • Textfarbe
  • Hyperlinksfarbe
  • Text deaktiviert
  • Ausgewählte Textfarben für Vordergrund und Hintergrund
  • Vorder- und Hintergrundfarben des aktiven Fenstertitels
  • Titelfarben im inaktiven Fenster im Vordergrund und im Hintergrund
  • Vordergrund- und Hintergrundfarben der Schaltfläche

Lösung

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

  • Manifestieren einer App für Windows 8:

    Bei Apps, die nicht das Windows 8 <supportedOS-Tag> im App-Manifest enthalten, werden ihre Clientbereiche ohne Design gerendert. Im Lieferumfang enthaltene Apps sollten diesen Eintrag im App-Manifest enthalten. Fügen Sie den GUID-Wert 4a28e3-53b9-4441-ba9c-d69d4a4a6e38 für Windows 8 hinzu.

  • Verwenden von visuellen Formatvorlagen mit benutzerseitig gezeichneten UIs:

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

  • Textfarbe auswählen:

    Verwenden Sie keine hartcodierte Textfarbe, auch wenn angenommen wird, dass sie in allen gängigen Szenarien gut aussieht. Die Versanddesigns werden so erstellt, dass eine hohe Sichtbarkeit mit zugeordneten Metriken unterstützt wird. Für instance soll COLOR_HIGHLIGHTTEXT mit COLOR_HIGHLIGHT als Hintergrund verwendet werden und COLOR_WINDOWTEXT mit COLOR_WINDOW als Hintergrund verwendet werden. Wenn es Ausnahmen für diese Zuordnungen gibt, arbeiten Sie mit ihnen in den Designteilen und Zustandsdefinitionen selbst und nicht im Code. Beim Entwerfen von UIs mit hohem Kontrast ist es wichtig, dass die Benutzeroberfläche unabhängig vom aktuell angewendeten Design mit hohem Kontrast ist, da Benutzer mit hohem Kontrast ihre Farben anpassen können.

  • Reagieren 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 Nachrichtenhandler für WM_THEMECHANGE hinzu, der die gespeicherten Farbwerte neu berechnet und die Benutzeroberfläche neu streicht.

  • Schreiben einer WWA-App mit hohem Kontrast:

    Web-Apps haben keinen Zugriff auf die UxTheme-APIs, sollten aber dennoch mit den aktuellen Systemmetriken als Grundlage für die Benutzeroberfläche geschrieben werden. Es gibt einige Ressourcen, die WWA-Entwickler nutzen können, um eine Kontrastkonforme-kompatible App sicherzustellen:

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

    Windows Store-Apps weisen nicht viele der gleichen Probleme mit Designteilen auf, die in klassischen Windows-Anwendungen vorhanden sind, aber Sie müssen trotzdem die Compliance mit hohem Kontrast sicherstellen. Standardmäßig ignoriert das Internet Explorer bestimmte benutzerdefinierte Stile und ersetzt sie durch kontrastkonform kompatible Werte. Beispielsweise werden die CSS-Eigenschaften Hintergrundbild, Hintergrund und Farbe ignoriert.

    Wenn Sie nicht möchten, dass internet Explorer alle von Ihnen festgelegten Eigenschaften ignoriert und Sie sichergestellt haben, 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:

    Die Windows Store-App sollte die SystemColors-Klasse verwenden, um die richtige Farbgebung von UI-Elementen zu bestimmen, wobei zu beachten ist, dass bestimmte Systemmetrikfarben für die Verwendung in Verbindung konzipiert sind, z. B. SystemColors.WindowColor und SystemColors.WindowTextColor. Dies ermöglicht ein überlegenes Erlebnis mit hohem Kontrast.

  • Erkennen eines hohen Kontrasts in früheren Versionen von Windows ordnungsgemäß:

    Apps, die unter 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 Windows-Versionen verwendet wurde. Das Vorhandensein eines hohen Kontrasts sollte in diesem Fall durch Aufrufen der SystemParametersInfo-Funktion mit dem flag SPI_GETHIGHCONTRAST ü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 In-Box-Designs ordnungsgemäß gerendert wird: Aero, Basic, Hoher Kontrast 1, Hoher Kontrast 2, Hoher Kontrast Schwarz und Hoher Kontrast Weiß. Stellen Sie sicher, dass der Text in den Designs mit hohem Kontrast deutlich sichtbar und leicht lesbar ist.

Ressourcen