Freigeben über


Übersicht über Barrierefreiheit

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, dass man Folgendes bereitstellt:

  • Unterstützung für Tastaturinteraktionen und Screenreader.
  • 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 Bildschirmlesegeräte, die Barrierefreiheitsframeworks nutzen, die bereits UWP-Apps, HTML und andere UI-Technologien 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 diesen Steuerelementen auch ähnliche Unterstützung hinzufügen, indem Sie das Konzept eines Automatisierungspeersverwenden.

Datenbindungs-, Stil- und Vorlagenfunktionen erleichtern die Implementierung der Unterstützung für dynamische Ä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 durch die UI Automation als ein Fenster auf oberster Ebene behandelt, und über das UI Automation-Framework sind alle barrierefreiheitsrelevanten Inhalte innerhalb dieses App-Fensters für einen UI Automation-Client zugänglich. Weitere Informationen zur Benutzeroberflächenautomatisierung finden Sie unter Benutzeroberflächenautomatisierung: Übersicht.

Hilfsmitteltechnologie

Viele Benutzeranforderungen an die Barrierefreiheit werden durch Hilfsmitteltechnologien erfüllt, die vom Benutzer installiert werden oder durch Tools und Einstellungen des Betriebssystems bereitgestellt werden. Dies umfasst Funktionen wie Bildschirmsprachausgaben, Bildschirmvergrößerung und Einstellungen mit hohem Kontrast.

Hilfstechnologieprodukte umfassen eine Vielzahl von Software und Hardware. Diese Produkte arbeiten über die standardmäßige Tastaturschnittstelle und Barrierefreiheits-Frameworks, die Informationen über den Inhalt und die Struktur einer Benutzeroberfläche an Screenreader und andere Hilfstechnologien übermitteln. 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.
  • Der Bildschirmleser Narrator, der speziell Teil von Windows ist. Die Sprachausgabe verfügt über einen Touchmodus, mit dem Bildschirmleseaufgaben durch die Verarbeitung von Touchgesten ausgeführt werden können, falls 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.

Bildschirmlesegeräteunterstützung und grundlegende Informationen zur Barrierefreiheit

Screenreader bieten Zugriff auf den Text in einer App, indem sie ihn in einem anderen Format wiedergeben, z. B. als Sprachausgabe oder Braille-Ausgabe. Das genaue Verhalten eines Bildschirmlesegeräts hängt von der Software und der Konfiguration des Nutzers ab.

Beispielsweise lesen einige Sprachausgaben die gesamte Benutzeroberfläche der App vor, wenn der Benutzer die App startet oder zur angezeigten App wechselt. Dadurch kann der Benutzer alle verfügbaren Informationsinhalte empfangen, bevor er mit der Navigation beginnt. Bei einigen Bildschirmleseprogrammen wird auch der Text vorgelesen, der einem einzelnen Steuerelement zugeordnet ist, wenn dieses den Fokus während der Tab-Navigation erhält. Auf diese Weise können sich Benutzer orientieren, während sie zwischen den Eingabesteuerelementen einer Anwendung navigieren. Narrator ist ein Beispiel für einen Screenreader, der je nach Benutzerauswahl beide Verhaltensweisen bereitstellt.

Die wichtigsten Informationen, die eine Sprachausgabe oder eine andere Hilfstechnologie benötigt, um Benutzern bei der Nutzung einer App zu helfen, sind ein barrierefreier Name für die Elementteile der App. In vielen Fällen verfügt ein Steuerelement oder Element bereits über einen zugänglichen Namen, der aus anderen Eigenschaftswerten berechnet wird, die Sie anderweitig bereitgestellt haben. Der häufigste Anwendungsfall, bei dem Sie einen bereits berechneten Namen verwenden können, ist bei einem 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 zugänglicher Name für die App-Zugänglichkeit vorgesehen ist. Eine Liste darüber, wie viele dieser berechneten Werte in gängigen Benutzerschnittstellenelementen funktionieren, sowie weitere Informationen zu zugänglichen 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). Jedoch unterstützen nicht alle Sprachausgaben alle Automatisierungseigenschaften. Im Allgemeinen sollten Sie alle geeigneten Automatisierungseigenschaften festlegen und testen, um die größtmögliche Unterstützung für Screenreader zu gewährleisten.

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 nutzt, haben Sie bereits den Großteil geschafft. 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 Tabulatorreihenfolge, die für eine barrierefreie Repräsentation der Benutzeroberfläche verwendet werden soll. Wenn Sie ListBox- und GridView--Steuerelemente zum Anzeigen von Daten verwenden, bieten diese integrierte Pfeiltastennavigation. Oder wenn Sie ein Button-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 Tabulatorreihenfolge und tastenbasierter Aktivierung oder Navigation, finden Sie unter Tastaturzugänglichkeit.

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 Entscheidung steuern, indem Sie das geeignete Element für die Anzeige des Texts auswählen oder die Eigenschaften dieser Textelemente anpassen. 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 bei der UI-Automatisierung eine falsche Rolle gemeldet wird und eine verwirrende Erfahrung für Benutzer von Hilfstechnologien entsteht.
  • Viele Benutzer haben Sehbeeinträchtigungen, die es ihnen schwer machen, Text zu lesen, es sei denn, der Text hat einen ausreichenden Kontrast zum Hintergrund. 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 über Elemente auf dem Bildschirm vergrößern in Erleichterte Bedienungzur Verfügung, die zu einer Systemsteuerung Benutzeroberfläche für Darstellung und Personalisierung / Anzeigeumleitet.

Unterstützen von Themen mit hohem Kontrast

UI-Steuerelemente verwenden eine visuelle Darstellung, die als Teil eines XAML-Ressourcenwörterbuchs von Themen definiert ist. Eines oder mehrere dieser Designs wird speziell verwendet, wenn das System für hohen Kontrast eingestellt ist. Wenn der Benutzer zu hohem Kontrast wechselt, wird automatisch das passende Hochkontrast-Thema aus einem Ressourcenwörterbuch abgerufen und für alle Ihre UI-Steuerelemente verwendet. Stellen Sie einfach sicher, dass Sie die Themen nicht deaktiviert haben, indem Sie einen expliziten Stil angeben oder eine andere Formatierungsmethode verwenden, die verhindert, dass die Themen mit hohem Kontrast laden und Ihre Stiländerungen überschreiben. Weitere Informationen finden Sie unter Hochkontrast-Themen.

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, empfehlen wir, 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 auf einem grundlegenden Niveau ausreichend, solange Sie dieselbe Peerklasse verwenden wie die Basissteuerelementklasse. Sie sollten dies jedoch testen, und es wird weiterhin als bewährte Methode empfohlen, einen Peer zu implementieren, damit dieser den Klassennamen Ihrer neuen Steuerelementklasse ordnungsgemäß melden kann. Das Implementieren eines benutzerdefinierten Automatisierungspeers umfasst einige Schritte. Weitere Informationen finden Sie unter Benutzerdefinierte Automatisierungs-Partner.

Unterstützung von Hilfstechnologien in Apps, die XAML/Microsoft DirectX-Interop unterstützen

Microsoft DirectX-Inhalte, die in einer XAML-Benutzeroberfläche gehostet werden (mit SwapChainPanel- oder SurfaceImageSource-), sind standardmäßig nicht verfügbar. Das XAML SwapChainPanel DirectX-Interoperabilitätsbeispiel zeigt, wie UI-Automation-Peers für die in DirectX gehosteten Inhalte erstellt werden. 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 Gallery-App enthält 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