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