私は、キーボード操作の多くを必要とするWebアプリケーションを開発しています。IE7がtabindexを持たない要素にtabindex = "0"を追加するのはなぜですか?
私はタブキーナビゲーションの制御を撮影したと私は、次の例のjQueryの選択を持つすべての要素を選択します。
elements = $("div").find("[tabindex]:visible").not("[tabindex='0'], :disabled");
だから私は目に見えない要素、無効になっている要素を選択するか、または0のtabindex属性を持っていません
これはFirefox、Chrome、IE8 +でうまくいきます。残念ながら、このプロジェクトではIE7のサポートが必要です。 IE7は、私たちによって設定されたtabindexを持たない要素にtabindex = "0"を追加するようです。elements
にIE7のtabindex = "0"の要素が含まれています。
IE7がこのように動作する理由を知っている人は誰でも知っています。
これは、ほぼ800
編集含まelements
はIE7を除く他のすべてのブラウザでは300以上の要素が含まれている私たちの最悪のシナリオ、で悪いパフォーマンスヒット原因:私が管理している
をtabindex = "0"の要素をIE7にも含まないセレクタを記述してください。
elements = $("div").find("[tabindex][tabindex!=0][tabindex!=-1]:visible:not(:disabled)");
歴史マイクロソフトの一点でのそのほかのWebとどんながらくたIEで実行さを気にしませんでした「理由」はおそらくありません。実際のtabindex要素と、IE7をサポートしたい場合には、回避策として自分自身を割り当てた要素を区別するために、CSSクラスのようなマーカーを追加する必要があります。 –
そうですね。しかし、私はIE7でも動作するセレクタを書くことができたので、CSSクラス(私たちの最後の退屈なリゾートでした)を追加する必要はありません。 –