buttonとaria-expandedでアコーディオンを作る
開閉状態を通知するディスクロージャーを作ります。
「buttonとaria-expandedでアコーディオンを作る」はCoddyKit上の無料Web Accessibility Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはWeb Accessibility Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Web Accessibility Academyコースには全4レッスンが含まれています。
アコーディオンの動作
アコーディオンは、見出しを展開・折りたたみしてコンテンツを表示する構造です。タブとは異なり、各セクションを個別に開けます。
ヘッダーはボタンにする
すべてのアコーディオンのヘッダーを実際のボタンにしてください。ボタンはフォーカス可能で、EnterとSpaceで操作でき、スクリーンリーダーにも自動的に通知されます。
<button>Shipping details</button>divのヘッダーでは不十分
クリック可能なdivをヘッダーにする場合は注意してください。divはフォーカスできず、キーボード操作にも反応せず、その役割も支援技術に伝わりません。
<div onclick="toggle()">Shipping details</div>aria-expandedが鍵になる
ボタンにaria-expandedを追加すると、スクリーンリーダーが折りたたまれているか展開されているかを読み上げます。この1つの状態が、アコーディオンをアクセシブルにします。
<button aria-expanded="false">Shipping details</button>クリック時に状態を切り替える
ユーザーがボタンを操作したら、aria-expandedをtrueとfalseの間で切り替えます。パネルが実際に表示されているかどうかと、常に同期させてください。
btn.setAttribute("aria-expanded", String(open));リージョンを指定する
ボタンにaria-controlsを使い、開くパネルのidを設定します。ユーザーは、このヘッダーでどのコンテンツが表示されるのかを把握できます。
<button aria-controls="sec1" aria-expanded="false">More</button>折りたたんだパネルを隠す
セクションを閉じるときは、パネルにhidden属性を付けます。再び開くまで、ページとアクセシビリティツリーの両方から除外されます。
<div id="sec1" hidden>Panel content</div>ヘッダーを実際の見出しで囲む
各ボタンをh3のような実際の見出しの中に配置します。スクリーンリーダー利用者は、見出しナビゲーションを使ってセクション間を移動できるようになります。
<h3><button aria-expanded="false">FAQ</button></h3>単独のディスクロージャーにARIAは不要
単独の表示・非表示機能はタブセットではなくディスクロージャーです。必要なのはaria-expandedを持つボタンだけで、tablistやtabのロールは一切必要ありません。
ボタンにフォーカスを残す
切り替えた後も、ユーザーが押したボタンにフォーカスを残します。パネルへフォーカスを勝手に移さないでください。キーボード利用者を驚かせることになります。
aria-expandedが優れている理由
ボタン自体が状態を持つため、スクリーンリーダーは毎回、展開または折りたたみと読み上げます。ユーザーは、操作すると何が起きるのかを常に把握できます。
簡単な確認
セクションを開閉するアコーディオンのヘッダーを作っています。その状態をアクセシブルにする属性はどれでしょうか。
まとめ:アクセシブルなアコーディオン
アコーディオンのヘッダーは、見出しで囲んだaria-expanded付きのボタンであることを学びました。状態を切り替え、パネルを指定し、閉じたときはパネルを隠します。
AI チューターと学ぶ HTML — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「buttonとaria-expandedでアコーディオンを作る」レッスンは無料ですか?
はい。「buttonとaria-expandedでアコーディオンを作る」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Web Accessibility Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Web Accessibility Academyコースには全4レッスンが含まれています。
「buttonとaria-expandedでアコーディオンを作る」で何を学びますか?
開閉状態を通知するディスクロージャーを作ります。 ブラウザで直接実行するハンズオンコードでWeb Accessibility Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Web Accessibility Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのWeb Accessibility Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「buttonとaria-expandedでアコーディオンを作る」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このWeb Accessibility Academyレッスンでコードを書いて実行できますか?
はい。すべてのWeb Accessibility Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- タブのパターン:tablist、tab、tabpanel
- タブ間を矢印キーで移動する
- buttonとaria-expandedでアコーディオンを作る
- ディスクロージャーとタブ:適切な方を選ぶ