Erstellen von barrierefreien Medieninhalten (XAML)

Applies to Windows and Windows Phone

Sie suchen die HTML/JavaScript-Version dieses Themas? Informationen finden Sie unter Erstellen von barrierefreien Medieninhalten (HTML).

Falls Ihre App Medieninhalte enthält, müssen Sie Beschriftungen und/oder einen alternativen Audiotitel mit einer Beschreibung der wichtigsten visuellen Elemente im Videoteil bereitstellen. Beschriftungen sind sichtbare Textentsprechungen für Sprache und wichtige nicht sprachliche Audioteile einer Mediendarstellung. Sie beinhalten sowohl das gesamte gesprochene Material als auch alle Audioeffekte, die für das Verständnis der Medieninhalte erforderlich sind. Beachten Sie, dass Beschriftungen nicht nur für herkömmliches videobasiertes Material verwendet werden. Sie werden auch für reine Audiomaterialien wie Podcasts, Begleitkommentare in Animationen (einschließlich Spiele) und Präsentationen (einschließlich Bildschirmaufnahmen) sowie andere ähnliche Inhalte benötigt.

Breitstellen barrierefreier Transportsteuerelemente für Medien

Viele Standards oder Empfehlungen für die Barrierefreiheit geben vor, dass Benutzer in der Lage sein müssen, jede zum App-Verhalten gehörende Medienwiedergabe zu steuern. Diese Steuerung muss schnell und mühelos als Teil der Benutzeroberfläche zu erkennen sein. Der einfache Grund hierfür ist, dass viele Benutzer, die auf Barrierefreiheitsfeatures angewiesen sind, Bildschirmleseprogramme verwenden. Wird die Wiedergabe eines Audiotitels gestartet und der Benutzer kann nicht gleich erkennen, wie er die Wiedergabe beenden kann, hört er die Beschreibungen des Bildschirmleseprogramms nicht, in denen er erfahren würde, wo er das benötigte Steuerelement findet. Tatsächlich kann der Benutzer Ihre App erst dann wieder über das Bildschirmleseprogramm nutzen, wenn die Medienwiedergabe endet.

Laut einiger Empfehlungen für die Barrierefreiheit sollten beim Start der App niemals automatisch Medien wiedergegeben werden. Stattdessen sollten Benutzer die Möglichkeit haben, die allgemeine App-Struktur mit Techniken wie dem Durchlaufen der Aktivierreihenfolge oder anderen Hilfstechnologien zu erkunden. So können Benutzer herausfinden, wie sie Medien selbst wiedergeben, nachdem sie sich ausreichend über die Interaktion mit der App informiert haben.

Das Hauptelement zur Anzeige von Videoinhalten in einer Windows-Runtime-App mit C++, C# oder Visual Basic ist das MediaElement-Objekt. Für ein MediaElement können entweder ein Standardsatz mit Transportsteuerelementen oder benutzerdefinierte Transportsteuerelemente verwendet werden, mit denen die Medienwiedergabe gesteuert wird, indem MediaElement-Methoden für die zugeordnete MediaElement-Instanz aufgerufen werden. Die Nutzung der standardmäßigen Transportsteuerelemente ist wahrscheinlich weiter verbreitet. Sie aktivieren sie, indem Sie die AreTransportControlsEnabled-Eigenschaft auf true festlegen.

In die standardmäßigen Transportsteuerelemente ist im Rahmen ihrer vom System bereitgestellten Vorlage die Unterstützung für Barrierefreiheit integriert. Die Schaltfläche Wiedergabe/Anhalten verfügt beispielsweise über ein Name-Element und eine QuickInfo zur Beschreibung der aktuellen Aktion. Sie kann den Fokus erhalten und aufgerufen werden, der Schieberegler für Suchleiste unterstützt Pfeiltasten für die Navigation und meldet den Wert per RangeValue-Muster usw. Falls Sie diese Standardsteuerelemente nicht verwenden, sollten Sie sicherstellen, dass Ihre Transportsteuerelemente über die grundlegenden Informationen und Unterstützung für die Barrierefreiheit verfügen. Es ist ratsam, die vorhandene Unterstützung der Barrierefreiheit in den standardmäßigen Transportsteuerelementen zu überprüfen und sich zu vergewissern, dass die Barrierefreiheit Ihrer Transportsteuerelemente mindestens gleichwertig ist.

Eine allgemeine Entwurfsmetapher für Transportsteuerelemente für Medien besteht darin, nur Symbole zu verwenden. Dazu wird in der Regel eine Button-Klasse verwendet, die Image-Inhalt oder ggf. eine zusammengesetzte Grafik enthält (z. B. eine mit Path definierte Form). Stellen Sie dabei stets sicher, dass das Button-Steuerelement auch über einen AutomationProperties.Name-Wert verfügt, der die Aktion beschreibt, bzw. über QuickInfos mit derselben Beschreibung, damit Sprachausgabeprogramme diese Informationen Benutzern vorlesen können. Sorgen Sie auch dafür, dass alle Transportsteuerelemente einschließlich der Schaltflächen eine sinnvolle Aktivierreihenfolge für den ausschließlichen Zugriff per Tastatur aufweisen und dass Schaltflächen, die den Fokus besitzen, mit der Leertaste oder der Eingabetaste aktiviert werden können.

Beschriftungen

Untertitel können geschlossen (die Anzeige der Untertitel kann vom Benutzer ein- und ausgeschaltet werden) oder offen sein (die Untertitel sind immer für alle Benutzer sichtbar — üblicherweise als unveränderlicher Teil des Videos). Bei offenen Beschriftungen muss die App lediglich auf das korrekte Medium zugreifen. Bei geschlossenen Beschriftungen muss dagegen in einer Seitenbandtextdatei bzw. einem Seitenbandformat nach den Textinformationen gesucht werden, und anschließend müssen die Beschriftungen in einem gut sichtbaren Teil der Benutzeroberfläche angezeigt werden.

Falls Ihre Anwendung Audiomedien oder audiovisuelle Medien enthält, sollten Sie Textalternativen oder Beschriftungen für Hörgeschädigte bereitstellen. Normalerweise fügen Sie Beschriftungen mithilfe von Medienerstellungstools direkt den Mediendateien hinzu.

Wie bereits erwähnt enthält die MediaElement-Klasse keine Standardbenutzeroberfläche. Sie bietet daher auch keinen standardmäßigen Benutzeroberflächenbereich für die Anzeige des Textes aus geschlossenen Beschriftungen. Sie müssen ein Steuerelement für diesen Bereich angeben und das Verhalten implementieren, mit dem der Beschriftungstext entsprechend synchronisiert mit dem Medium angezeigt wird. Die Synchronisierung wird durch Behandeln des MarkerReached-Ereignisses erreicht. Jedes Mal, wenn ein MarkerReached-Ereignis ausgelöst wird, bedeutet dies, dass mehr Text aus einer geschlossenen Beschriftung zur Anzeige verfügbar ist. Sie können den Text dann aus den Ereignisdaten abrufen und in einem Textbereich oder -steuerelement rendern. Sie können entscheiden, ob nur der aktuellste Beschriftungstext oder ein Bereich mit automatischem Bildlauf angezeigt werden soll, in dem sich aufeinander folgende Beschriftungen ersetzen.

Im Folgenden sehen Sie ein Beispiel für den Code, mit dem Sie Beschriftungen in Ihrer App anzeigen können:


<MediaElement x:Name="media" Width="300" Height="200"
  MarkerReached="OnMarkerReached" Source="media.wmv"/>
...
<TextBlock x:Name="CaptionTextBlock" />


Public Sub OnMarkerReached(ByVal sender As Object,
    ByVal e As TimelineMarkerRoutedEventArgs)

    CaptionTextBlock.Text = e.Marker.Text

End Sub

Alternative Audiodatenströme

Die ursprünglichen Hersteller der Medien, die Sie in einer App wiedergeben, können Mediendateien mithilfe von Medienproduktionstools alternative Audiodatenströme hinzufügen. Das Format, mit dem die Datenströme aktiviert werden, ist Teil der Definition des verwendeten Videoformats (WMV usw.). Diese Datenströme sind nützlich, um gesprochene Kommentare bereitzustellen, z. B. eine Beschreibung des Videodatenstroms für Menschen mit Sehstörungen.

Für den Zugriff auf diese alternativen Datenströme verwenden Sie in Ihrem App-Code die AudioStreamCount- und AudioStreamIndex-Eigenschaften. Im nächsten Beispiel ist media eine benannte Instanz der MediaElement-Klasse, die eine Quellmediendatei geladen hat und erwartet, dass diese Datei mehrere Audiodatenströme enthält. Dieser Code ist ein Handler für ein Benutzersteuerelement, mit dem der Benutzer nach dem Laden des Mediums zwischen Audiodatenströmen wechseln kann.


private void AltAudioBtn_Click(object sender, RoutedEventArgs e)
{
    if (media.AudioStreamCount > 1)
    {
         if (media.AudioStreamIndex == 1)
         {
            media.AudioStreamIndex = 0;
            (sender as Button).Content = "Play full-description audio";
         } else {
            media.AudioStreamIndex = 1;
            (sender as Button).Content = "Play default audio";
         }
     } else
     {
         (sender as Control).IsEnabled = false;
     }
}


Weitere Informationen zu alternativen Audiodatenströmen finden Sie unter So wird's gemacht: Auswählen von Audiospuren in verschiedenen Sprachen. Dieses Thema ist auf das Bereitstellen von Datenströmen für verschiedene Sprachen ausgerichtet und nicht auf einen Datenstrom, der Audiobeschreibungen enthält. Die technischen Konzepte sind jedoch gleich.

Verwandte Themen

XAML-Beispiel für Barrierefreiheit
XAML-Beispiel für die Medienwiedergabe
MediaElement
Wiedergeben von Audio- und Videodateien und Anzeigen einer Vorschau

 

 

Anzeigen:
© 2015 Microsoft