ここはちょっと見せられない

ぜったいぜったい見せられない

bxslider で現在表示されているスライドにのみtabでフォーカスが当たるようにする

レスポンシブ対応のスライダーも増えてきたのだけれど、アクセシビリティに対応しているかどうか、という目で見ると手っ取り早く導入できるスライダーは限られてくるみたい。

キャレットブラウズモードで確認すると、スライドショーのボタンにカーソルが飛ばなかったり、そもそも全部orナッシング的なカーソルの飛び方になったりする。アクセシビリティに配慮したjqueryのモジュール探すのもなかなか厄介な話だと思いながらbxsliderを使うことにした。

要望には、「非表示の要素にカーソルが飛ばないこと」というものが含まれたので、それを実現させてみた。

幸い、使えるオプションが多くて助かった。

$(document).ready(function(){
    var myslider = $('.bxslider').bxSlider({
    onSliderLoad: function(currentIndex){
      $('.bxslider>li').find("a").attr( "tabindex", "-1" );
      $('.bxslider>li').eq(1).find("a").attr('tabindex', "0");
    },
    onSlideAfter: function(slideElement, oldIndex, newIndex){
      $('.bxslider>li').find("a").attr('tabindex', "-1");
      $('.bxslider>li').eq(newIndex+1).find("a").attr('tabindex', "0");
    }
  });
});

渡ってくるIndexの値が一個ずれてるんだよね。それでそこそこ悩んでしまった。しょうがないから、+1してあるのカッコ悪。

参考にしたのはこれ。 bxSlider Accessibility