ホームページ >ウェブフロントエンド >jsチュートリアル >集中することを学ぶ()
ツールでテストすることはほとんど不可能です。だから私は今日いくつかの簡単な例をあなたに連れて行きたいです。
これを行うことにより、ブラウザに、標準、予想、または相互運用可能なことを避けるようにブラウザに伝えています。リンクを
event<span>.preventDefault();</span>リンクに触れていると言っています。実際、リンクが実際にユーザーをページフラグメントに正しく使用することを確認する唯一の方法は、JavaScriptをオフにすることです。さて、
ページフラグメントにリンクするだけで、JavaScriptをオフにするように - ブラウザは本質的にこのフラグメントに焦点を合わせます。これは、スクリーンリーダーの出力とキーボードインタラクションが現在基づいている場所です。 Scrolltopをアニメーション化することにより、そのようなフォーカスアクションは行われません。つまり、画面リーダーの出力とキーボードのインタラクションは、もはや視界にないページの領域から続きます。これは良くありません。
治療法 JavaScriptを介して宛先フラグメントに焦点を合わせる必要があります。まず、Fragmentをプログラム的に焦点を当てる必要があります。これには、Tabindex属性の使用が必要です。 -1のTabindex値は、スクリプトが要素に焦点を合わせることができるが、ユーザーではないことを意味する特別な値です。これはTabindexよりも望ましいです:0この場合、この非対話要素がTABキーを使用して焦点を合わせる必要がある理由がないためです。
最後に、フラグメントにリンクするだけで起こるように、URLにサブページの場所を記録することをお勧めします(例:http:// my-site/#section1)。これにより、特定のセクションへのリンクとしてアドレスをコピーできます(つまり、「深いリンク」ができます)。 Focus()が行われた後の次の行を含めます: もちろん、「セクション1」は、対応するリンクのHREFが何であれ、#。
を除いて変数に置き換えます。<span><span><span><section</span> id<span>="section1"</span> tabindex<span>="-1"</span>></span> </span> ... <span><span><span></section</span>></span></span>
結果 小さなCodepenデモを以下に埋め込みます。習慣的なキーボードユーザーがそうするように、タブとシフトタブでそれを使用してみてください。
CodepenのSitePoint(@SitePoint)のペンIDXJLを参照してくださいJavaScriptでTabindex属性をその場で追加していることに注意してください。スクロールしているセクション(フラグメント)に焦点を合わせているので、知覚された場所は単なる視覚以上のものです。つまり、新しいセクションに移動した後にTABキーを押した場合、そのセクション内の次の焦点の要素に焦点を合わせます。次の例では、「heydonworks.com」というハイパーリンクの読み取り
event<span>.preventDefault();</span>セクション1に焦点を合わせていなかった場合、タブキーを押すと、扇動リンクに続いて次の要素に焦点を合わせて、ビューポートをナビゲーションブロックに戻します。言い換えれば、キーボードユーザーは正方形に戻ります。
閉じるダイアログ(モーダルウィンドウ)
<span><span><span><section</span> id<span>="section1"</span> tabindex<span>="-1"</span>></span> </span> ... <span><span><span></section</span>></span></span>
問題は、「ダイアログが閉じたときに何が焦点を合わせるのか」ということです。何もしないと、新しく隠されたダイアログは必ずしも焦点を失いますが、その代わりに何も得られません。多くのユーザーエージェントでは、これはがデフォルトに焦点を合わせていることを意味し、ユーザーがドキュメントを歩き回って再び自分の場所を見つけることを意味します。
ダイアログを開いた要素を再び焦点を合わせる方が論理的です。これは、メモリにDOMノードを保存するだけで、このように後で使用するためにマーカーを書くことで簡単に行うことができます。 ダイアログのclose()メソッドの最後に、元の要素に焦点を合わせるだけです。
ほとんどのスクリーンリーダーは、ボタンがリモーシングされているため、ページのタイトル、フォーカスボタンを発表します。そうすれば、あなたはあなたがどこにいるかを知っています。この方法を使用したダイアログの例は、必要に応じてテストに利用できます。<span>document.getElementById('section1').focus();</span>結論
進行性の強化とアクセシビリティを混同することはよくある間違いです。 JavaScriptの操作に何かを劣化させることを確認することは、(この場合のように)オフになっていることを意味します。確かに、JavaScriptのない人がアクセスしやすくなりますが、ほとんどのキーボードとスクリーンリーダーのユーザーは、他の人と同じようにJavaScriptの助けを借りてアプリケーションと対話します。秘trickは、すべてのユーザーの異なる動作と入力、および使用する支援技術を尊重する方法でJavaScriptを使用することです。もう1つ:Ember.jsまたはAngularjsで構築された1ページのアプリケーションでの作業を担当した場合、JavaScriptフォーカス()メソッドのコードベースをグレップします。このようなアプリケーションは、「ビュー」を使用してナビゲーションを完全に書き直します。単数ページの動的な再構築。慎重なフォーカス管理がなければ、そのような方法でDOMを再構築することは、アクセシビリティをかなり迅速に台無しにする義務があります。グレップが数杯未満のインスタンスを見つけた場合、やるべきことがたくさんあるかもしれません。
焦点と集中の改善に関するよくある質問
睡眠は焦点と集中力にどのように影響しますか?睡眠不足は、注意、焦点、意思決定スキルを損なう可能性があります。したがって、十分な質の高い睡眠を取得することは、焦点と集中力を維持するために不可欠です。
脳をより良く訓練するにはどうすればよいですか?
以上が集中することを学ぶ()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。