Primary tabs

自由な画面の向き(1.3.4 AA)

26 September 2025

適合レベル

AA

※各レベルについては適合レベルとはをご覧ください


概要

画面を縦向き・横向きのどちらにしても、表示が崩れたり操作できなくなったりしないように実装する。


具体的な実装方法

1.3.4 AA

1. ⭕️良い例

CSSのメディアクエリ(orientation)を用いて、縦向きと横向きの両方のスタイルを定義します。これにより、デバイスの向きに応じてレイアウトが最適化され、利用者はどちらの向きでも快適にコンテンツを閲覧できます。

ポイント

レスポンシブデザインを基本とする

  • コンテンツがどの向きでも適切に表示されるように、柔軟なグリッドレイアウトや可変サイズの画像を使用します。

向きに応じた最適なレイアウトを提供

  • 横向きの場合はナビゲーションを上部に、縦向きの場合は左側に配置するなど、スペースを有効活用したデザインを検討します。

2. ❌悪い例

CSSやJavaScriptによる向きの固定

  • 特定の向きを強制するスタイル(例: transform: rotate(90deg)) やスクリプトを実装している。

向きの変更を促すメッセージの表示

  • 「このサイトは横向きでご覧ください」のようなメッセージを表示し、片方の向きでの利用を強要する。

なぜ問題なのか

これらの実装は、デバイスを回転できない利用者や、特定の向きを好む利用者を排除することになり、アクセシビリティを著しく低下させます。

改善策

向きを固定するコードを削除し、メディアクエリを使用して両方の向きに対応したスタイルシートを提供します。

3. プラットフォーム別の実装

Webページでは、CSSのメディアクエリを使用して、デバイスの向きに応じたスタイルを適用します。

実装例

CSS

/* デフォルトのスタイル */
body {
  font-size: 16px;
}

/* 縦向き (portrait) の場合のスタイル */
@media screen and (orientation: portrait) {
  p {
    font-size: 1.2em; /* 縦長画面では少し文字を大きくする */
  }
}

/* 横向き (landscape) の場合のスタイル */
@media screen and (orientation: landscape) {
  .container {
    display: flex; /* 横長画面ではフレックスボックスを利用してレイアウトを調整 */
  }
}

andを使用して、向きと画面幅など複数の条件を組み合わせることも可能です。

CSS

/* 横向きで、かつ画面幅が767px以下の場合のスタイル */
@media (orientation: landscape) and (max-width: 767px) {
  /* スタイルを記述 */
}

4. 特殊なケースへの対応

コンテンツの性質上、特定の向きが必要不可欠な場合は例外となります。

  • 銀行の小切手(横長のフォーマットが不可欠)
  • ピアノの鍵盤を模したアプリケーション
  • 投影スライドの作成ツール

このような場合でも、なぜその向きが必要なのかを利用者に伝えることが推奨されます。


確認観点

1.3.4 AA

1. 定量的な基準の担保

自動チェックツールでの合格率

  • Lighthouse: Google ChromeのDevToolsに組み込まれているLighthouseは、アクセシビリティの項目を自動でチェックします。 表示の向きを直接的にチェックする機能はありませんが、レスポンシブデザインに関連する問題(ビューポートの設定など)を検出するのに役立ちます。

チェックリストの達成度

2. 定性的な基準の担保

レビュー

  • コードレビューの際に、CSSに画面の回転を固定するような記述(例: screen.orientation.lock())が含まれていないか確認します。
  • メディアクエリが正しく実装され、縦向き・横向き双方のスタイルが定義されているかを確認します。

専門家による監査

  • アクセシビリティ専門家は、実際にスマートフォンやタブレットなどのデバイスを回転させ、レイアウトが崩れたり、情報が失われたりしないかをテストします。
  • 固定されたディスプレイを持つ支援技術(例:車椅子にマウントされたデバイス)のシミュレーションを行い、問題がないかを確認します。

参考文献

> 達成基準 1.3.4: 表示の向きを理解する