SMIL 1.0 で拡張音声解説を追加する

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

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

適用 (対象)

SMIL 1.0 プレーヤーが利用可能な場合

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

解説

この達成方法の目的は、会話の合間に入れられるよりも多くの音声解説を、視聴覚素材に付加することである。

SMIL 1.0 にはこれを達成する簡単な方法がないが、連続して順番に再生される複数のファイルに、音声ファイル及び映像ファイルを分割することによって実装できる。この方法によって追加した音声解説は、視聴覚コンテンツが停止している間に再生される。映像ファイルの最後のフレームは、画面に表示されたまま一時停止し、その間に音声ファイルが再生される。

これにより、映像は最初から最後まで再生されるように見えながらも、ところどころで停止して、その間に長めの音声解説が提供される。そして、音声解説が終了すると、映像の再生が自動的に再開する。

この拡張音声解説のオン/オフを操作するには、スクリプトを使用して、拡張音声解説を含んだ SMIL スクリプト及び含まない SMIL スクリプトの二つの間で切り替えることによって実装できる。又は、スクリプトを使用して、拡張音声解説を SMIL ファイルに追加したり SMIL ファイルから削除したりすることもできる。そうすることで、映像クリップは、単純に順序どおり再生されることになる。

スクリプトが使用できない場合は、二つのバージョンの映像を提供することによって可能となる。つまり、一つは拡張音声解説を含んだバージョン、もう一つは含まないバージョンを提供するのである。

事例

例 1: 拡張音声解説のある SMIL 1.0 の映像、メインのメディアを 4 箇所で停止して拡張音声解説を挿入している

   
<?xml version="1.0" encoding="UTF-8"?>
<smil xmlns:qt="http://www.apple.com/quicktime/resources/smilextensions" 
xmlns="https://www.w3.org/TR/REC-smil" qt:time-slider="true">
  <head>
    <layout>
      <root-layout background-color="black" height="266" width="320"/>
      <region id="videoregion" background-color="black" top="26" left="0" 
      height="144" width="320"/>
    </layout>
  </head>
  <body>
  <par>
   <seq>
     <par>
       <video src="video.rm" region="videoregion" clip-begin="0s" clip-end="5.4" 
       dur="8.7" fill="freeze" alt="videoalt"/>   
       <audio src="no1.wav" begin="5.4" alt="audio alt"/>
     </par>
     <par>
       <video src="video.rm" region="videoregion" clip-begin="5.4" clip-end="24.1" 
       dur="20.3" fill="freeze" alt="videoalt"/>
       <audio src="no2.wav" begin="18.7" alt="audio alt"/>
     </par>
     <par>
       <video src="video.rm" region="videoregion" clip-begin="24.1" clip-end="29.6" 
       dur="7.7" fill="freeze" alt="videoalt"/>
       <audio src="no3.wav" begin="5.5" alt="audio alt"/>
     </par>
     <par>
       <video src="video.rm" region="videoregion" clip-begin="29.6" clip-end="34.5" 
       dur="5.7" fill="freeze" alt="videoalt"/>
       <audio src="no4.wav" begin="4.9" alt="audio alt"/>
     </par>
     <par>
       <video src="video.rm" region="videoregion" clip-begin="77.4" alt="video alt"/>
     </par>
   </seq>
  </par>
</body>
</smil>

上記のマークアップは、五つの <par> セグメントに分割されている。各セグメントに <video> と <audio> のタグが一つずつある (ただし、最後の <par> に <audio> がないのは意図的なものである)。拡張音声解説の通常の使い方は、音声解説が提供される間、メインのメディアを一時停止するというものである。SMIL 1.0でこれを実現するには、映像クリップの開始と終了を指定する「clip-begin」と「clip-end」を設定して、その「clip-begin」と「clip-end」で定義されるよりも長い再生時間をクリップに設定する。fill="freeze" は、拡張音声解説の再生中、映像の最後のフレームを保持する。<audio> タグには「begin」の属性があり、その前の <video> タグで定義された「clip-end」の値と同じ値を持っている。

「clip-begin」「clip-end」「dur」の値を決めるにあたっては、音声解説が開始及び終了する前の映像部分の時間と、拡張音声解説の全体の長さを調べる必要がある。「clip-begin」と「clip-end」は、それ自体の値を定義するが、「dur」の値は、「clip-begin」と「clip-end」によって定義される拡張音声解説及び映像クリップを合計した長さとなる。最初の <par> では、映像クリップが 0 秒で始まり、5.4 秒で終わる。そして記述の長さは 3.3 秒だ。このため、「dur」の値は、5.4 + 3.3 = 8.7 秒となる。

参考リソース

参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。

検証

手順

  1. 拡張音声解説のあるファイルを再生する。
  2. 音声解説のあるファイルを再生する。
  3. 映像がところどころ一時停止して、拡張音声解説が再生されることを確認する。

期待される結果

  • #3 の結果が真である。