【注意】この文書にはより新しいバージョンが存在します: WCAG 2.1 達成方法集

WCAG 2.0 達成方法集

Skip to Content (Press Enter)

-

FLASH26: Flash ビデオに音声解説をつける

達成方法に関する重要な情報

この達成方法 (参考) の使用法と、この達成方法が WCAG 2.0 達成基準 (規定) とどのように関係するのかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用 (対象) のセクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法の存在は、その技術があらゆる状況で WCAG 2.0 を満たすコンテンツを作成するために使用できることを意味するものではない。

適用 (対象)

訳注: Flash Player は、2020 年末に提供を終了する計画が Adobe 社より発表されている (Adobe Blog窓の杜)。

WAIC での Flash に関する翻訳のメンテナンスも積極的に行う予定がないことに留意されたい。

これは、次の達成基準に関連する達成方法である:

ユーザエージェント及び支援技術によるサポート

FLASH26 に関するユーザエージェントサポートノートを参照のこと。Flash テクノロジーノートも参照。

解説

この実装方法の目的は、全盲の利用者または視聴覚素材の映像を見ることが困難な利用者がコンテンツの内容を理解できるようにする方法を提供することである。この実装方法では、視聴覚素材の会話の合間に、映像だけで伝えられている情報を説明する音声解説を挿入する。

事例

事例 1: キューポイントに到達したときに解説を再生する

この事例では、FLVPlayback コンポーネントを使用してビデオプレーヤーを作成する。AudioDescriptions という名前のカスタムクラスを追加して、拡張音声解説の再生を管理する。このクラスは、メディア内で音声解説のプロバイダによって識別されるキューポイントをリッスンするイベントリスナーを提供する。これらのキューポイントに到達すると、対応する解説を含む mp3 ファイルの再生が開始される。録音された解説はムービーの会話の合間に収まる時間に設定されている。

音声解説はデフォルトで有効になる。ビデオプレーヤーの下に用意されているボタンによって、利用者は音声解説をオンまたはオフにできる (このボタンは他の達成基準を満たすためにアクセシブルである必要がある)。

コード例:

package {
  import fl.video. *;
  import flash.events. *;
  import flash.media.Sound;
  import flash.media.SoundChannel;
  import flash.net.URLRequest;
  import flash.display.Sprite;
  
  public class AudioDescriptions extends Sprite {
    private var channel: SoundChannel = new SoundChannel;
    private var myPlayer: FLVPlayback;
    private var _enabled: Boolean = true;
    private var _toggleBtn: Button;
    private var snd: Sound = new Sound();
    public function AudioDescriptions() {
      // point myPlayer to the FLVPlayback component instance on the stage, 
      // which should be loaded with a valid video source.
      myPlayer = my_FLVPlybk;
      // add cue points. When any of these are reached, the 
      // MetadataEvent.CUE_POINT event will fire
      myPlayer.addASCuePoint(8.35, "ASpt1");
      myPlayer.addASCuePoint(23.23, "ASpt2");
      
      enable();
      
      enable_AD_btn.addEventListener(MouseEvent.CLICK, handleBtnClick);
    }
    
    private function handleBtnClick(e) {
      _enabled = ! _enabled;
      if (! _enabled) {
        disable();
        enable_AD_btn.label = "Enable Audio Descriptions";
      } else {
        enable();
        enable_AD_btn.label = "Disable Audio Descriptions";
      }
    }
    
    public function enable() {
      // set up an event handler which will be called each time a cue point is reached
      myPlayer.addEventListener(MetadataEvent.CUE_POINT, cp_listener);
    }
    
    public function disable() {
      // remove the event handler called each time a cue point is reached, so 
      // that audio description is disabled.
      myPlayer.removeEventListener(MetadataEvent.CUE_POINT, cp_listener);
    }
    
    private function cp_listener(eventObject: MetadataEvent): void {
      snd = new Sound();
      //recreate sound object as it can only load one mp3 file
      //check to see which cue point was reached
      switch (eventObject.info.name) {
        case "ASpt1":
        snd.load(new URLRequest("sphere.mp3"));
        //create a new Sound object, and load the appropriate mp3
        channel = snd.play();
        // play the audio description, and assign it to the SoundChannel object
        break;
        case "ASpt2":
        snd.load(new URLRequest("transfrm.mp3"));
        channel = snd.play();
        break;
      }
    }
  }
}

この実例は、キューポイントに到達したときに解説を再生するのサンプル (英語) で確認できる。また、キューポイントに到達したときに解説を再生するのソース (英語) をダウンロードすることもできる。

事例 2: 解説のための追加の音声トラックを提供する

音声解説は、追加の音声トラックを通して提供することもできる。この場合、追加の音声トラックはメインのメディアと同じ長さにし、同期して再生させる。ただし、音声解説の再生が必要な箇所のみに音声を含め、他の部分は無音にする。Flash 制作者は、リスナーの好みに応じてこの追加の音声トラックのオン/オフを切り替えるための機能を提供することができる。追加のトラックが有効になっている場合は、二つの音声トラック (一つはメイン音声、もう一つは音声解説のみが含まれているトラック) が並行して再生される。音声解説とメイン音声は、音声が重なって聞き取りが困難になることのないようにする必要がある。この手法は、事例 1 で使用されている手法と同じ効果が期待できる。ただし、Flash 制作者に提供される音声解説ファイルの種類によっては、こちらの手法を選択したほうがいい場合もある。

検証

手順

Flash コンテンツに音声サウンドトラック付きの映像が含まれている場合は、次のことを確認する。

  1. 別の音声ファイルを使用した音声解説が利用可能である

  2. 利用者が音声解説を有効または無効にするためのボタンが用意されている

期待される結果

この達成方法が「十分な達成方法」の一つである場合、この手順や期待される結果を満たしていなければ、それはこの達成方法が正しく用いられていないことを意味するが、必ずしも達成基準を満たしていないことにはならない。場合によっては、別の達成方法によってその達成基準が満たされていることもありうる。