Freigeben über


Übersicht über Barrierefreiheit

In diesem Thema werden Konzepte und Technologien zum Erstellen barrierefreier Windows-Apps vorgestellt.

Barrierefreie Windows Anwendungen unterstützen nicht nur Menschen mit Behinderungen (sowohl vorübergehend als auch dauerhaft), sondern auch Personen mit persönlichen Vorlieben, spezifischen Arbeitsstilen oder situationalen und ökologischen Einschränkungen (z. B. gemeinsam genutzte Arbeitsräume, geringe Bandbreite, helles Sonnenlicht, laute oder ruhige Umgebung, beim Kochen usw.).

Die Anleitung wird für Entwicklungsteams geschrieben, die Barrierefreiheit als Kernqualitätsanforderung behandeln und automatisierte Barrierefreiheitsprüfungen als Teil regulärer Engineering-Workflows verwenden. Verwenden Sie diese Themen, um die Erwartungen an die Barrierefreiheit frühzeitig zu definieren, sie kontinuierlich zu überprüfen und Regressionen zu verhindern, wenn sich Features entwickeln.

Viele Behinderungen, einschließlich eingeschränkter Mobilität, Sehvermögen, Farbwahrnehmung, Gehör, Sprache, Wahrnehmung und Lesefähigkeit, können durch Folgendem behandelt werden:

  • 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.
  • Alternative oder ergänzende Ui.

XAML-Steuerelemente bieten integrierte Unterstützung für den Tastaturzugriff und Unterstützungstechnologien wie Bildschirmsprachausgaben. Diese integrierte Unterstützung ermöglicht eine grundlegende Ebene der Barrierefreiheit, die Sie über verschiedene Eigenschaften anpassen können. Wenn Sie eigene benutzerdefinierte XAML-Komponenten und -Steuerelemente erstellen, können Sie auch ähnliche Unterstützung für diese Steuerelemente hinzufügen, indem Sie einen *Automatisierungspeer verwenden ( weitere Informationen finden Sie unter benutzerdefinierte Automatisierungspeers).

Darüber hinaus ermöglichen Ihnen Datenbindungs-, Stil- und Vorlagenfeatures die dynamische Unterstützung alternativer UI- und Änderungen an Anzeigeeinstellungen.

Benutzeroberflächenautomatisierung

Die Barrierefreiheitsunterstützung stammt in erster Linie aus der Integration des Microsoft-Benutzeroberflächenautomatisierungs-Frameworks. Diese Unterstützung wird über Basisklassen und das integrierte Verhalten der Klassenimplementierung für Steuerelementtypen sowie eine Schnittstellendarstellung der Benutzeroberflächenautomatisierungs-Anbieter-API bereitgestellt. Jede Steuerelementklasse verwendet die Konzepte der UI-Automatisierung von Automatisierungs-Peers und Automatisierungsmustern, die die Rolle und den Inhalt des Steuerelements an UI-Automatisierungsklienten melden. Die App wird von der UI-Automation als Hauptfenster behandelt, und durch das UI-Automation-Framework stehen alle barrierefreiheitsrelevante Inhalte innerhalb dieses App-Fensters einem UI-Automation-Client zur Verfügung. Weitere Informationen zu UI Automation finden Sie unter UI Automation Overview.

Hilfsmitteltechnologie

Viele Anforderungen an die Barrierefreiheit werden von hilfstechnischen Produkten erfüllt, die vom Benutzer oder von Tools und Einstellungen des Betriebssystems installiert wurden. Dazu gehören Bildschirmsprachausgaben, Bildschirmvergrößerer und Einstellungen mit hohem Kontrast.

Hilfstechnologieprodukte umfassen eine Vielzahl von Software und Hardware. Diese Produkte funktionieren über die standardmäßige Tastaturschnittstelle und Barrierefreiheitslösungen, die Informationen über den Inhalt und die Struktur der Benutzeroberfläche für Bildschirmleseprogramme und andere Hilfstechnologien bereitstellen. Beispiele für Hilfstechnologieprodukte sind:

  • Die Bildschirmtastatur (On-Screen Keyboard, OSK) oder Die Softwaretastatur, mit der Benutzer einen Zeiger anstelle einer Hardwaretastatur verwenden können, um Text einzugeben.
  • Spracherkennungssoftware, die gesprochene Wörter in eingegebenen Text konvertiert.
  • Bildschirmleseprogramme, die Text in gesprochene Wörter oder in Formate wie Braille umwandeln.
  • Die in Windows integrierte Sprachausgabe Narrator verfügt über einen Touchmodus, der Bildschirmleseaufgaben über Touchgesten ausführen kann.
  • Programme oder Einstellungen, die die Anzeige anpassen, z. B. Designs mit hohem Kontrast, Punkte pro Zoll (dpi) oder die Bildschirmlupe.

Apps mit guter Tastatur- und Sprachausgabeunterstützung funktionieren in der Regel gut mit verschiedenen Hilfstechnologienprodukten. In vielen Fällen funktioniert eine Windows-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.

Informationen zum Testen grundlegender Barrierefreiheitsszenarien mit Hilfstechnologien finden Sie unter Barrierefreiheitstests .

Bildschirmlesegeräteunterstützung und grundlegende Informationen zur Barrierefreiheit

Bildschirmsprachausgaben bieten Zugriff auf Text mitin einer App, indem sie in anderen Formaten gerendert werden, z. B. gesprochene Sprache oder Braille-Ausgabe. Das genaue Verhalten einer Sprachausgabe hängt von der Software ab, wie der Benutzer sie konfiguriert hat.

Beispielsweise lesen einige Bildschirmsprachausgaben die gesamte Benutzeroberfläche, wenn der Benutzer startet oder zu einer App wechselt, wodurch der Benutzer alle Informationsinhalte empfangen kann, bevor er versucht, ihn zu navigieren. 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 beide Verhaltensweisen unterstützt.

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 jedes Element in einer App. In vielen Fällen verfügt ein Steuerelement oder Element bereits über einen barrierefreien Namen, der von anderen Eigenschaftswerten abgeleitet ist, z. B. ein Element, das inneren Text unterstützt und anzeigt. Für andere Elemente müssen Sie möglicherweise einen barrierefreien Namen über die Elementstruktur angeben. Und manchmal müssen Sie explizit den Zugänglichkeitsnamen angeben. Weitere Informationen dazu, wie diese abgeleiteten Werte in allgemeinen UI-Elementen funktionieren, und weitere Informationen zu barrierefreien Namen finden Sie unter Verfügbarmachen grundlegender 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, daher sollten Sie alle geeigneten Automatisierungseigenschaften mit einer Vielzahl von Bildschirmsprachausgaben testen.

Tastaturunterstützung

Der Einbau der Tastaturzugänglichkeit (für herkömmliche, geänderte oder Tastaturemulationshardware) in Ihrer App hilft Benutzern, die blind sind, sehbehindert sind oder motorische Kontrolle eingeschränkt haben, die vollständige Funktionalität Ihrer App zu navigieren und zu nutzen. Außerdem können Benutzer ohne Behinderungen die Tastatur für die Navigation aufgrund der Voreinstellung oder Effizienz auswählen.

Das grundlegende XAML-Steuerelementmodell bietet integrierte Tastaturunterstützung, einschließlich Registerkartennavigation, Texteingabe und steuerelementspezifische Unterstützung. Die Elemente, die als Layout-Container dienen (z. B. Panels), nutzen die Reihenfolge des Layouts, um eine Standard-Reihenfolge der Registerkarten einzurichten und eine zugängliche Darstellung der Benutzeroberfläche zu bieten. ListBox - und GridView-Steuerelemente bieten integrierte Pfeiltastennavigation. Schaltflächensteuerelemente behandeln 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 audio-visuelle Medien über ein MediaPlayerElement-Objekt an. Stellen Sie im Sinne der Barrierefreiheit Steuerelemente bereit, mit denen Benutzer die Medien abspielen, anhalten und stoppen können, und integrieren Sie auch Untertitel oder alternative Audiospuren.

Barrierefreier Text

Konzentrieren Sie sich beim Entwerfen und Implementieren von Text in Ihrer App auf diese drei grundlegenden Anforderungen an die Barrierefreiheit.

  • Hilfstechnologien müssen in der Lage sein zu bestimmen, ob Text während der Navigation auf der Registerkarte oder als Teil des gesamten Dokumentinhalts gelesen werden soll. Sie können dieses Verhalten beeinflussen, indem Sie das richtige Textelement auswählen und dessen Eigenschaften entsprechend festlegen. Da jedes Textelement einem bestimmten Zweck und häufig einer entsprechenden Benutzeroberflächenautomatisierungsrolle zugeordnet ist, kann die Verwendung des falschen Elements die falsche Rolle verfügbar machen und eine verwirrende Erfahrung für Benutzer von Hilfstechnologien schaffen.
  • Viele Benutzer haben Sehschwächen oder Farbsichtfehler und können Text nicht zuverlässig lesen, es sei denn, es gibt ausreichend Kontrast zwischen Text und Hintergrund. Diese Auswirkung kann während des Designs leicht zu unterschätzen sein. Durch die Einhaltung etablierter Kontrastanleitungen wird verhindert, dass der Text für diese Benutzer unlesbar wird. Weitere Informationen finden Sie unter Anforderungen für barrierefreien Text.
  • Text, der zu klein ist, ist für viele Benutzer schwierig zu lesen. Beginnen Sie mit einer angemessenen Standardtextgröße, und stellen Sie sicher, dass Ihre App mit Systemtext und Anzeigeskalierung ordnungsgemäß funktioniert. Dies ist besonders wichtig für UIs, die große Textmengen oder dichte visuelle Layouts enthalten.

Unterstützen von Themen mit hohem Kontrast

XAML-Steuerelemente erhalten ihre visuelle Darstellung aus Designressourcenverzeichnissen, einschließlich Designressourcen mit hohem Kontrast. Wenn ein Benutzer einen Modus mit hohem Kontrast aktiviert, werden die Steuerelemente automatisch zu den entsprechenden Ressourcen mit hohem Kontrast aufgelöst. Um dieses Verhalten beizubehalten, vermeiden Sie Gestaltungsansätze, die das Nachschlagen von Designressourcen blockieren, z. B. festcodierte Farben oder explizite Formatvorlagen, die verhindern, dass Designwerte mit hohem Kontrast Ihre benutzerdefinierten Werte überschreiben. Weitere Informationen finden Sie unter Hochkontrast-Themen.

Design für alternative UI

In vielen Fällen können Sie wichtige Informationen effektiver kommunizieren, indem Sie mehrere Hinweise verwenden. Kombinieren Sie beispielsweise Symbole mit Farbe, um Benutzer mit Farbsichtschwächen zu unterstützen, und koppeln Sie visuelle Warnungen mit Sound, um Benutzer zu unterstützen, die taub oder schwerhörig sind.

Stellen Sie bei Bedarf eine alternative barrierefreie Benutzeroberfläche bereit, die nicht benötigte visuelle Elemente und Animationen entfernt und Interaktionsflüsse vereinfacht. Im folgenden Codebeispiel wird gezeigt, wie Sie ein UserControl für ein anderes basierend auf einer Benutzereinstellung wechseln.

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

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

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

</StackPanel>
private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
    if (sender is CheckBox checkBox)
    {
        ContentBlock.Content = checkBox.IsChecked == true
            ? new AccessibleContentPage()
            : new ContentPage();
    }
}

Unterstützung für Hilfstechnologien in benutzerdefinierten Steuerelementen

Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, implementieren oder erweitern Sie eine oder mehrere AutomationPeer-Unterklassen , um Unterstützung für die Barrierefreiheit bereitzustellen. In einigen Fällen kann die Wiederverwendung derselben Peer-Klasse wie die Basiskontrolle ein akzeptables Basisautomatisierungsverhalten für Ihr abgeleitetes Steuerelement ermöglichen. Sie sollten dies jedoch durch Tests überprüfen, und in den meisten Fällen sollten Sie dennoch einen dedizierten Peer implementieren, damit er den richtigen Klassennamen und das richtige Verhalten für Ihr benutzerdefiniertes Steuerelement melden kann. Anleitungen zur Implementierung finden Sie unter Benutzerdefinierte Automatisierungs-Peers.

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

Standardmäßig kann auf Microsoft DirectX-Inhalte, die in einer XAML-Benutzeroberfläche (mit SwapChainPanel oder SurfaceImageSource) gehostet werden, nicht zugegriffen werden. Das XAML SwapChainPanel DirectX-Interoperabilitätsbeispiel (archiviertes Legacybeispiel) zeigt, wie gehostete Inhalte über die Benutzeroberflächenautomatisierung barrierefrei werden, indem ein AutomationPeer für den DirectX-Inhalt erstellt wird. Diese Technik macht den gehosteten Inhalt über UI Automation zugänglich.

Überprüfung und Veröffentlichung

Behandeln Sie die Überprüfung der Barrierefreiheit als fortlaufende technische Aktivität, nicht als endgültiger QA-Pass. Führen Sie automatisierte Prüfungen für jeden Build aus, wenn möglich, und koppeln Sie sie mit einer gezielten manuellen Überprüfung von assistiven Technologien für kritische Benutzererfahrungen.

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

Beispiele

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

WinUI 3-Katalogsymbol Die WinUI 3 Gallery-App enthält interaktive Beispiele für WinUI-Steuerelemente und -Features. Rufen Sie die App aus dem Microsoft Store ab, oder durchsuchen Sie den Quellcode auf GitHub.