2016-08-13 9 views
0

CSSの場合、<label /><input type="radio" />の組み合わせは祝福です。コマンドライン要素は、JavaScriptを必要とせずにDOMを使用して戻ることができ、あらゆる種類の有用なアプリケーションがあります。例:ラベルとラジオボタンをCSSを適切なHTMLにフックとして使用していますか?

<style> 
#wrapper {width:300px; height:200px; text-align:center;} 
.slide {position:relative; width:300px; height:200px; line-height:200px; border:1px solid black; font-size:3em; color:crimson;} 
input {display:none;} 
input[name="ito"] + .slide {display:none;} 
input[name="ito"]:checked + .slide {display:block;} 
.slide label {position:absolute; top:0; color:black;} 
.slide label:first-of-type {left:0;} 
.slide label:last-of-type {right:0;} 
#is:checked ~ [for="is"], #this:checked ~ [for="this"], #ok:checked ~ [for="ok"] {color:crimson;} 
</style> 

<div id="wrapper"> 
    <input name="ito" type="radio" id="is" checked> 
    <div class="slide">IS 
    <label for="ok">«</label><label for="this">»</label> 
    </div> 
    <input name="ito" type="radio" id="this"> 
    <div class="slide">THIS 
    <label for="is">«</label><label for="ok">»</label> 
    </div> 
    <input name="ito" type="radio" id="ok"> 
    <div class="slide">OK? 
    <label for="this">«</label><label for="is">»</label> 
    </div> 
    <label for="is">1</label><label for="this">2</label><label for="ok">3</label> 
</div> 

https://jsfiddle.net/v6eeqxog/

コードがhttps://html5.validator.nuあたりとして技術的に有効ですが、どのように適切にそれが使用されていますか?

私は、コードに明らかなレベルの混乱がありますが、それを超えています - アクセシビリティやその他の懸念事項のためにこれは大丈夫ですか?

+0

私は、これは、特定の動作を得るために使用されるもの、「ブラウザハック」の一部だと思います。多くのハッキングがありますが、間違っていない、コードをコンパイルする道徳はありません。それはうまくいくか、そうではない。それがブラウザを越えて動作しない限り、私はそれに何の問題も見ません。 –

答えて

1

これはキーボードでアクセスできないようです。ラジオボタン(Tabキーを使用)をフォーカスして「スライド」(矢印キー)を切り替えることはできません。このCSSがなくてもラジオボタンをフォーカスすることができます。

参照WCAG 2.0ガイドライン2.1:Keyboard Accessible: Make all functionality available from a keyboard.

+0

おかげさまで、ありがとう。しかし、js/jqueryの対応についてはどうでしょうか、あなたがこの問題を解決するかどうかを知っていますか? –

関連する問題