Windows Dev Center

Come rendere accessibile il contenuto multimediale (XAML)

Stai cercando la versione di questo argomento relativa a HTML/JavaScript? Vedi Come rendere accessibile il contenuto multimediale (HTML).

Se nell'app sono inclusi contenuti multimediali, assicurati di fornire sottotitoli per il contenuto e/o di fornire una traccia audio alternativa che descriva gli elementi visivi chiave che accadono nella porzione video. I sottotitoli sono il testo visibile equivalente alle parti audio vocali e a quelle non vocali essenziali di una presentazione multimediale. Includono tutto il materiale parlato e gli eventuali effetti audio necessari per la comprensione del contenuto multimediale. Nota che i sottotitoli non sono destinati solo al materiale video tradizionale, ma sono necessari anche per il contenuto multimediale solo audio, come podcast, voice-over nelle animazioni (inclusi i giochi) e presentazioni (incluse le immagini acquisite dallo schermo) e altri contenuti analoghi.

Fornire controlli di trasporto accessibili per il contenuto multimediale

Molti consigli o standard di accessibilità specificano che gli utenti dovrebbero poter controllare la riproduzione multimediale che fa parte del comportamento dell'app. Questo controllo dovrebbe essere rapido e semplice da individuare nell'ambito dell'interfaccia utente. Il motivo pratico è che molti utenti con esigenze di accessibilità si avvalgono di utilità per la lettura dello schermo. Se viene avviata la riproduzione di una traccia audio e l'utente non riesce a capire rapidamente come interromperla, gli è impossibile ascoltare le descrizioni fornite dall'utilità per la lettura dello schermo che consentirebbero di individuare il controllo necessario. L'utente, infatti, non è in grado di eseguire alcuna operazione utile sull'app mediante l'utilità per la lettura dello schermo fino al termine della riproduzione del contenuto multimediale.

Alcune raccomandazioni sull'accessibilità esortano a non riprodurre mai automaticamente contenuto multimediale al primo avvio dell'app. Offri invece agli utenti la possibilità di esaminare la struttura complessiva dell'app, con tecniche come l'attraversamento dell'ordine di tabulazione o l'uso di altri strumenti di Assistive Technology. In questo modo, gli utenti scopriranno come riprodurre autonomamente il contenuto multimediale quando disporranno di informazioni sufficienti su come interagire con l'app.

L'elemento principale per la visualizzazione di contenuto video in un'app di Windows Runtime scritta in C++, C# o Visual Basic è un oggetto MediaElement. Un oggetto MediaElement può usare un set di controlli per il trasporto predefiniti oppure personalizzati per controllare la riproduzione di elementi multimediali chiamando i metodi MediaElement sull'istanza MediaElement associata. Probabilmente l'uso dei controlli per il trasporto predefiniti è più comune. Per abilitarli devi impostare la proprietà AreTransportControlsEnabled su true.

I controlli per il trasporto predefiniti dispongono del supporto dell'accessibilità integrato all'interno del modello fornito dal sistema. Il pulsante Play/Pausa, ad esempio, presenta un Name e una descrizione comando per illustrare l'azione corrente, può essere attivato e richiamato, il dispositivo di scorrimento per Ricerca supporta la navigazione tramite i tasti freccia e segnala il valore mediante il pattern RangeValue. Se non usi questi controlli predefiniti, tuttavia, verifica che i controlli per il trasporto forniscano il supporto e le informazioni di accessibilità di base. È consigliabile esaminare il supporto dell'accessibilità esistente nei controlli per il trasporto predefiniti e verificare che l'accessibilità dei controlli per il trasporto in uso sia almeno di pari livello.

Una metafora di progettazione comune per i controlli di trasporto consiste nell'uso di sole icone. Questo avviene generalmente con un oggetto Button con contenuto Image o anche con una grafica composita come una forma definita da Path. In questo caso, verifica che anche Button disponga di un valore AutomationProperties.Name descrittivo dell'azione e di descrizioni di comando con la stessa descrizione, in modo che le utilità per la lettura dello schermo consentano agli utenti la visualizzazione delle info. Verifica inoltre che tutti i controlli per il trasporto che includono pulsanti si trovino in un ordine di tabulazione appropriato per poter essere attivati solo dalla tastiera e che i pulsanti possano essere richiamati con i tasti BARRA SPAZIATRICE o INVIO per l'attivazione.

Sottotitoli

Le didascalie o sottotitoli sono codificati (quando la loro visualizzazione può essere attivata e disattivata dall'utente) o non codificati (quando sono sempre visibili a tutti gli utenti, in genere masterizzati nel video). I sottotitoli non codificati non richiedono altri interventi dall'app oltre all'accesso al contenuto corretto. I sottotitoli codificati, invece, fanno affidamento sull'individuazione delle informazioni testuali in un formato o file di testo sideband e quindi sulla visualizzazione di quei sottotitoli in una posizione prominente nell'interfaccia utente.

Se la tua applicazione include materiale audio o audiovisivo, fornisci alternative testuali o sottotitoli a beneficio degli utenti con problemi di udito. In genere i sottotitoli vengono aggiunti direttamente nei file multimediali mediante strumenti di produzione multimediale.

Come indicato in precedenza, la classe MediaElement non dispone di un'interfaccia utente predefinita e quindi non dispone neanche di un'area dell'interfaccia utente predefinita per la visualizzazione del testo dei sottotitoli codificati. Spetta a te specificare un controllo per tale area e implementare il comportamento che visualizza il testo dei sottotitoli adeguatamente sincronizzato con il contenuto multimediale. La sincronizzazione si ottiene mediante la gestione dell'evento MarkerReached. Ogni volta che viene generato un evento MarkerReached, significa che è terminato il testo da visualizzare da un sottotitolo codificato. Puoi quindi acquisire il testo dai dati dell'evento ed eseguirne il rendering in un'area di testo o controllo. Puoi decidere se visualizzare solo il testo del sottotitolo più recente o se invece mantenere un'area a scorrimento automatico in cui i sottotitoli si sostituiscono gli uni agli altri in successione.

Per visualizzare i sottotitoli nell'app puoi usare codice analogo al seguente:


<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

Flussi audio alternativi

I produttori originali del contenuto multimediale riprodotto nell'app possono aggiungere flussi audio alternativi ai file multimediali usando strumenti di produzione multimediale. Il formato che abilita i flussi fa parte della definizione del formato video usato (WMV e così via). Questi flussi sono utili per fornire commenti orali, comprese descrizioni del flusso video a beneficio degli utenti con problemi di vista.

Per accedere a questi flussi alternativi dal codice dell'app, usa le proprietà AudioStreamCount e AudioStreamIndex. Nell'esempio seguente media è un'istanza denominata della classe MediaElement e ha caricato un file multimediale di origine che prevede che contenga più flussi audio. Questo codice è un gestore per un controllo utente che consente all'utente di passare da un flusso audio a un altro dopo il caricamento del contenuto multimediale.


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


Per altre informazioni sui flussi audio alternativi, vedi Come selezionare tracce audio in altre lingue. Questo argomento descrive come fornire flussi per lingue diverse anziché un solo flusso che include le descrizioni audio, ma i concetti tecnici sono gli stessi.

Argomenti correlati

Esempio di accessibilità XAML
Esempio di riproduzione multimediale XAML
MediaElement
Riproduzione e anteprima di audio e video

 

 

Mostra:
© 2015 Microsoft