Barrierefreiheit im Überblick

Dieser Artikel enthält eine Übersicht über die Konzepte und Technologien im Zusammenhang mit Barrierefreiheitsszenarien für Windows-Apps.

Barrierefreiheit und Ihre App

Es gibt viele mögliche Behinderungen oder Beeinträchtigungen, einschließlich Einschränkungen bei Mobilität, Sehvermögen, Farbwahrnehmung, Hörvermögen, Spracherkennung, Kognition und Lese- und Schreibfähigkeit. Sie können jedoch die meisten Anforderungen erfüllen, indem Sie die hier aufgeführten Richtlinien befolgen. Dies bedeutet:

  • Unterstützung für Tastaturinteraktionen und Bildschirmsprachausgaben.
  • Unterstützung für die Benutzeranpassung, z. B. Schriftart, Zoomeinstellung (Vergrößerung), Farbe und Einstellungen für hohen Kontrast.
  • Alternativen oder Ergänzungen für Teile der Benutzeroberfläche.

Steuerelemente für XAML bieten integrierte Tastaturunterstützung und Unterstützung für Hilfstechnologien wie Bildschirmsprachausgaben, die die Vorteile von Barrierefreiheitsframeworks nutzen, die UWP-Apps, HTML und andere UI-Technologien bereits unterstützen. Diese integrierte Unterstützung ermöglicht eine grundlegende Ebene der Barrierefreiheit, die Sie mit sehr wenig Arbeit anpassen können, indem Sie nur eine Handvoll Eigenschaften festlegen. Wenn Sie eigene benutzerdefinierte XAML-Komponenten und -Steuerelemente erstellen, können Sie auch ähnliche Unterstützung für diese Steuerelemente hinzufügen, indem Sie das Konzept eines Automatisierungspeers verwenden.

Darüber hinaus erleichtern Datenbindungs-, Stil- und Vorlagenfeatures die Implementierung der Unterstützung dynamischer Änderungen an Anzeigeeinstellungen und Text für alternative Benutzeroberflächen.

Benutzeroberflächenautomatisierung

Die Unterstützung der Barrierefreiheit stammt in erster Linie aus der integrierten Unterstützung für das Microsoft-Benutzeroberflächenautomatisierungs-Framework. Diese Unterstützung wird über Basisklassen und das integrierte Verhalten der Klassenimplementierung für Steuerelementtypen und eine Schnittstellendarstellung der Benutzeroberflächenautomatisierungs-Anbieter-API bereitgestellt. Jede Steuerelementklasse verwendet die Benutzeroberflächenautomatisierungs-Konzepte von Automatisierungspeers und Automatisierungsmustern, die die Rolle und den Inhalt des Steuerelements an Benutzeroberflächenautomatisierungs-Clients melden. Die App wird von der Benutzeroberflächenautomatisierung als Fenster auf oberster Ebene behandelt, und über das Benutzeroberflächenautomatisierungs-Framework steht allen Barrierefreiheitsrelevanten Inhalten innerhalb dieses App-Fensters für einen Benutzeroberflächenautomatisierungs-Client zur Verfügung. Weitere Informationen zur Benutzeroberflächenautomatisierung finden Sie in der Übersicht über die Benutzeroberflächenautomatisierung.

Hilfstechnologie

Viele Anforderungen an die Barrierefreiheit von Benutzern werden von hilfstechnischen Produkten erfüllt, die vom Benutzer oder von Tools und Einstellungen des Betriebssystems installiert wurden. Dies umfasst Funktionen wie Bildschirmsprachausgaben, Bildschirmvergrößerung und Einstellungen mit hohem Kontrast.

Hilfstechnologieprodukte umfassen eine Vielzahl von Software und Hardware. Diese Produkte arbeiten durch die standardmäßigen Tastaturschnittstellen- und Barrierefreiheitsframeworks, die Informationen über den Inhalt und die Struktur einer Benutzeroberfläche an Bildschirmsprachausgaben und andere Hilfstechnologien melden. Beispiele für Hilfstechnologieprodukte sind:

  • Die Bildschirmtastatur, mit der Benutzer einen Zeiger anstelle einer Tastatur verwenden können, um Text einzugeben.
  • Spracherkennungssoftware, die gesprochene Wörter in eingegebenen Text konvertiert.
  • Bildschirmsprachausgaben, die Text in gesprochene Wörter oder andere Formen wie Braille konvertieren.
  • Die Sprachausgabe, die speziell Teil von Windows ist. Die Sprachausgabe verfügt über einen Touchmodus, mit dem Bildschirmleseaufgaben ausgeführt werden können, indem Fingereingabegesten verarbeitet werden, wenn keine Tastatur verfügbar ist.
  • Programme oder Einstellungen, die die Anzeige oder Bereiche davon anpassen, z. B. Designs mit hohem Kontrast, Dpi-Einstellungen (Dots per Inch) des Bildschirms oder das Tool "Bildschirmlupe".

Apps mit guter Tastatur- und Sprachausgabeunterstützung funktionieren in der Regel gut mit verschiedenen Hilfstechnologienprodukten. In vielen Fällen funktioniert eine UWP-App mit diesen Produkten ohne zusätzliche Änderung von Informationen oder Strukturen. Möglicherweise möchten Sie jedoch einige Einstellungen für eine optimale Barrierefreiheit ändern oder zusätzliche Unterstützung implementieren.

Einige der Optionen, die Sie zum Testen grundlegender Barrierefreiheitsszenarien mit Hilfstechnologien verwenden können, sind in den Barrierefreiheitstests aufgeführt.

Unterstützung der Sprachausgabe und grundlegende Informationen zur Barrierefreiheit

Bildschirmsprachausgaben bieten Zugriff auf den Text in einer App, indem sie in einem anderen Format gerendert werden, z. B. gesprochene Sprache oder Braille-Ausgabe. Das genaue Verhalten einer Sprachausgabe hängt von der Software und der Konfiguration des Benutzers ab.

Beispielsweise lesen einige Sprachausgaben die gesamte App-UI, wenn der Benutzer gestartet oder zur angezeigten App wechselt, wodurch der Benutzer alle verfügbaren Informationsinhalte empfangen kann, bevor er versucht, zu navigieren. Einige Bildschirmsprachausgaben lesen auch den Text, der einem einzelnen Steuerelement zugeordnet ist, wenn er während der Registerkartennavigation den Fokus erhält. Auf diese Weise können sich Benutzer orientieren, während sie zwischen den Eingabesteuerelementen einer Anwendung navigieren. Die Sprachausgabe ist ein Beispiel für eine Sprachausgabe, die je nach Benutzerauswahl beide Verhaltensweisen bereitstellt.

Die wichtigsten Informationen, die eine Sprachausgabe oder eine andere Hilfstechnologie benötigt, um Benutzern zu helfen, eine App zu verstehen oder zu navigieren, ist ein barrierefreier Name für die Elementteile der App. In vielen Fällen verfügt ein Steuerelement oder Element bereits über einen barrierefreien Namen, der aus anderen Eigenschaftswerten berechnet wird, die Sie andernfalls bereitgestellt haben. Der häufigste Fall, in dem Sie einen bereits berechneten Namen verwenden können, ist ein Element, das inneren Text unterstützt und anzeigt. Für andere Elemente müssen Sie manchmal andere Möglichkeiten berücksichtigen, um einen barrierefreien Namen bereitzustellen, indem Sie bewährte Methoden für die Elementstruktur ausführen. Und manchmal müssen Sie einen Namen angeben, der explizit als barrierefreier Name für die App-Barrierefreiheit vorgesehen ist. Eine Auflistung der Funktionsweise dieser berechneten Werte in allgemeinen UI-Elementen und weitere Informationen zu barrierefreien Namen im Allgemeinen finden Sie unter Grundlegende Informationen zur Barrierefreiheit.

Es stehen mehrere weitere Automatisierungseigenschaften zur Verfügung (einschließlich der im nächsten Abschnitt beschriebenen Tastatureigenschaften). Nicht alle Sprachausgaben unterstützen jedoch alle Automatisierungseigenschaften. Im Allgemeinen sollten Sie alle geeigneten Automatisierungseigenschaften festlegen und testen, um die größtmögliche Unterstützung für Bildschirmsprachausgaben bereitzustellen.

Tastaturunterstützung

Um eine gute Tastaturunterstützung bereitzustellen, müssen Sie sicherstellen, dass jeder Teil Ihrer Anwendung mit einer Tastatur verwendet werden kann. Wenn Ihre App hauptsächlich die Standardsteuerelemente verwendet und keine benutzerdefinierten Steuerelemente verwendet, haben Sie die meisten Möglichkeiten. Das grundlegende XAML-Steuerelementmodell bietet integrierte Tastaturunterstützung, einschließlich Registerkartennavigation, Texteingabe und steuerelementspezifische Unterstützung. Die Elemente, die als Layoutcontainer (z. B. Panels) dienen, verwenden die Layoutreihenfolge, um eine Standardregisterkartenreihenfolge einzurichten. Diese Reihenfolge ist häufig die richtige Aktivierreihenfolge, die für eine barrierefreie Darstellung der Benutzeroberfläche verwendet werden soll. Wenn Sie ListBox- und GridView-Steuerelemente zum Anzeigen von Daten verwenden, stellen sie eine integrierte Pfeiltastennavigation bereit. Oder wenn Sie ein Schaltflächen-Steuerelement verwenden, behandelt es bereits die LEERTASTE oder die EINGABETASTE für die Aktivierung der Schaltfläche.

Weitere Informationen zu allen Aspekten der Tastaturunterstützung, einschließlich aktivierreihenfolge und tastenbasierter Aktivierung oder Navigation, finden Sie unter Barrierefreiheit der Tastatur.

Medien und Beschriftung

In der Regel zeigen Sie audiovisuelle Medien über ein MediaElement-Objekt an. Sie können MediaElement-APIs verwenden, um die Medienwiedergabe zu steuern. Stellen Sie für Barrierefreiheitszwecke Steuerelemente bereit, mit denen Benutzer die Medien nach Bedarf wiedergeben, anhalten und beenden können. Manchmal enthalten Medien zusätzliche Komponenten, die für die Barrierefreiheit vorgesehen sind, z. B. Untertitelung oder alternative Audiospuren, die Beschreibungen der Erzählung enthalten.

Barrierefreier Text

Drei Hauptaspekte von Text sind für die Barrierefreiheit relevant:

  • Tools müssen bestimmen, ob der Text als Teil einer durchlaufenen Tabstoppsequenz gelesen werden soll oder nur als Teil einer Gesamtdokumentdarstellung. Sie können diese Bestimmung steuern, indem Sie das entsprechende Element zum Anzeigen des Texts oder durch Anpassen der Eigenschaften dieser Textelemente auswählen. Jedes Textelement hat einen bestimmten Zweck, und dieser Zweck hat häufig eine entsprechende Benutzeroberflächenautomatisierungsrolle. Die Verwendung des falschen Elements kann dazu führen, dass die falsche Rolle bei der Benutzeroberflächenautomatisierung gemeldet und eine verwirrende Erfahrung für einen Benutzer mit Hilfstechnologien entsteht.
  • Viele Benutzer haben Sehbeschränkungen, die es für sie schwierig machen, Text zu lesen, es sei denn, sie weist einen angemessenen Kontrast zum Hintergrund auf. Wie sich dies auf den Benutzer auswirkt, ist nicht intuitiv für App-Designer, die diese Sichteinschränkung nicht haben. Bei Farbenblinden Benutzern können beispielsweise schlechte Farbauswahlen im Design verhindern, dass einige Benutzer den Text lesen können. Barrierefreiheitsempfehlungen, die ursprünglich für Webinhalte erstellt wurden, definieren Standards für Kontraste, die diese Probleme auch in Apps vermeiden können. Weitere Informationen finden Sie unter Anforderungen für barrierefreien Text.
  • Viele Benutzer haben Schwierigkeiten beim Lesen von Text, der einfach zu klein ist. Sie können dieses Problem verhindern, indem Sie den Text in der Benutzeroberfläche Ihrer App an erster Stelle relativ groß machen. Das ist jedoch eine Herausforderung für Apps, bei denen große Textmengen angezeigt werden, oder Text, der mit anderen visuellen Elementen interspersiert ist. Stellen Sie in solchen Fällen sicher, dass die App ordnungsgemäß mit den Systemfeatures interagiert, mit denen die Anzeige skaliert werden kann, sodass jeder Text in Apps zusammen mit ihr skaliert wird. (Einige Benutzer ändern DPI-Werte als Barrierefreiheitsoption. Diese Option steht unter "Elemente auf dem Bildschirm vergrößern" in "Erleichterte Bedienung" zur Verfügung, die zu einer Systemsteuerungs-UI für darstellungs- und Personalisierungsanzeige / umleitet.)

Unterstützen von Designs mit hohem Kontrast

Ui-Steuerelemente verwenden eine visuelle Darstellung, die als Teil eines XAML-Ressourcenwörterbuchs von Designs definiert ist. Mindestens eins dieser Designs wird speziell verwendet, wenn das System für hohen Kontrast festgelegt ist. Wenn der Benutzer zu hohem Kontrast wechselt, wird durch dynamisches Nachschlagen des entsprechenden Designs aus einem Ressourcenwörterbuch auch ein entsprechendes Design mit hohem Kontrast verwendet. Stellen Sie einfach sicher, dass Sie die Designs nicht deaktiviert haben, indem Sie eine explizite Formatvorlage angeben oder eine andere Formatierungsmethode verwenden, die verhindert, dass die Designs mit hohem Kontrast laden und Ihre Formatänderungen außer Kraft setzen. Weitere Informationen finden Sie unter Designs mit hohem Kontrast.

Design für alternative Ui

Berücksichtigen Sie beim Entwerfen Ihrer Apps, wie sie von Personen mit eingeschränkter Mobilität, Sehvermögen und Hörvermögen verwendet werden können. Da Hilfstechnologieprodukte die Standard-UI umfassend nutzen, ist es besonders wichtig, eine gute Tastatur- und Sprachausgabeunterstützung bereitzustellen, auch wenn Sie keine weiteren Anpassungen für die Barrierefreiheit vornehmen.

In vielen Fällen können Sie wichtige Informationen vermitteln, indem Sie mehrere Techniken verwenden, um Ihr Publikum zu erweitern. Beispielsweise können Sie Informationen mithilfe von Symbol- und Farbinformationen hervorheben, um Benutzern zu helfen, die farbenblind sind, und Sie können visuelle Warnungen zusammen mit Soundeffekten anzeigen, um Benutzern zu helfen, die taub oder schwerhörig sind.

Bei Bedarf können Sie alternative, barrierefreie Benutzeroberflächenelemente bereitstellen, die nicht wesentliche Elemente und Animationen vollständig entfernen und andere Vereinfachungen bereitstellen, um die Benutzererfahrung zu optimieren. Im folgenden Codebeispiel wird veranschaulicht, wie eine UserControl-Instanz je nach Benutzereinstellung anstelle einer anderen angezeigt wird.

XAML

<StackPanel x:Name="LayoutRoot" Background="White">

  <CheckBox x:Name="ShowAccessibleUICheckBox" Click="ShowAccessibleUICheckBox_Click">
    Show Accessible UI
  </CheckBox>

  <UserControl x:Name="ContentBlock">
    <local:ContentPage/>
  </UserControl>

</StackPanel>

Visual Basic

Private Sub ShowAccessibleUICheckBox_Click(ByVal sender As Object,
    ByVal e As RoutedEventArgs)

    If (ShowAccessibleUICheckBox.IsChecked.Value) Then
        ContentBlock.Content = New AccessibleContentPage()
    Else
        ContentBlock.Content = New ContentPage()
    End If
End Sub

C#

private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
    if ((sender as CheckBox).IsChecked.Value)
    {
        ContentBlock.Content = new AccessibleContentPage();
    }
    else
    {
        ContentBlock.Content = new ContentPage();
    }
}

Überprüfung und Veröffentlichung

Weitere Informationen zu Deklarationen für die Barrierefreiheit und zum Veröffentlichen Ihrer App finden Sie unter Barrierefreiheit im Store.

Hinweis

Das Deklarieren der App als barrierefrei ist nur für den Microsoft Store relevant.

Unterstützung für Hilfstechnologien in benutzerdefinierten Steuerelementen

Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, wird empfohlen, auch eine oder mehrere AutomationPeer-Unterklassen zu implementieren oder zu erweitern, um Unterstützung für die Barrierefreiheit bereitzustellen. In einigen Fällen ist die Automatisierungsunterstützung für Ihre abgeleitete Klasse ausreichend, solange Sie dieselbe Peerklasse wie von der Basissteuerelementklasse verwendet haben. Sie sollten dies jedoch testen und die Implementierung eines Peers wird weiterhin als bewährte Methode empfohlen, damit der Peer den Klassennamen Ihrer neuen Steuerelementklasse ordnungsgemäß melden kann. Das Implementieren eines benutzerdefinierten Automatisierungspeers umfasst einige Schritte. Weitere Informationen finden Sie unter benutzerdefinierte Automatisierungspeers.

Unterstützung für Hilfstechnologien in Apps, die XAML/Microsoft DirectX-Interoperabilität unterstützen

Auf Microsoft DirectX-Inhalte, die in einer XAML-Benutzeroberfläche (mit SwapChainPanel oder SurfaceImageSource) gehostet werden, kann standardmäßig nicht zugegriffen werden. Das XAML SwapChainPanel DirectX-Interoperabilitätsbeispiel zeigt, wie Sie Benutzeroberflächenautomatisierungspeers für den gehosteten DirectX-Inhalt erstellen. Diese Technik macht den gehosteten Inhalt über die Benutzeroberflächenautomatisierung zugänglich.

Beispiele

Tipp

Öffnen Sie die WinUI 3 Gallery-App, und sehen Sie sich die folgenden Barrierefreiheitsprinzipien in Aktion an:

Die WinUI 3-Katalog-App umfasst interaktive Beispiele für die meisten WinUI 3-Steuerelemente, -Features und -Funktionen. Laden Sie die App aus dem Microsoft Store herunter, oder rufen Sie den Quellcode auf GitHub ab.