2012-03-26 5 views
1

Operaの最新バージョンのWebアプリケーションで、この午後にちょっと立ち往生しました。オペラの空間ナビゲーションフローからアイテムを削除しますか?

通常、それに属性を与えることによって、マークアップのタブインデックスの流れから要素を削除することが可能である:

tabindex="-1" 

これは、誰かがページに来るときことを意味し、彼らの「タブ」キー彼らを打つ開始しますドキュメント内のアンカー/入力を横断しますが、-1を指定した要素は無視されます。

しかし、Operaの空間ナビゲーションフローでは、ユーザーはキーボードからこれらの要素にアクセスすることができます。

他のブラウザでタブキーのドキュメントトラバーサルを使用するのと同じ方法で、Operaの空間ナビゲーションフローから要素を削除する別の方法について知っていますか?

具体的には、アンカーを入力ではなくOpera経由でアクセスできないようにします。

以下のマークアップは基本的な例です。 Opera以外のブラウザでは、タブキーを使ってリストを見ることができますが、tabindex = -1が設定されているため、リンク3,4、および7はスキップされます。 Operaは空間ナビゲーション(Ctrlキー+上/下矢印)を使用して、それはまだあなたはおそらく知っているように、Operaはほとんどのブラウザよりもdifferent type of keyboard navigationを持って

<html> 
    <head> 
     <style> 
      :focus{border: 1px dashed green} 
     </style> 
    </head> 

    <body> 
     <ul> 
      <li><a href="#">Link 1</a></li> 
      <li><a href="#">Link 2</a></li> 
      <li><a href="#" tabindex="-1">Link 3 (tabindex -1)</a></li> 
      <li><a href="#" tabindex="-1">Link 4 (tabindex -1)</a></li> 
      <li><a href="#">Link 5</a></li> 
      <li><a href="#">Link 6</a></li> 
      <li><a href="#" tabindex="-1">Link 7 (tabindex -1)</a></li> 
      <li><a href="#">Link 8</a></li> 
      <li><a href="#">Link 9</a></li> 
     </ul> 
    </body> 
</html> 
+1

なぜキーボードの操作が妨げられますか? – MetalFrog

+1

MetalFrog:あなたに少しの洞察力を与えるために、これはカルーセルの一部を形成するので、キーボードを介してユーザは中央のコンテンツにしかアクセスできないが、一方のパネルは半分オン/画面と部分的にフェードアウト - あなたがする場合は無効になっている - したがって、ビューに持ち込まれていない限りキーボード経由でアクセスするべきではありません(途中でkayboard経由で100%可能です!) – johnkavanagh

+0

ああ、そういう意味になります。 – MetalFrog

答えて

2

私はこれを行う良い方法を見つけることができません。 <a onfocus="document.moveFocusDown()" tabindex="-1">のような醜いハックをすることは可能ですが、ユーザが上がったり下ったりしたいかどうかを判断する良い方法がないので、私はそれをお勧めしません。まあ、あなたはキーアップを聞くことができます。あなたのコードはそのままの状態で、tabindex = " - 1"を守るべきだと言っているバグを報告することをお勧めします。 Operaの側でこれを変更することは意味があります。私はあなたがそれを報告したら、適切な開発者の一般的な方向でバグを蹴ってうれしいです。 (私はOperaでテストとQAを担当しています)。

+0

ありがとうhallvors、これは非常に大きなウェブサイト(週900万人以上の訪問者)ですので、おそらくハックタイプの依存関係を避けるのが最善です。 私はOperaにバグを提出しました.DSK-360057を参照してください。このディスカッションにリンクして、このページの上部に示されているものと同じHTMLを添付しました。 私の間違いではないバグを一度見つけて安心してください! – johnkavanagh

+0

ありがとう、私はそれを適切な人々の注意に持ってきて、それを自分で見守ります。私は迅速な修正を約束することはできません - spatnavはあなたが思うよりはるかに複雑な機能です。 – hallvors

1

...それらのリンクに焦点を当てます。これにより、実際にはキーボードナビゲーションを使用してナビゲートするのが非常に簡単になります。

質問に戻る...それはOpera 10.61 1250(Windows 7)で私のために働いています。以下は私のサンプルページです:

<html> 
<head> 
</head> 
<body> 
<input type="textbox"> 
<input type="textbox" style="display:none"> 
<input type="textbox" tabindex="-1"> 
<input type="textbox"> 
</body> 
</html> 

私がタブを押すと2番目と3番目の入力はスキップされます。

これがあなたとは異なる場合は、コードサンプルを投稿してください。

+0

こんにちは六角形、ご意見ありがとうございます。アポロジオ:私は十分に私の質問では明確ではなかった。私は実際に入力をフォーム化するのではなく、アンカーのトラバースを参照しています。 Operaの空間ナビゲーション(Ctrl +下/上矢印)を使用すると、入力とアンカーをトラバースします(タブキーは他のブラウザやForefix/Chromeなどと同じように) 。 – johnkavanagh

+0

ああ、ic。あなたがタブを要素に言いました。カルーセルに表示された画像をアンカータグから外して、部分的に隠されたカルーセルにあるアンカーにdisplay:noneを設定することは可能でしょうか? – scottheckel

+0

また、部分的に隠されたものを選択することができないか、それとももっとスタイルのものなのでしょうか?しかし、私は巨大なOperaファンであり、これを私の主要なブラウザとして使用しています... Operaをサポートするための多くの作業のようです。 – scottheckel

1

私の解決策は、フォーカスループに含まれてはいけないリンクごとにhref属性をデータとしてキャッシュしてから、リンクが再びフォーカスを受け取れるときにキャッシュデータからhrefを復元することでした。

http://jsfiddle.net/majornista/5pbFz/46/