- 締切済み
タブ順について
ブラウザ上でのタブの動きについて質問です。 JSPを使って開発していて、タブ順は<BODY tabindex = -1>以外何も 設定していません。 タブキーで移動していくと、上から順にきちんと動くのですが、 一番最後まできて、最初に戻る前に1回どこかにカーソルがいなくなってしまいます。 1番最後にカーソルがある状態でタブキーを押すとカーソルがいなくなってしまい、もう1度押すと一番上に戻ります。 最後にある状態でタブキーを押したら一番上に戻るようにしたいのですが、何が原因かわかりません。 ご存知の方、教えてください。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- asahina02
- ベストアンサー率47% (95/202)
ブラウザのアドレスバーにフォーカスしてるってことはないですか? また、Shift+TABで移動した場合に最初のとこからどこへ行きますか? アドレスバーにフォーカスしちゃってる場合にそれを避けるには・・・ 最初と最後のとこでTABキーイベントを取得して意図的に別のとこに飛ばすようにすればいけるかと思います。 ※以下参考コード <html> <script> <!-- function tab_jump( shift, code ) { if( code == 9 ) { //TAB if( shift ) { document.getElementById( "last_tab" ).focus(); } else { document.getElementById( "first_tab" ).focus(); } return( false ); } return( true ); } //--> </script> <body tabindex="-1"> <a href="xx" id="first_tab">11</a> <a href="xx">22</a> <a href="xx" id="last_tab">33</a> <a href="xx" onkeydown="return( tab_jump( event.shiftKey, event.keyCode ) );">44</a> </body> </html>
補足
モーダル表示しているのでアドレスバーは表示されていないのですが そこにタブ移動してしまってる気がします。 画面の最後がリストで行が可変なので、最初と最後でイベントを 使うというのはできれば避けたいのですが...。