ベスト プラクティスとして、
通常はフォーカス可能だが非アクティブ状態にある要素 (無効になっている入力ボックスやボタンなど) には、負の tabindex (tabindex="-1") を与える必要があります。
アクティブまたは必要なときに、要素にフォーカスを追加し直す必要があります (JS または TS を使用できます)。
正の tabindex は避けてください。非インタラクティブな要素にフォーカスを与えたり、通常のフォーカス順序を乱したりすると、ユーザーが混乱してイライラする可能性があります。状況によっては、フォーカス不可能な要素に tabindex=1 などの正の tabindex を追加する必要があることはほとんどありません。
ユーザーがナビゲーション メニューを回避できるように、スキップ リンクを含める必要があります。
スキップ リンクには、リンクの目的に関するコンテキスト (例: 「メイン コンテンツにスキップ」) を含める必要があり、aria-labelledby、aria-label などの追加の ARIA プロパティを使用できます。
スキップ リンクは、ユーザーがタブで移動するまで (デザインに基づいて) 表示または非表示にすることができます。
ブラウザのデフォルトのフォーカス スタイル (例: "outline: 0" または "outline: none") をオーバーライドしないでください。
カスタム フォーカス スタイルが許可されます。
Possible misuse | Correct use |
---|---|
Render large chunks of non-semantic HTML | Render smaller pieces of semantic HTML |
Not allowing time for dynamic content to be recognized by assistive technology | Using a setTimeout() time delay to allow users to hear the full message |
Applying style attributes for onFocus() dynamically | Use :focus for the related elements in your CSS stylesheet |
Applying inline styles may cause user stylesheets to not be read properly | Keep your styles in CSS files to keep the consistency of the theme |
Creating very large JavaScript files that slow down overall site performance | Use less JavaScript; prefer CSS for animations or sticky navigation for better performance |
ユーザーがページ間を移動するときにもフォーカスを維持する必要があります。
ユーザーがリンクをクリックしてアプリケーション内の別のページに移動するたびに、フォーカスは同じ場所に維持されるか、まったく別の場所に配置される可能性があります。
ユーザーがあるページから別のページに移動するときに推奨されるフォーカスの配置を次に示します。
aria-live アナウンスでメインコンテナに焦点を当てます。
メイン コンテンツにスキップするには、リンクにフォーカスを戻します。
新しいページの最上位の見出しにフォーカスを移動します。
コンポーネントの状態は ARIA 属性を使用して管理する必要があります (例: aria-expanded 属性を使用して、ドロップダウン メニューまたはリストが展開されているか折りたたまれているかをユーザーに伝えます)。
ARIA 属性を適用するときは選択することが重要です。ユーザー フローを徹底的に検討して、どのような重要な情報をユーザーに伝える必要があるかを理解します。
ページ上でコンテンツが動的に追加または更新された場合 (警告メッセージやテキストの変更など)、ユーザーに通知する必要があります。
使用した方が良い
(続き...)
以上がアクセシビリティ (a) ルール - 2の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。