ここでの目標は、検索後のクエリの結果に焦点を絞ることです。 これは、私たちのウェブサイトにアクセス可能にし、その結果をスクリーンリーダーで読み取るようにするためです。.focus()を使用してスパンタグにフォーカスを設定
結果は以下の構造を有する:
<div class="result-container">
<p>
<span class="selected-solution" tabindex="-1" aria-live="polite">
Text to be read
</span>
<button type="button" title="Delete selected solution">
<span class="icon icon-close" aria-hidden="true"></span>
<span class="sr-only">Delete selected solution</span>
</button>
</p>
</div>
私はjqueryのを使用して、クラス「選択・ソリューション」をスパンにフォーカスを設定します。 「結果-コンテナは」(結果なしの場合、または内部エラー)の結果、他のタイプを含めることができるため、私は一般的な解決策を使用します。
$selector.find(':focusable').first().focus();
をしかし、このソリューションは、私の以前のスパンに注力することができません... 私のスパンをdivで置き換えると問題なく動作しますが、これは良い解決策ではありません(次の行にボタンを置く)。
ローカルでウェブサイトを実行しているときにこのコマンドを試すと、私は自分のスパンを選択します。
スパンに集中できない理由はありますか?
ありがとうございました!
編集:
さらにテストした後、スパンを使用するときにjQueryのコード)が関連付けられているジャスミンテストは.toBeFocused基準(で失敗スパンしかしで動作しているようです。
まだまだ奇妙なことですが、もう1つは探検してください。
私は同じ問題を抱えていました(これは、アクセシビリティをサポートし、スクリーンリーダーのためにスパンに焦点を合わせる必要もあったためです)。私の修正はtabindex = 0でした。 <スパンクラス= "選択-ソリューション" でtabindex = "0" ARIA-ライブ= "礼儀正しい"> テキストが を読み取ることが私のためにこの許可の焦点。しかし、私はアクセシビリティサポートをかなり新しくしているので、このtabindex = 0はアクセシビリティに干渉しますか? –
この要素の順序は混乱しません。しかし、それは注目に値する。 キーボードでページを通過しているユーザーは、それにつまずくでしょう。あなたが望んでいなければ問題になるかもしれません。 私のケースでは、問題はジャスミンテストだけで、コードはページ上でうまくいきました。あなたはこの時間のテストを忘れて、tabindex = -1を使うことができますか? – Acedrin