prefers-reduced-motionを考慮したアニメーションの作り方【アクセシビリティ対応】

アニメーションはWebサイトに視覚的な魅力を与えますが、過度な動きは一部のユーザーにとって不快感や体調不良を引き起こすことがあります。特に、動きに敏感なユーザーのためには、OSの設定「prefers-reduced-motion」を考慮した実装が重要です。この記事では、CSS・JavaScriptでの対応方法と実装例を紹介します。
目次
prefers-reduced-motionとは?
prefers-reduced-motion
は、ユーザーがデバイスやOSの設定で「アニメーションを減らす」オプションを選択しているかを判定するメディアクエリです。
例:CSSでの基本的な使い方
@media (prefers-reduced-motion: reduce) {
* {
animation: none !important;
transition: none !important;
scroll-behavior: auto !important;
}
}
このコードは、アニメーションやスムーズスクロールを無効化します。
CSSでのアニメーション制御
通常のアニメーションを prefers-reduced-motion
に応じて切り替えるには、以下のように記述します。
例:フェードインアニメーションの分岐
.element {
opacity: 0;
animation: fadeIn 1s ease-out forwards;
}
@keyframes fadeIn {
to {
opacity: 1;
}
}
/* アニメーションを無効にする場合 */
@media (prefers-reduced-motion: reduce) {
.element {
animation: none;
opacity: 1;
}
}
JavaScriptでの対応方法
CSSだけでは制御できないアニメーションやJSライブラリを使用している場合は、JavaScriptでも対応が可能です。
例:アニメーションをスキップする条件分岐
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
if (!prefersReducedMotion) {
document.querySelector('.box').animate([
{ transform: 'translateX(0)' },
{ transform: 'translateX(100px)' }
], {
duration: 500,
fill: 'forwards'
});
}
このように、条件分岐でアニメーションの実行を制御できます。
ライブラリの対応状況と対策
多くのアニメーションライブラリ(GSAPやAOSなど)も prefers-reduced-motion
を考慮できます。
AOS(Animate On Scroll)の例
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
AOS.init({ disable: true });
} else {
AOS.init();
}
実装チェックリスト(詳細版)
- CSSアニメーションの制御
@media (prefers-reduced-motion: reduce)
を使って、アニメーション・トランジション・スムーズスクロールを無効化しているか- 重要な要素には
animation: none
とopacity: 1
などで静的状態を明示しているか
- JavaScriptアニメーションの分岐
window.matchMedia('(prefers-reduced-motion: reduce)')
を使ってアニメーションを条件分岐しているか- Web Animations API や setInterval / requestAnimationFrame を使った演出に適用しているか
- スクロールアニメーション対応
- CSSで
scroll-behavior: auto
を適用してスムーズスクロールを無効化しているか - JavaScriptライブラリ(e.g.
scrollIntoView({ behavior: 'smooth' })
)の使用箇所も条件分岐しているか
- CSSで
- アニメーションライブラリの設定
- AOS, GSAP, Anime.js などのライブラリに
disable
オプションや条件付き初期化を実装しているか - 外部ライブラリが
prefers-reduced-motion
に対応していない場合は代替策を検討しているか
- AOS, GSAP, Anime.js などのライブラリに
まとめ:すべてのユーザーにやさしいアニメーションを
アニメーションは魅力的な演出の一つですが、ユーザーによっては不要・不快になることもあります。prefers-reduced-motion
を用いた実装により、より多くの人が快適に使えるサイトづくりを目指しましょう。ちょっとした対応が、Webアクセシビリティの大きな一歩になります。り、より多くの人が快適に使えるサイトづくりを目指しましょう。ちょっとした対応が、Webアクセシビリティの大きな一歩になります。

Contact
ウェブサイトの制作や運用に関わる
お悩みやご相談
お気軽にお問い合わせ下さい
ウェブサイトと一口に言っても、企業サイトやECサイト、ブログ、SNSなど、その“カタチ”は目的に応じてさまざまであり、構築方法や使用する技術も大きく異なります。株式会社コナックスでは、お客様のご要望やブランドの個性を丁寧に汲み取り、最適なウェブサイトの“カタチ”をご提案いたします。
デザイン、ユーザビリティ、SEO対策はもちろん、コンテンツ制作やマーケティング戦略に至るまで、あらゆるフェーズでお客様のビジネスに寄り添い、成果につながるウェブサイトづくりをサポートいたします。私たちは、ウェブサイトの公開をゴールではなくスタートと捉え、お客様のビジネスの成功に向けて共に伴走してまいります。