2016-05-22 2 views
8

に属性:は、私は次の構文を次のスクリプトを使用して、私のページでタブ付きコンテンツセクション設定してい私のタブのマークアップ

<!-- Clickable tab links --> 
<ul class="js-tablist"> 
    <li id="tab1" class="js-tab active"><a href="#tabpanel1">Tab 1</a></li> 
    <li id="tab2" class="js-tab"><a href="#tabpanel2">Tab 2</a></li> 
    <li id="tab3" class="js-tab"><a href="#tabpanel3">Tab 3</a></li> 
</ul> 

<!-- Tab panels --> 
<div id="tab-set" class="js-tabpanel-group"> 
    <section id="tabpanel1" class="js-tabpanel">__CONTENT__</section> 
    <section id="tabpanel2" class="js-tabpanel">__CONTENT__</section> 
    <section id="tabpanel3" class="js-tabpanel">__CONTENT__</section> 
</div> 

を私は様々なARIAのロールを設定します(なぜなら、スクリプトがない場合はタブがないためです)しかし、私はどこで私の 'aria-controls'属性を配置するのかは確信しています。彼らは<li>要素またはその<a>子要素に進む必要がありますか?それとも問題じゃないの?実際、同じ質問がrole="tab"tabindex="0"について聞かれることがあります - これらのことがリスト項目またはアンカーに行くのであれば?

答えて

3

role="tab"を取得する項目にaria-controlsを入れてください。

aria-controlsは、タブとそのパネルの関係を作成するものです。スペックからaria-controlsの説明では第三弾を参照してください:それはすでにブラウザでキーボードフォーカスを受け取ると、実用的なことを準備されるので、https://www.w3.org/TR/wai-aria/states_and_properties#aria-controls

あなたの後続の質問に答えるために、<a href>role="tab"を置きます。つまり、tabindexをまったく使用する必要はありません。

も(あなたがrole="presentation"<li>不活性レンダリング、特に以来)<ul><li>要素とrole="tablist"role="presentation"を投げて考えてみましょう。

また、タブの役割を使用することで、これらのタブはタブ内でタブのように動作することをエキスパートユーザーに伝えています。チェックアウトする価値

追加リソース:

これ以降、スクリーンリーダーでテストして、期待どおりに動作することを確認してください。

2

このデモはscreen reader using tabpanels with ARIAです。 Jawsスクリーンリーダーは、aria-controls属性によって作成された関係に基づいて、タブから対応するタブパネルに移動するためのショートカットを提供します。

このデモでは、好奇心が強い場合はscreen reader using tabpanels without ARIAと表示されます。

タブパネルのセットを作成すると、ウィジェットがキーボードの順序で単一のタブストップを表すようにします。誰かがTabキーを使用してタブのセットに移動すると、フォーカスは現在選択されているタブに移動し、次にTabキーを押すとコンテンツに再びフォーカスが移ります。

これを行うにはroving tabindexを使用できます。現在選択されているタブのみがフォーカス可能である必要があります。他のすべてのタブ(特にそれを表す要素<a>)は、tabindex = " - 1"を設定する必要があります。これにより、それらがキーボードタブシーケンスに含まれなくなります。

誰かが左右の矢印キーを使用してタブを循環することを可能にするスクリプトは、現在選択されているタブを除くすべてがtabindexを-1に設定するように、各タブのtabindex属性の値も更新する必要があります。ここにworking tabpanels demoがあります。

+0

Léonieのデモに感謝します。アクセシビリティのコンテキストでのtabindexの使用は、私にとっては常に謎のビットです。最初にtabindexを使用することをお勧めしましたが、これは推奨されていません(既存のキーボードショートカットとの競合を避けるため)。間違いなく私はもっと調べる必要があります。乾杯。 –

+0

tabindex属性がHTML5で更新されました。物事を恐ろしいものにするためにそれを使用することはまだ可能ですが、それもOKです。この記事はusing the tabindex attributeに役立つかもしれません。 –

+0

スマッシング、ありがとうLéonie。私はすでにpaciellogroup.comのページのブックマークを持っており、コレクションにそのブックマークを追加します。 FWIW、リンクが文字化けしているようです。正しいURLはhttps://www.paciellogroup.com/blog/2014/08/using-the-tabindex-attribute/です(ただし、Stack Overflowのコメントシステムの一部として文字化けが発生した場合はもちろん、私のものは同様に混乱するかもしれません) 。 –

関連する問題