Web Accessibility Academy · レッスン

buttonとaria-expandedでアコーディオンを作る

開閉状態を通知するディスクロージャーを作ります。

レッスン 3/413 ステップ

「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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. タブのパターン:tablist、tab、tabpanel
  2. タブ間を矢印キーで移動する
  3. buttonとaria-expandedでアコーディオンを作る
  4. ディスクロージャーとタブ:適切な方を選ぶ
← Web Accessibility Academyに戻る