CSSイメージアニメーションモジュール レベル 1

W3C 最初の公開作業草案,

この文書の詳細
このバージョン:
https://www.w3.org/TR/2026/WD-css-image-animation-1-20260409/
最新公開バージョン:
https://www.w3.org/TR/css-image-animation-1/
編集者ドラフト:
https://drafts.csswg.org/css-image-animation-1/
以前のバージョン:
履歴:
https://www.w3.org/standards/history/css-image-animation-1/
フィードバック:
CSSWG Issues Repository
編集者:
Florian Rivoal
この仕様への提案:
GitHub Editor

概要

このCSSモジュールは、アニメーション画像の描画を制御する機能を提案します。

CSSは、構造化された文書(HTMLやXMLなど)の 画面上、紙上などでの描画を記述するための言語です。

この文書の位置付け

このセクションは、この文書が公開された時点での状態を説明しています。 現在のW3C公開物のリストと、この技術報告書の最新版は W3C標準と草案インデックスで確認できます。

この文書は CSSワーキンググループによって 最初の公開作業草案勧告策定トラック利用) として公開されました。 最初の公開作業草案としての公開は W3Cやそのメンバーによる承認を意味するものではありません。

これは草案文書であり、 他の文書によっていつでも更新、置き換え、 または廃止される可能性があります。 この文書を進行中の作業以外として引用することは適切ではありません。

ご意見は、GitHubでIssueを作成(推奨)するか、 件名に仕様コード「css-image-animation」を含めて “[css-image-animation] …コメントの要約…” のように記述してください。 すべてのIssueとコメントは アーカイブされています。 または(アーカイブ済みの)公開メーリングリスト www-style@w3.org に送信することもできます。

この文書は 2025年8月18日W3Cプロセス文書 に準拠しています。

この文書は、 W3C特許ポリシーの下で活動するグループによって 作成されました。 W3Cは グループの成果物に関連する特許開示の公開リスト を管理しています。 そのページには、特許開示の方法についても記載されています。 本人が実質的に特許が存在すると認識している場合は、 その特許が必須請求項 であると考えられる場合には、 W3C特許ポリシー第6節 に従って情報を開示しなければなりません。

1. イントロダクション

このセクションは規範的ではありません。

アニメーション画像([GIF][PNG][WebP]… などによって実現可能)は、 Web上で一般的に利用されています。 ユーザーエージェントはデフォルトでこれらの画像を自動再生しますが、 これはユーザーにとって不快であったり、 特に1ページに複数の画像が表示されているケース(例:画像ギャラリー)では顕著です。 また、WCAG 2.2 §  成功基準2.2.2 一時停止・停止・非表示にも違反します。 現在のところ、 サイト制作者にはこれを制御する手段がありません。

このため、こうしたアニメーションを制御したいというユーザーの要望があります。しかし、利用形態が多様であるため、 ケースや求められるUI・ユーザー体験も幅広く、 これを自動化やユーザーエージェントのオプトイン機能とすることは十分とは言えません

ユーザーに最良の体験を提供するために、 ウェブサイトはアニメーション画像ごとに再生体験を個別に制御する必要があります。

本仕様は、CSSプロパティ(image-animation) と疑似クラス(:animated-image) を提案し、 制作者がアニメーションを制御可能にし、 その制御や任意のUIを関連要素へ適用できるようにします。

動機や検討した代替案の詳細については、 別管理されている 説明文書(explainer)プレゼンテーション も参照ください。

この仕様はいかなる場合も、 全てのアニメーション画像静止画像として表示するオプションなど、 ユーザーに画像アニメーションを包括的に制御する設定を ユーザーエージェントが提供することを妨げるものではありません。

2. 画像アニメーションの制御:image-animation プロパティ

名前: image-animation
値: normal | paused | stopped | running
初期値: normal
適用対象: コンテンツ画像および 装飾画像を持つ要素
継承: yes
パーセンテージ: n/a
算出値: 指定通り
標準順序: 構文規則に従う
アニメーション型: 離散

このプロパティにより、制作者は アニメーション画像を アニメーション状態で表示するか 一時停止状態で表示するかを制御できます。

コンテンツ画像および装飾画像 の両方がこのプロパティの影響を受けます。 要素内に複数の装飾画像 (例:複数の背景画像やボーダー画像) またはコンテンツ画像と1つ以上の装飾画像がある場合、 その要素のこのプロパティの算出値が全てに影響します。

注記: よって、要素の 装飾画像のみを 一時停止し、同じ要素のコンテンツ画像のアニメーションだけを再生したり、 逆の操作をすることはできません。

非アニメーション画像の場合は、 このプロパティの値を変えても効果はありません。 また、このプロパティは動画プログラムによる画像 には影響しません。

このプロパティがルート要素 に適用された場合 その効果は背景の装飾画像についてキャンバス背景 にも伝播します。

注記: 互換性のため、 backgroundプロパティはルート要素だけでなく HTMLの body 要素からも伝播します。 しかし、image-animation のような新しいプロパティはルート要素のみから伝播します。 body に設定しても、 そこにbackgroundが指定されている場合であっても 伝播はしません。

normal
アニメーション画像 のアニメーションは、画像フォーマットやホスト言語により 通常通り再生されます。

さらに、 同じアニメーション画像で絶対URL・画像データが同一で かつ算出値image-animationnormal のものは 全てグループとして同じタイムライン上で同期再生しなければなりません。 タイムラインはグループ内で最も早く追加された時点から始まります。

注記: 上記要件は [HTML]HTML § 15.4.2 Imagesに規定されるレンダリング期待値に基づきます。 ただし[HTML]は 文書の具体的な表示方法を通常必須とはしていませんので 上記の挙動は規範的ではありません。 本仕様はこれを規範要件とします。

stopped
アニメーション画像静止画像 として描画されます。 ユーザーエージェントはアニメーションを再生してはなりません。 カバーフレーム を含む場合はそのフレームを表示しなければならず、 それ以外の場合はアニメーションの初期状態で画像を表示します。
paused
ユーザーエージェントは アニメーション画像に 含まれるアニメーションを 再生してはなりません。 この値の適用開始時点で表示されていた画像のまま アニメーションを事実上「一時停止」します。

この値が適用されるまでアニメーションが再生されていなかった場合、 挙動はstoppedと同じです。

running
normal と同様に アニメーション画像 のアニメーションが画像フォーマットやホスト言語に従って 通常通り再生されます。

ただし、アニメーションタイムラインは要素ごとにスコープされます: 単一要素内のコンテンツ画像および 装飾画像の間では 同じ絶対URLかつ同じ画像データ、 かつimage-animation算出値がrunningのものは ひとまとまりのグループとして同期再生されますが、 他要素中の画像とはタイムラインが別になります。

この値が適用されている間に画像が要素に追加された場合、 タイムラインはグループ内で新たに最も早く追加された時点から開始します。

要素がdisplay: none から作成または表示され、 すでに画像が追加されており、かつ image-animationrunningの場合、 タイムラインはレイアウトに加えられた時点から開始します。

このプロパティを他の値から running に切り替えた場合は アニメーションは切り替え時点で表示されていた状態から続行となるよう タイムラインの開始位置を調整します。

制作者はこのプロパティを用いて prefers-reduced-motionメディア機能で 表明されたユーザーの好みに応じて 必須でない画像アニメーションを抑制できます。 ここでは装飾画像静止画像 にし、 img 要素のみアニメーションを継続しています。
:root { /* 継承により文書全体に伝播 */
  image-animation: paused;
}
img {
  image-animation: normal;
}
あるHTMLページに複数の img 要素で 同じ画像(絶対URL・画像データとも同一)を表示し、 全てにimage-animation: normal が指定されているとします。

そのうち1つの要素だけ image-animationプロパティを一時的に paused に変更すると、 その画像アニメーションだけが停止します。 他の画像には影響せず、 アニメーションは継続します。

次に、その要素の image-animationプロパティを running に変更すると、その画像だけアニメーションを再開しますが、 他の画像のタイムラインとは同期されず、 独自に進行します。

さらに、image-animationプロパティを normalに戻すと、 その画像のアニメーションが再び他のインスタンスと同期します。

image-animationプロパティは ラスター画像形式だけでなく ベクター画像(SVGも含みます。[SVG2]参照)にも影響します。 ただし、独立リソースとして読み込まれたコンテンツ画像装飾画像のSVGが該当し、 HTML文書中にインラインで記述された svg 要素には適用されません。 (ただし svg 要素に設定すれば継承し、 SVGの image 要素で読み込んだ アニメーション コンテンツ画像 には影響します。)

3. アニメーション画像の識別::animated-image 疑似クラス

:animated-image疑似クラスは、コンテンツ画像要素のうち アニメーション画像 が読み込まれているものを表します。 animated-image疑似クラスにマッチするには、 アニメーション可能な形式であるだけでなく、 実際にアニメーション画像でなければなりません。

コンテンツ画像でない要素には animated-image疑似クラスは決してマッチしません。

この疑似クラスを使うことで、 制作者は停止中画像の再生UIを選択的に提供できます。

この簡単な例では、 アニメーション可能な画像は初期状態で一時停止され、 フィルタが適用されて 薄暗くグレーアウトした見た目になります。 画像にホバーまたはフォーカスすると フィルタが解除され アニメーションが再開されます。

img:animated-image {
  image-animation: paused;
  filter: grayscale(10%) contrast(50%) brightness(80%);
}
img:animated-image:hover,
img:animated-image:focus {
  filter: none;
  image-animation: running;
}
画像アニメーションを制御するUIを構築する制作者は、 キーボードユーザーのニーズも考慮し、 マウス操作のみに頼ったインタラクションにしないようにすることが重要です。
上記の例では、 再生は画像にホバーするだけでなく フォーカスすることでも有効化されます。 完全に機能させるには、 アニメーション可能画像をフォーカス可能にする必要があります。 これは下記のようなコードスニペットで実現できます。
function setImageFocusability(event) {
  var img = event.target;
  if (img.matches(":animated-image") {
    img.tabIndex = 0;
  } else {
    img.removeAttribute("tabindex");
  }
}
document.querySelectorAll("img").forEach( (i) => {
  setImageFocusability({target: i });
  i.addEventListener('load', setImageFocusability);
  i.addEventListener('error', setImageFocusability);
});

:animated-imageにマッチするかどうかは 画像の現在の再生状態や image-animationプロパティの値には影響されません。 ただしユーザーエージェントの設定で画像アニメーションが全体的に無効化されている場合は、 アニメーション可能な画像であっても静止画像とみなされ、マッチしません。

4. 用語

静止画像
単一フレームのみを 最終的な表示体験として 表示するよう意図された画像。

JPEG画像は静止画像です。

アニメーション画像
複数フレームを 最終的な表示体験の一部として連続表示することを 意図した画像であり、 ループする場合もしない場合もあります。

アニメーションPNG画像や アニメーション[GIF]画像は アニメーション画像です。

プログレッシブレンダリングやマルチパス読み込みへの対応があるだけでは、 アニメーションとはみなされません。

コンテンツ画像
静止画像または アニメーション画像を 表現するホスト言語の要素。ただし 動画プログラム画像は除きます。

img [HTML]要素( picture 要素内にネストされている場合も含む)、 object [HTML]要素(画像を 表現する場合)、 および image [SVG2] 要素がコンテンツ画像にあたります。

HTML video 要素は、ポスターフレームを表す場合(かつその場合のみ)、 コンテンツ画像 とみなされます。

装飾画像
background-imageborder-imageなどのCSSプロパティを通じて 文書レンダリングに挿入される画像。
動画

ホスト言語において動画(動く画像)を表す要素。 通常、音声を伴う場合もあるが必須ではなく、 再生・一時停止・シーク・音量調整・全画面表示などの インタラクティブなコントロールが伴う場合もある。 また、キャプションや字幕を伴うこともある。

注記: 概念的には、ファイルフォーマットだけに注目すると 動画アニメーション画像の区別は 実質的な重なりが多く 原理的に区別できないこともある。 ここでの区別は文書内でどの要素を使うかという 制作者の意図に依存します。

video [HTML]要素は 動画を表します。

どちらの用途にも対応するユーザーエージェントが想定される場合、 同一のvideo/mp4ファイルが video 要素で表示されるときは 動画、 CSSのbackground-imageとして利用される場合は 装飾画像 となります。
プログラム画像
ホスト言語のAPIを利用してプログラム的に生成された画像。 外部リソースから読み込まれる画像とは区別される。

canvas [HTML]要素は プログラム画像を表します。

カバーフレーム
一部のアニメーション画像 形式では、 画像作者が静止画像 を指定することができ、この文書ではそれを カバーフレーム と呼びます。 アニメーションが再生されていないときに 初期状態とは別に表示されるフレームです。

5. アクセシビリティに関する考慮事項

このセクションは規範的ではありません。

6. プライバシーに関する考慮事項

このセクションは規範的ではありません。

image-animationプロパティは クロスオリジンでもアニメーション制御を可能にしますが、 画像が実際にアニメーション可能かどうかの情報は漏れません。 算出値はその情報により変わりません。 running値はアニメーション画像静止画像とで 目に見える効果の違いがありますが、 その違いをページ側が観測することはできません。

一方で:animated-image疑似クラスは コンテンツ画像アニメーション静止画像かを ページにクロスオリジンでも伝えます。 これはCORSで制限可能ですが、 本仕様では次の理由で制限していません:

7. セキュリティに関する考慮事項

このセクションは規範的ではありません。

本仕様で新たなセキュリティ問題は把握されていません。

適合性

文書の記法規約

適合要件は、記述的な断言とRFC 2119の用語の組み合わせで表現されています。規範的な部分における「MUST」 「MUST NOT」「REQUIRED」「SHALL」「SHALL NOT」「SHOULD」「SHOULD NOT」 「RECOMMENDED」「MAY」「OPTIONAL」などの主なキーワードはRFC 2119に示される通り 解釈されます。 ただし、可読性のため、本仕様ではこれらの単語は全て大文字では記載されていません。

本仕様の本文は、明示的に非規範的(non-normative)、例(examples)、注記(notes)と記された部分を除き、 すべて規範的です。[RFC2119]

本仕様における例は「for example」などの語句で導入されるか、 class="example"のように規範的本文と区別されて記述されています。

これは情報提供例(informative example)の例です。

情報提供の注記(informative note)は「Note」で始まり、 class="note"によって規範的本文と区別されます:

Note, これは情報提供用の注記です。

アドバイスメントは特別な注意を喚起する規範的セクションで、 他の規範的本文と区別するため<strong class="advisement">で示され、次の通りです: UAはアクセシブルな代替手段を必ず提供しなければなりません。

適合クラス

本仕様の適合性は、次の3つの適合クラスに対して定義されています:

スタイルシート
CSS スタイルシート
レンダラー
UA (スタイルシートの意味を解釈し、それらを使用する文書をレンダリングするもの)。
オーサリングツール
UA (スタイルシートを書き出すもの)。

スタイルシートは、このモジュールで定義された構文を用いた全ての宣言が 汎用のCSS文法および本モジュールで定義された各機能ごとの個別文法に従って 有効である場合、本仕様に適合します。

レンダラーは、対応する仕様で定義された通りに スタイルシートを解釈することに加え、本仕様で定義された全ての機能を 正しく構文解析して正しく文書をレンダリングすることで 本仕様に適合します。ただし、デバイスの制約により正しく文書を描画できない場合でも UAは非適合と見なされません(例:モノクロモニタでは 色を描画する必要はない)。

オーサリングツールは、その書き出すスタイルシートが 汎用CSS文法および本モジュールの各機能ごとの個別文法に 構文的に適合し、かつ本モジュールで求められる 他のすべてのスタイルシートの適合要件を満たす場合、 本仕様に適合します。

部分的な実装

制作者が前方互換な構文解析規則を活用してフォールバック値を 指定できるよう、CSSレンダラー サポート不能な at-規則、プロパティ、プロパティ値、キーワード、 その他の構文要素を無効(および適切に無視)として 扱わなければなりません。特に、ユーザーエージェントはサポートしていない値のみ を選択的に無視し、サポートする値だけを複数値プロパティ宣言の中で 採用することはしてはなりません。いずれかの値が無効と見なされた場合 (サポートされていない値は必ず無効ですが)、 CSSでは宣言全体を無視する必要があります。

不安定および独自機能の実装

将来的なCSSの安定機能と衝突しないよう、 CSSWGはベストプラクティスに従って、 不安定な機能や 独自拡張機能の 実装を行うことを推奨します。

実験的でない実装

仕様がCandidate Recommendation(CR)段階に達すると、 実験的でない実装が可能となり、 実装者は仕様に従って正しく実装できるCRレベルの機能は プレフィックスなしで実装公開すべきです。

CSSの実装間で相互運用性を確立・維持するため、 CSSワーキンググループは実験的でないCSSレンダラーに対し プレフィックスなし実装を公開する前に実装報告書 (および必要ならそのテストケース)をW3Cに提出するよう要請しています。 W3Cに提出されたテストケースは、CSSワーキンググループによる レビューと修正を受ける場合があります。

テストケースや実装報告書提出方法の詳細は CSSワーキンググループのWebサイト https://www.w3.org/Style/CSS/Test/ を参照のこと。 質問は public-css-testsuite@w3.org メーリングリスト宛に送ってください。

索引

本仕様で定義される用語

他仕様から参照される用語

参考文献

規範的参照文献

[CSS-BACKGROUNDS-3]
Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3. 2024年3月11日. CRD. URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr.. CSS Cascading and Inheritance Level 5. 2022年1月13日. CR. URL: https://www.w3.org/TR/css-cascade-5/
[CSS-DISPLAY-4]
Elika Etemad; Tab Atkins Jr.. CSS Display Module Level 4. 2025年11月6日. WD. URL: https://www.w3.org/TR/css-display-4/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 4. 2024年3月12日. WD. URL: https://www.w3.org/TR/css-values-4/
[HTML]
Anne van Kesteren; 他. HTML Standard. リビングスタンダード. URL: https://html.spec.whatwg.org/multipage/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. 1997年3月. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[SVG2]
Amelia Bellamy-Royds; 他. Scalable Vector Graphics (SVG) 2. 2018年10月4日. CR. URL: https://www.w3.org/TR/SVG2/

参考情報

[GIF]
Graphics Interchange Format. 1990年7月31日. URL: https://www.w3.org/Graphics/GIF/spec-gif89a.txt
[IMAGE-ANIMATION-EXPLAINER]
Florian Rivoal; Lea Verou. CSS Image Animation Explainer. URL: https://drafts.csswg.org/css-image-animation-1/explainer
[IMAGE-ANIMATION-TALK]
Lea Verou; Florian Rivoal. We need to be able to control Image Animation on the Web Platform!. URL: https://github.com/webplatformco/project-image-animation/tree/main/image-animation-property
[MEDIAQUERIES-5]
Tab Atkins Jr.; 他. Media Queries Level 5. 2026年2月19日. WD. URL: https://www.w3.org/TR/mediaqueries-5/
[PNG]
Chris Lilley; 他. Portable Network Graphics (PNG) Specification (Third Edition). 2025年6月24日. REC. URL: https://www.w3.org/TR/png-3/
[WCAG22]
Michael Cooper; 他. Web Content Accessibility Guidelines (WCAG) 2.2. 2024年12月12日. REC. URL: https://www.w3.org/TR/WCAG22/
[WebP]
J. Zern; P. Massimino; J. Alakuijala. WebP Image Format. 2024年11月. Informational. URL: https://www.rfc-editor.org/rfc/rfc9649

プロパティ索引

名前 初期値 適用対象 継承 %値 アニメーション型 標準順序 算出値
image-animation normal | paused | stopped | running normal コンテンツ画像および装飾画像を持つ要素 yes n/a discrete 構文規則による 指定通り