現在、Twitter Bootstrap を使用していますが、モーダルのタブインデックスで奇妙な問題が発生しています。
モーダル内のフォーム要素をタブで移動しようとしていますが、最後のボタンの後、閉じるボタンに戻る前にフォーカスが消えました。どの要素がフォーカスされているかをログに記録する行をコンソールに追加しましたtabindex="-1"
。
コードを共有することはできませんが、Bootstrap のドキュメントをざっと見てみると、サンプル モーダルでも発生することがわかりました。問題は再現可能です:
- http://getbootstrap.com/2.3.2/javascript.html#modals にアクセスしてください
- デモ モーダルを開きます ([デモ モーダルの起動] ボタン)。
- フィールドをタブで移動します。「変更を保存」後、閉じるボタンに戻る前にフォーカスが失われます。
これをコンソールに配置すると、モーダル (または実際には を持つ任意の要素tabindex="-1"
) がフォーカスを得るたびにログに記録されます。
$('[tabindex="-1"]').focus(function(){
console.log('Focus is on an element with negative tabindex')
});
(明らかにモーダルをクリックするとログに記録されますが、それは範囲外です)。
なぜこれが起こるのですか?どうすればこれを防ぐことができますか? これはブラウザのバグなのか、Twitter Bootstrap のバグ/機能なのか、それともまったく別のものなのか?