APG パターン

アコーディオンパターン

垂直に積み重ねられたセクションヘッダーのセットで、各ヘッダーが対応するコンテンツパネルの表示/非表示を制御します。


キーボード操作

キー動作
Enter / Spaceフォーカスされたアコーディオンヘッダーのパネルを展開/折りたたみ
↓(下矢印)次のアコーディオンヘッダーにフォーカスを移動(最後の場合は最初に戻る)
↑(上矢印)前のアコーディオンヘッダーにフォーカスを移動(最初の場合は最後に移動)
Home最初のアコーディオンヘッダーにフォーカスを移動
End最後のアコーディオンヘッダーにフォーカスを移動

必要な ARIA

ヘッダーボタン
aria-expandedパネルの展開状態(true/false)
aria-controls制御するパネルのID
パネル
role="region"パネルがリージョンであることを示す
aria-labelledby対応するヘッダーボタンのID

ライブデモ

Tabでヘッダーにフォーカスし、でヘッダー間を移動、Enter/Spaceで開閉できます。

ウェブアクセシビリティとは、障害のある人々がウェブを利用できるようにすることです。視覚、聴覚、運動、認知など、あらゆる種類の障害を持つ人々が、ウェブコンテンツを知覚し、理解し、操作し、貢献できるようにします。

よくある間違い

  • ヘッダーに<button>要素ではなく<div>を使用してキーボード操作ができない
  • aria-expandedを動的に更新していない
  • aria-controlsでパネルとの関連付けを省略している
  • 矢印キーによるヘッダー間のナビゲーションが実装されていない
  • パネルにrole="region"とaria-labelledbyを設定していない
アコーディオンヘッダーは<h3>などの見出し要素でラップし、その中に<button>を配置するのが推奨パターンです。

参考リンク