Barrierefreiheit für Windows-Runtime-Apps mit C#/VB/C++ und XAML

Applies to Windows and Windows Phone

Wir beschreiben einige Konzepte und Technologien für Barrierefreiheitsszenarien für eine Windows-Runtime-App, bei der C#-, Visual Basic- oder Visual C++-Komponentenerweiterungen (C++/CX) für den App-Code und XAML für die UI-Definition verwendet werden.

Sie suchen nach der JavaScript-Version dieses Themas? Informationen hierzu finden Sie unter Barrierefreiheit für Windows-Runtime-Apps mit JavaScript und HTML.

Roadmap: Wie hängt dieses Thema mit anderen zusammen? Informationen finden Sie unter:

Voraussetzungen

Wir gehen davon aus, dass Sie eine einfache Windows-Runtime-App erstellen können. Anweisungen zum Erstellen Ihrer ersten Windows-Runtime-App mit C++, C# oder Visual Basic finden Sie unter Erstellen Ihrer ersten Windows-Runtime-App mit C# oder Visual Basic oder unter Erstellen Ihrer ersten Windows-Runtime-App mit C++.

Barrierefreiheit und Ihre App

Bei der Barrierefreiheit geht es darum, die App so zu gestalten, dass sie auch von Menschen verwendet werden kann, bei denen bestimmte Beeinträchtigungen die Nutzung herkömmlicher Benutzeroberflächen verhindern oder erschweren. Für bestimmte Situationen gelten gesetzlich vorgeschriebene Vorgaben im Hinblick auf Barrierefreiheit. Es empfiehlt sich aber, dieses Thema auch unabhängig von den gesetzlichen Vorschriften zu berücksichtigen, um sicherzustellen, dass die Apps die größtmögliche Benutzergruppe erreichen. Es ist auch eine Windows Store-Deklaration zur Barrierefreiheit der App vorhanden.

  • Applies to Windows Phone

Das Ausweisen der App als barrierefrei ist nur für den Windows Store relevant.

Benutzer können viele unterschiedliche Behinderungen oder Beeinträchtigungen haben, einschließlich Beschränkungen im Hinblick auf Mobilität, Sehvermögen, Farbwahrnehmung, Hörvermögen, Sprache, Kognition und Lese-und Schreibfähigkeit. Sie können die meisten Anforderungen jedoch erfüllen, indem Sie sich an den hier dargelegten Richtlinien orientieren. Hierzu muss Folgendes bereitgestellt werden:

  • Unterstützung für Tastaturinteraktionen und Bildschirmlesprogramme.
  • Unterstützung für Benutzeranpassungen wie beispielsweise Schriftart, Zoomeinstellung (Vergrößerung), Farbe und hoher Kontrast.
  • Alternativen oder Ergänzungen für Teile der Benutzeroberfläche.

Windows-Runtime-Steuerelemente für XAML bieten integrierte Tastaturunterstützung und Unterstützung für Hilfstechnologien wie Sprachausgabeprogramme, die Barrierefreiheitsframeworks nutzen, die Windows-Runtime-Apps, HTML und andere UI-Technologien bereits unterstützen. Diese integrierte Unterstützung ermöglicht ein Basisniveau an Barrierefreiheit, das Sie mit sehr wenig Aufwand anpassen können, indem Sie nur eine Handvoll von Eigenschaften festlegen. Wenn Sie eigene benutzerdefinierte XAML-Komponenten und -Steuerelemente erstellen, können Sie auch eine ähnliche Unterstützung für diese Steuerelemente bereitstellen, indem Sie einen Automatisierungspeer verwenden.

Zudem können Sie mithilfe von Datenbindungs-, Stil- und Vorlagenfeatures die Unterstützung dynamischer Änderungen an Anzeigeeinstellungen und Text für alternative Benutzeroberflächen einfacher implementieren.

Benutzeroberflächenautomatisierung

Die Unterstützung der Barrierefreiheit für Windows-Runtime-Apps mit C++, C# oder Visual Basic stammt hauptsächlich aus der integrierten Unterstützung für das Microsoft-Benutzeroberflächenautomatisierungs-Framework. Diese Unterstützung wird mithilfe von Basisklassen und des integrierten Verhaltens der Klassenimplementierung für Steuerelementtypen sowie einer Windows-Runtime-Schnittstellendarstellung der Anbieter-API für die Benutzeroberflächenautomatisierung bereitgestellt. Jede Steuerelementklasse verwendet als Benutzeroberflächenautomatisierungs-Konzepte Automatisierungspeers und Automatisierungsmuster, von denen die Rolle und der Inhalt des Steuerelements an die Benutzeroberflächenautomatisierungs-Clients gemeldet werden. Die Windows-Runtime-App wird von der Benutzeroberflächenautomatisierung als Fenster oberster Ebene behandelt. Über das Benutzeroberflächenautomatisierungs-Framework ist der gesamte für die Barrierefreiheit relevante Inhalt des App-Fensters für einen Benutzeroberflächenautomatisierungs-Client verfügbar. Weitere Informationen zur Benutzeroberflächenautomatisierung finden Sie unter Übersicht über die Benutzeroberflächenautomatisierung.

Hilfstechnologie

Viele Benutzeranforderungen im Hinblick auf Barrierefreiheit werden durch vom Benutzer installierte Hilfstechnologieprodukte oder durch Tools und Einstellungen erfüllt, die vom Betriebssystem bereitgestellt werden. Dies umfasst Funktionen wie etwa Bildschirmleseprogramme, die Bildschirmlupe und Einstellungen für hohen Kontrast.

Hilfstechnologieprodukte umfassen eine breite Palette an Software und Hardware. Diese Produkte erfüllen ihre Aufgabe über die Standardtastaturschnittstelle und Barrierefreiheitsframeworks, die Informationen zu Inhalt und Struktur einer UI an Bildschirmleseprogramme und andere Hilfstechnologien melden. Beispiele für Hilfstechnologieprodukte:

  • Die Bildschirmtastatur, mit der ein Zeiger anstelle einer Tastatur verwendet werden kann.
  • Spracherkennungssoftware, mit der Sprache in geschriebenen Text konvertiert werden kann.
  • Bildschirmleseprogramme, die Text in Sprache oder andere Formate wie Braille konvertieren.
  • Die Sprachausgabe, die Teil von Windows ist. Die Sprachausgabe verfügt über einen Touchmodus, mit dem die Sprachausgabe anhand von Toucheingabe gesteuert werden kann, für Situationen, in denen keine Tastatur verfügbar ist.
  • Programme oder Einstellungen, mit denen die Anzeige oder bestimmte Bereiche der Anzeige angepasst werden, z. B. Designs mit hohem Kontrast, DPI (Dots Per Inch)-Werte der Anzeige oder die Bildschirmlupe.

Apps mit guter Unterstützung für die Tastatur und Sprachausgabe funktionieren in Verbindung mit unterschiedlichen Hilfstechnologieprodukten normalerweise ohne Probleme. In vielen Fällen kann eine Windows-Runtime-App ohne zusätzliche Anpassung der Informationen oder Struktur mit diesen Produkten verwendet werden. Es kann jedoch empfehlenswert sein, einige Einstellungen anzupassen, um eine optimale Barrierefreiheit zu erzielen oder um weitere Unterstützung zu implementieren.

Einige Optionen, mit denen Sie grundlegende Szenarien für die Barrierefreiheit mit Hilfstechnologien testen können, sind unter Testen der Barrierefreiheit Ihrer App aufgeführt.

Unterstützung von Bildschirmleseprogrammen und grundlegende Barrierefreiheitsinformationen

Sprachausgabeprogramme bieten Zugriff auf Text in einer App, indem dieser in einem anderen Format, beispielsweise als gesprochene Sprache oder als Braille-Ausgabe, gerendert wird. Das genaue Verhalten der Sprachausgabe hängt von der Software und der Benutzerkonfiguration der Software ab.

Einige Sprachausgabeprogramme lesen beispielsweise die gesamte App-UI, wenn der Benutzer die App startet oder die angezeigte App wechselt. Hierdurch stehen den Benutzern alle verfügbaren Informationsinhalte vor deren Navigation zur Verfügung. Einige Sprachausgabeprogramme lesen außerdem den Text, der einem einzelnen Steuerelement zugeordnet ist, wenn dieses während der TAB-Navigation den Fokus erhält. Auf diese Weise können sich die Benutzer orientieren, während sie zwischen den Eingabesteuerelementen einer Anwendung navigieren. Die Sprachausgabe von Windows ist ein Beispiel für ein Sprachausgabeprogramm, das beide Verhalten je nach Wahl des Benutzers bereitstellt.

Die wichtigsten Informationen, die ein Sprachausgabeprogramm oder eine andere Hilfstechnologie benötigt, um Benutzern die App zu beschreiben oder ihnen bei der Navigation zu helfen, sind barrierefreie Namen für grundlegende Teile der App. In vielen Fällen hat ein Steuerelement oder ein UI-Element bereits einen barrierefreien Namen. Dieser wird aus anderen Eigenschaftswerten berechnet, die bereitgestellt wurden. Der häufigste Fall, in dem ein bereits berechneter Name zur Verfügung steht, ist ein Element, das internen Text unterstützt und anzeigt. Bei anderen Elementen müssen Sie ggf. andere Möglichkeiten nutzen,und sich an den bewährten Methoden einer Elementstruktur orientieren, um einen barrierefreien Namen bereitzustellen. Und manchmal müssen Sie einen Namen bereitstellen, der explizit als barrierefreier Name für die App-Barrierefreiheit vorgesehen ist. Eine Auflistung dazu, wie viele dieser berechneten Werte in gängigen UI-Elementen funktionieren, und weitere Informationen zu barrierefreien Namen im Allgemeinen finden Sie unter Verfügbarmachen von grundlegenden Informationen zu Benutzeroberflächenelementen.

Es sind einige andere Automatisierungseigenschaften verfügbar (einschließlich der Tastatureigenschaften, die im nächsten Abschnitt beschrieben werden). Es werden aber nicht alle Automatisierungseigenschaften von allen Bildschirmleseprogrammen unterstützt. Im Allgemeinen sollten Sie alle geeigneten Automatisierungseigenschaften festlegen und testen, um möglichst breite Unterstützung für Sprachausgabeprogramme bereitzustellen.

Tastaturunterstützung

Um eine gute Tastaturunterstützung bereitzustellen, müssen Sie dafür sorgen, dass jeder Teil Ihrer Anwendung mit einer Tastatur verwendet werden kann. Wenn Ihre App hauptsächlich die Standardsteuerelemente und keine benutzerdefinierten Steuerelemente verwendet, ist das meiste schon getan. Das grundlegende Windows-Runtime-XAML-Steuerelementmodell bietet integrierte Tastaturunterstützung, einschließlich Unterstützung für die TAB-Navigation, Texteingaben und steuerelementspezifischer Unterstützung. Die Elemente, die als Layoutcontainer dienen (z. B. Panels), verwenden die Layoutreihenfolge, um eine Standardaktivierreihenfolge festzulegen. Diese Reihenfolge ist häufig die richtige Aktivierreihenfolge zur barrierefreien Darstellung der UI. Wenn Sie die Steuerelemente ListBox und GridView zum Anzeigen von Daten verwenden, bieten diese Steuerelemente eine integrierte Unterstützung für die Navigation mittels Pfeiltasten. Oder wenn Sie ein Button-Steuerelement verwenden, werden die LEERTASTE oder EINGABETASTE bereits zur Schaltflächenaktivierung behandelt.

Weitere Informationen zu allen Aspekten der Tastaturunterstützung bei Windows-Runtime-Apps, einschließlich Aktivierreihenfolge und tastenbasierter Aktivierung oder Navigation, finden Sie unter Implementieren von Barrierefreiheit für den Tastaturzugriff.

Medien und Untertitelung

Bei Windows-Runtime-Apps mit C++, C# oder Visual Basic werden audiovisuelle Medien normalerweise anhand eines MediaElement-Objekts angezeigt. Mit MediaElement-APIs steuern Sie die Medienwiedergabe. Stellen Sie aus Gründen der Barrierefreiheit Steuerelemente bereit, mit denen Benutzer die Medienwiedergabe nach Bedarf starten, anhalten oder beenden können. Medien umfassen mitunter zusätzliche Komponenten, die für die Barrierefreiheit vorgesehen sind, z. B. Untertitelung oder alternative Audiospuren mit einer Sprachausgabe der Beschreibungen. Weitere Informationen zu den Konzepten in Bezug auf Medien, MediaElement und Barrierefreiheit finden Sie unter Erstellen von barrierefreien Medieninhalten.

Barrierefreier Text

Für die Barrierefreiheit sind drei Hauptaspekte von Text relevant:

  • Tools müssen feststellen können, ob der Text als Teil der durchlaufenen TAB-Sequenz oder nur als Teil der Gesamtdarstellung eines Dokuments gelesen wird. Sie können dem Steuerelement bei dieser Unterscheidung helfen, indem Sie das richtige Element für die Anzeige des Texts auswählen oder die Eigenschaften dieser Textelemente anpassen. Alle in Windows-Runtime-Apps verfügbaren Elemente erfüllen einen bestimmten Zweck, und mit diesem ist oft eine entsprechende Benutzeroberflächenautomatisierungs-Rolle verbunden. Wenn Sie das falsche Element verwenden, kann der Benutzeroberflächenautomatisierung die falsche Rolle gemeldet werden, sodass die Benutzerfreundlichkeit für Hilfstechnologienutzer beeinträchtigt wird.
  • Bei vielen Benutzern ist das Sehvermögen eingeschränkt, sodass Text für sie schwierig zu lesen ist, sofern der Textkontrast zum Hintergrund nicht ausreichend ist. Wie sich dies auf die Benutzer auswirkt, ist für App-Designer, deren Sehvermögen nicht eingeschränkt ist, nicht intuitiv nachvollziehbar. So kann eine schlechte Farbauswahl im Design beispielsweise dazu führen, dass einige farbenblinde Benutzer den Text nicht lesen können. Empfehlungen für die Barrierefreiheit, die ursprünglich für Webinhalt vorgesehen waren, definieren Standards für den Kontrast, die diese Probleme auch in Apps verhindern können. Weitere Informationen finden Sie unter Erfüllen der Anforderungen für barrierefreien Text.
  • Viele Benutzer haben Schwierigkeiten mit dem Lesen von Text, da dieser einfach zu klein ist. Sie können dieses Problem verhindern, indem Sie von vornherein den Text auf der Benutzeroberfläche groß genug machen. Dies ist jedoch schwierig für Apps, die sehr viel Text anzeigen oder bei denen Text zwischen andere visuelle Elemente eingestreut wird. Stellen Sie in diesen Fällen sicher, dass die App korrekt mit den Systemfeatures interagiert, die die Anzeige skalieren können, damit der gesamte Text in App ebenfalls vergrößert werden kann. (Einige Benutzer ändern die DPI-Werte zu Zwecken der Barrierefreiheit. Die Option ist unter Elemente auf dem Bildschirm vergrößern in Erleichterte Bedienung verfügbar, die auf die Systemsteuerung und den Bildschirm für Darstellung und Anpassung / Anzeige verweist.)

Unterstützung von Designs mit hohem Kontrast

Die UI-Steuerelemente, die für Windows-Runtime-Apps mit C++, C# oder Visual Basic bereitgestellt werden, verwenden eine visuelle Darstellung, die als Teil eines XAML-Ressourcenwörterbuchs von Designs definiert ist. Mindestens eines dieser Themen wird speziell verwendet, wenn das System auf hohen Kontrast eingestellt ist. Wenn der Benutzer zu einer Darstellung mit hohem Kontrast wechselt, wird durch die dynamische Suche nach dem geeigneten Thema in einem Ressourcenwörterbuch auch in allen Benutzeroberflächen-Steuerelementen ein geeignetes Thema mit hohem Kontrast verwendet. Stellen Sie einfach sicher, dass Sie die Designs nicht deaktiviert haben, indem Sie einen expliziten Stil angeben oder ein anderes Verfahren zum Anwenden eines Stils verwenden, das verhindert, dass die Designs für hohen Kontrast geladen und ihre Stiländerungen überschrieben werden. Weitere Informationen finden Sie unter Unterstützen von Designs mit hohem Kontrast.

Design für alternative UI

Beim Entwerfen von Apps sollten Sie immer berücksichtigen, wie diese von Menschen mit Beeinträchtigungen im Bereich Mobilität, Sehvermögen oder Hörvermögen verwendet werden könnten. Da Hilfstechnologieprodukte stark auf die Standard-Benutzeroberfläche zurückgreifen, ist es besonders wichtig, angemessene Unterstützung für Tastatur und Sprachausgabeprogramme bereitzustellen, auch wenn Sie ansonsten keine weiteren Anpassungen im Hinblick auf Barrierefreiheit vornehmen.

In vielen Fällen können Sie wesentliche Informationen mithilfe mehrerer Techniken transportieren, um die Zielgruppe zu vergrößern. Sie können beispielsweise Informationen sowohl durch Symbole als auch mit Farbinformationen hervorheben, um farbenblinden Benutzern zu helfen, und Sie können visuelle Hinweise zusammen mit Soundeffekten verwenden, um Unterstützung für hörgeschädigte Benutzer bereitzustellen.

Falls notwendig, können Sie alternative, barrierefreie Benutzeroberflächenelemente bereitstellen, durch die unwesentliche Elemente und Animationen vollständig entfernt werden, und weitere Vereinfachungen bereitstellen, um die Benutzererfahrung zu optimieren. Das folgende Codebeispiel zeigt, wie je nach Benutzereinstellung eine UserControl-Instanz anstelle einer anderen angezeigt werden kann.


<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>


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 Barrierefreiheitsdeklarationen und zum Veröffentlichen Ihrer App finden Sie unter Deklarieren Ihrer App im Windows Store als barrierefrei.

  • Applies to Windows Phone

Das Ausweisen der App als barrierefrei ist nur für den Windows Store relevant.

Hilfstechnologieunterstützung in benutzerdefinierten Steuerelementen

Beim Erstellen eines benutzerdefinierten Steuerelements empfehlen wir, dass Sie auch eine oder mehrere AutomationPeer-Unterklassen implementieren oder erweitern, um Unterstützung für Barrierefreiheit bereitzustellen. In einigen Fällen bietet die Automatisierungsunterstützung für Ihre abgeleitete Klasse eine ausreichende Grundfunktionalität, wenn Sie die gleiche Peerklasse verwenden, die von der Basissteuerungsklasse verwendet wurde. Sie müssen dies jedoch testen. Dennoch wird die Implementierung eines Peers als bewährte Methode empfohlen, damit der Peer den Namen der Klasse Ihrer neuen Steuerelementklasse richtig melden kann. Das Implementieren eines benutzerdefinierten Automatisierungspeers umfasst einige Schritte. Weitere Informationen finden Sie unter Benutzerdefinierte Automatisierungspeers.

Hilfstechnologie in Apps, die XAML/Microsoft DirectX Interop unterstützt

Auf in einer XAML-Benutzeroberfläche gehostete DirectX-Inhalte (mit SwapChainPanel oder SurfaceImageSource) kann standardmäßig nicht zugegriffen werden. Das Beispiel XAML SwapChainPanel DirectX interop sample veranschaulicht das Erstellen von Benutzeroberflächenautomatisierungs-Peers für den gehosteten DirectX-Inhalt. Diese Technik erlaubt den Zugriff auf den gehosteten Inhalt über Benutzeroberflächenautomatisierung.

Verwandte Themen

Windows.UI.Xaml.Automation
Designen für die Barrierefreiheit
Barrierefreiheit für Windows-Runtime-Apps mit JavaScript und HTML
XAML-Beispiel für Barrierefreiheit

 

 

Anzeigen:
© 2014 Microsoft