具体例:動画コンテンツでの問題
Eさんは光感受性てんかんの既往歴があります。 あるウェブサイトで自動再生される動画に激しいストロボ効果が含まれていました。 警告なく再生されたため、発作を起こしかけて非常に危険な状況になりました。
結果的に、一部のユーザーが健康被害を受けるリスクがあり、また発作を恐れてサービスの利用を避けることになります。
具体例:動画コンテンツでの問題
Eさんは光感受性てんかんの既往歴があります。 あるウェブサイトで自動再生される動画に激しいストロボ効果が含まれていました。 警告なく再生されたため、発作を起こしかけて非常に危険な状況になりました。
以下のどちらかを満たしていれば安全と考えられます(難しい計算は不要です)。
安全なアニメーションの例
prefers-reduced-motionメディアクエリを使用してアニメーションを制御する/* 通常時のアニメーション */.animated-element { animation: pulse 0.5s infinite;}
/* モーション軽減を希望するユーザー向け */@media (prefers-reduced-motion: reduce) { .animated-element { animation: none; }}<div class="video-warning" role="alert"> <p>⚠ この動画には激しい光の点滅が含まれています。</p> <p>光感受性発作の既往歴がある方はご注意ください。</p> <button onclick="playVideo()">理解した上で再生する</button></div><video id="video" src="video.mp4" controls></video>ローディングスピナーやプログレスバーで激しい点滅を使用している場合があります。
ゲームのエフェクト(爆発、ヒットエフェクトなど)により閃光を引き起こすことがあります。
// ユーザー設定を確認const reduceFlashing = localStorage.getItem('reduceFlashing') === 'true';
function playExplosionEffect() { if (reduceFlashing) { // 閃光を軽減したエフェクト playGentleExplosion(); } else { // 通常のエフェクト playNormalExplosion(); }}多くのOSには「モーションを減らす」設定があり、CSSで検出できます。
/* 通常のアニメーション */.element { transition: transform 0.3s ease;}
/* モーション軽減時はアニメーションを無効化 */@media (prefers-reduced-motion: reduce) { .element { transition: none; }
/* または、より穏やかなアニメーションに変更 */ .animated { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }}| アニメーションの種類 | 推奨される周期 | 注意点 |
|---|---|---|
| フェードイン・アウト | 1秒以上 | 急激な変化を避ける |
| 点滅(パルス) | 2秒以上 | 完全な消灯を避ける |
| 色の変化 | 1秒以上 | 赤色を避ける |
| スライド・移動 | 制限なし | 点滅は含まない |