概要
- カテゴリー
-
- Flow content
- Phrasing content
- Embedded content
- Interactive content(
controls
属性がある場合に限る) - Palpable content(
controls
属性がある場合に限る) - Media element
- 配置できる場所
-
- 上記カテゴリーの要素が置ける場所。
- 下記の内容モデルの結果として、Media elementを祖先に持ってはならない。
- 内容モデル
-
src
属性がある場合は、- 0個以上の
track
要素。 - 上記に続いて、Transparent。ただし、Media elementを子孫に含んではならない。未対応ブラウザ向けに、代替コンテンツか代替テキストか最低でも説明テキスト等を入れる。
- 0個以上の
src
属性がない場合は、- 0個以上の
source
要素。 - 上記に続いて、0個以上の
track
要素。 - 上記に続いて、Transparent。ただし、Media elementを子孫に含んではならない。未対応ブラウザ向けに、代替コンテンツか代替テキストか最低でも説明テキスト等を入れる。
- 0個以上の
- 属性
-
- グローバル属性
src
→音声のリソースを示す妥当なURLautoplay
→ブーリアン属性。自動再生する場合に指定。controls
→ブーリアン属性。ブラウザ等によるデフォルトのプレーヤーコントロールを表示させたい場合に指定。crossorigin
→値は下記のとおりで、空も可。空の場合は、anonymous
と同等。デフォルトは、anonymous
。別オリジン(→別ドメインなど)からの読み込みに対して、ユーザー認証情報の要否を指定する。anonymous
→ユーザー認証情報を求めない。use-credentials
→ユーザー認証情報を求める。
loop
→ブーリアン属性。ループ再生させたい場合に指定。muted
→ブーリアン属性。デフォルトでは音を鳴らさない場合に指定。preload
→値は下記のとおり。リソースを事前に読み込むか否かのヒントを示す。空の場合は、auto
と同等。デフォルトは、ユーザーエージェントによる。none
→メディアリソースが必ずしも再生されるとは限らない旨、又は不必要なトラフィックを避けたい旨を、ユーザーエージェントに示唆する。metadata
→事前に読み込むべきはメディアリソースのメタデータである(場合によっては、最初の少数のコマも含む)旨を、ユーザーエージェントに示唆する。auto
→閲覧者のニーズを優先してメディアリソースを事前に読み込んでおいてもよい旨を、ユーザーエージェントに示唆する。
itemprop
属性がある場合は、src
属性は必須。
- HTML構文におけるタグの省略
-
- 省略不可。
- 視覚系ブラウザにおいて期待されるレンダリング
-
- プレーヤーコントロールがある場合は、高さは一行分かつ幅は必要な分にて表示。この場合は、置換要素となる。
- デフォルトのプレイヤーコントロールは、再生、一時停止、任意の再生時点への移動、音量変更、
track
要素による字幕等の表示・非表示・変更、表示方式の変更(フルスクリーン表示、独立ウィンドウ表示など)の機能を含むべきである。とはされているものの、動画の再生ではないaudio
要素においては、適用がない事項もあると思われる。 - プレーヤーコントロールがない場合は、{
display: none;
}のCSSを強制する。 - 当該要素の内容は、当該要素をサポートしないブラウザにおいて、代替コンテンツとして表示される。
- ユーザーエージェントに対する特記事項
-
autoplay
属性を実装する義務はない。また、ユーザーによる設定がそれを要求している場合は、autoplay
属性を無視することが推奨される。preload
属性を無視してもよい。
- 意味・用法
-
音声を表す。
メディアリソースは、
src
属性又はsource
要素によって指定される。
アクセシビリティ関連
- 代替テキスト相当:子要素たる
track
要素から取得できるテキスト。 - 未対応ユーザーエージェント向け代替コンテンツ:当該要素の内容。
- アクセシビリティ支援技術向け:子要素たる
track
要素。なお、一般的な視覚系ブラウザで字幕等を表示したい場合は、音声のメディアリソースをvideo
要素で再生する方法を用いるしかないようである。 - オブジェクトデータがアクセス不能又は対応してない形式の場合:
source
要素で複数の形式のデータを用意し、対応してる形式で再生される可能性を高める。なお、いずれのデータも再生できない場合は、何も表示されないか操作できないプレーヤーコントロールが表示されるだけで、代替コンテンツはない。 - 代替テキストや代替コンテンツが提示されない状況もありうることから、前後にテキストの形でキャプションや説明文を配置すべきである(Techniques for WCAG 2.1 : G82, G92, G94, G95, G100)。
- 自動再生機能を用いずに、ユーザーの明示的な再生開始指示を待つことが推奨される(Techniques for WCAG 2.1 : G171)。特に、ユーザーに停止操作する方法を提供せずに、自動再生機能を用いるのは、アクセシビリティを妨げる(Techniques for WCAG 2.1 : F93)。
私見・補足
いきなり音を鳴らすのは望ましくないので、autoplay
属性は指定せずに、controls
属性をつけておく方がよい。
有声動画のメディアリソースを動画なし音声として再生することも可能なブラウザもあるようである。
現在、視覚系ブラウザにおけるレンダリングでは、track
要素に基づく字幕表示は想定されてないようである。実装も見当たらない。
表示確認
- ソース1
-
<audio src="./sample/audio.mp3" controls="controls"> <track src="./sample/audio-track.vtt" kind="captions" srclang="ja" label="caption" default="default" /> audio要素の代替コンテンツその1。 </audio>
- 表示結果1
- ソース2:音声ファイルが存在しない場合
-
<audio src="./sample/nai.mp3" controls="controls" title="nai.mp3は存在しません。"> <track src="./sample/audio-track.vtt" kind="captions" srclang="ja" label="caption" default="default" /> audio要素の代替コンテンツその2。 </audio>
- 表示結果2
対応してるブラウザにおいては、この場合も代替コンテンツは表示されず、機能しないプレーヤーコントロールが表示されるだけ(あるいは、何も表示されない)。