このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

ARIA: tabpanel ロール

ARIA tabpanel は、tab に関連付けられた階層化されたコンテンツのリソースのコンテナーです。

説明

tabpanel ロールは、要素が tab ロールに関連付けられたリソースのコンテナーであることを示します。各 tabtablist に含まれています。

tabpanel はタブインターフェイスの一部であり、視覚的なタブのグループによって複数の階層化されたビュー間を素早く切り替えることができる一般的なユーザー体験パターンです。各タブは tab ロールで定義され、これらのタブは tablist ロールを持つ要素内に含まれます。tablist は通常、コンテンツ領域の上側または横側に視覚的に配置され、関連する tabpanel を含んでいます。tabpanel は、タブインターフェイスの tablist 内の対応する tab に関連付けられた各コンテンツペインのコンテナーのロールです。

多くのタブインターフェイスでは、一度に単一の tabpanel のみが表示されます。ただし、一部のインターフェイスでは複数のタブパネルを同時に表示する必要がある場合があります。このような場合、tablist には aria-multiselectable 属性が提供され、tab 要素は aria-expanded 属性を使用して、関連する tabpanel が表示されているかどうかを示します。タブの選択状態は、どのタブパネルが現在の「アクティブな」パネルであるかを示すために使用されます。例えば、これは複数選択可能な tablist 内のタブにフォーカスがある時に Tab キーを押した場合に、キーボードフォーカスがどのタブパネルに移動するかを示すことができます。

単一選択タブインターフェイスでは、現在選択されているタブに関連付けられた tabpanel のみが表示されます。選択されていないタブに関連付けられた他の全ての tabpanel 要素は、ユーザーから隠されている必要があります。そのため、タブの選択が変更されると、表示されるタブパネルも変更され、以前に表示されていたタブパネルは隠されるようになります。

複数選択タブインターフェイスでは、関連する tab 要素の展開状態に合わせて、複数の tabpanel 要素が表示される場合があります。

タブは個々のパネルへのアンカーリンクとして機能しません。アクティブ化されると、キーボードフォーカスは現在の tab 要素にとどまり、新しく表示された tabpanel に自動的に移動することはありません。タブインターフェイスが、関連するコンテンツセクションを指すページ内ハイパーリンクの基本マークアップパターンに基づいて段階的に拡張される場合があります。JavaScript を使用してこれらの要素をタブ付きインターフェイスに変更する場合、ハイパーリンクのデフォルト動作を防ぐ必要があります。理想的には、これは href 属性を削除または変更することで実現できます。これにより、要素のブラウザーコンテキストメニューからハイパーリンク固有のメニュー項目を削除するという追加の利点もあります。

キーボードフォーカスが tablist または tablist 内の tab にある場合、Tab キーは、フォーカスされているタブ(これは選択されているタブである場合もそうでない場合もあります)から、現在選択されているタブを表す tabpanel に移動するようにプログラムする必要があります。

tablist 内の各 tab は、対応する tabpanel のラベルとして機能できます。各 tabid を、各 tabpanelaria-labelledby 属性の値として含めてください。

また、オプションで、tabpanelidtabaria-controls 属性の値として含めることで、各 tabpanel を関連する tab に関連付けることもできます。

タブ付きインターフェイスが初期化されると、1 つの tabpanel が表示され、関連する tab はアクティブであることを示すようにスタイルが設定され、そのプログラム的な状態を反映します。すべての非アクティブな tabpanel 要素は、すべてのユーザーから隠されている必要があります。これは最も一般的には CSS の display: none を使用して実現されます。

このロールの使用に関する詳細な情報については、 ARIA tab ロール の記事を参照してください。

tabpanel がページのキーボードフォーカス順序に含まれることなくフォーカスを受け取れるようにするために、 tabindex="-1" を含めてください。

キーボードユーザーがフォーカスの変更を認識し、現在フォーカスされているコンテンツを認識できるように、tabpanel がフォーカスを受け取った時のスタイルを定義してください。CSS の :focus 疑似クラスを使用するのが最適です。

このタブパターンを使用してカルーセルを作成できます。スライドピッカーコントロールは tablist 内の tabs としてマークアップでき、スライドは tabpanel 要素で表現されます。

関連するロールと属性

tab ロール

関連する tabpanel の表示を制御します

tablist ロール

tab 要素のグループです。

aria-labelledby

アクセシブル名を提供します。パネルを制御する tab 要素を参照します

aria-expanded

複数選択可能な tablist が使用される場合、必要な tab 要素で使用する必要があります。

キーボードインタラクション

tablist ロール定義の tablist キーボードインタラクション を参照してください。

tab ロール定義の tabpaneltabtablist の例 を参照してください。

仕様書

Specification
Accessible Rich Internet Applications (WAI-ARIA)
# tabpanel
Unknown specification

関連情報