2013-04-23 15 views
6

このスニペットにアクセスするにはどうすればよいですか?cssとhtmlのみを使用した隠しコンテンツのキーボードアクセシビリティ

<div tabindex="0"> 
    Show More 
    <ul> 
     <li><a href="#">Hidden Content</a></li> 
     <li><a href="#">Hidden Content</a></li> 
     <li><a href="#">Hidden Content</a></li> 
    </ul> 
</div> 

CSS:

div > ul 
    {display:none;} 
div:hover > ul, div:focus > ul 
    {display:block;} 

上のCSSプロパティを変更し、その内容

http://jsfiddle.net/pJs2U/

+0

いいえ、 'tabindex'の最小値は' 0'です。また、私は遠ざかりません。私は集中した木のままです。私は ':focus'が':hover'のように働いていたと考えました。':focus'がターゲットとターゲット上でのみ有効になります –

+1

デフォルトではすべてのリンクはtabindex = 0です –

答えて

3

アップデート2015JayMee @おかげで、):現在(2015年5月29日)Editor’s Draftはもうこの構文/機能を含んでいないjQueryのでは、それは次のようになります。 (最新のワーキングドラフトstill doesが、it’s from 2013-05-02。)将来のために


Working Draft of Selectors Level 4でセレクタのspecify the subjectへの道があり(それぞれがin the Editor’s Draft。)。

私はブラウザがそれを実装するとき(と構文が変更されない場合)、以下は動作するはず推測:

!div a:focus 
    {display:block;} 

それは集中aを持ってdiv要素を(セレクタで!に気づく)を選択子としての要素。


For JQuery, there is a polyfill(それは!が接尾辞ではなく、接頭辞として使用された古い構文を使用しています)。

+0

ありがとう、面白い:) –

+1

これは、残念ながら今削除されました。 http://css4-selectors.com/selector/css4/subject-of-selector-with-child-combinator/ –

+1

@JayMee:更新をありがとう!私は答えにメモを付け加えました。 – unor

1

を中心にキーボードナビゲーション とも見える<ul>を行うことが可能であるならば、私は疑問に思います<ul>子要素にフォーカスがあるときはHTMLとCSSだけではできません。

親セレクタが必要ですが、CSS3は親セレクタfor performance reasonsをサポートしていません。

注::javascriptソリューションを検討するとよいでしょう。大多数のスクリーンリーダーユーザーhave javascript enabled

$('a').on('focus blur', function(e) { 
    $(this).parents('ul').toggle(); 
}); 
+1

CSS(それをサポートしています)(http://www.w3.org/TR/selectors4/#subject)(作業中のドラフト)ですが、ユーザーエージェントはおそらくそうではありません。 – unor

+1

ありがとうございました。@unor、レベル3のセレクタを反映するように答えを更新しました。 – ckundo

0

JavaScriptのソリューションが最適です。あなたは子供を表示する親の焦点に依存することはできません。フォーカスを移動するとすぐに、これは崩壊します。

親からクラスを追加したり削除したりすると、より多くの制御が可能になります。 Dirk Ginaderがアクセシビリティの第5層としてこれを話しました。http://www.slideshare.net/ginader/the-5-layers-of-web-accessibility

関連する問題