はじめに
「政府システムの設計」の一環として、障害者のためのサイトアクセシビリティのチェックリスト(あらゆる種類の開発者)を作成しました。これらのチェックリストは、各デザイナーとフロントエンドのデスクトップに登録する必要があります。 (州のプロジェクトだけでなく)すべてのプロジェクトに適しています;余分なものは何もありません。 非常に重要、重要かつ有用な情報のみが含まれています。
印刷して読んで同僚と共有しましょう。
これは重要なテキストと知識です。
![ぼかしフィルターを使用してPhotoshopで処理されたテキスト](https://habrastorage.org/getpro/habr/post_images/857/e86/88a/857e8688afeb91dbba732ae08171c071.png)
サイトのアクセシビリティ要件は、レベルAAのWCAG標準によって決定されます。 この規格は、すべての要件を十分詳細に説明し、説明へのリンク、使用されている手法、および一般的なエラーを含んでいます。 これにより、Webページのアクセシビリティとその適応を分析する際に、完全にこれに依存できます。 さらに、半自動エラー検出用の大きなツールボックスがあります。それは、ブラウザ用のバリデータとアドオンです。
このドキュメントは、標準の適用に関する実用的な推奨事項を提供し、サイトのアクセシビリティをチェックするツールとプロセスを説明し、主要な資料へのリンクとサイトのアクセシビリティに関するガイド、および最も一般的なウィジェットの実装例を提供します。
WCAG 2.0レベルAAは、さまざまなカテゴリのユーザーのアクセシビリティ基準を説明しています。 実際には、基準への良好なレベルのコンプライアンスを維持するために、テスターが次のカテゴリのユーザーの代わりに自己紹介する(またはテストに参加する)と便利です。
- さまざまなタイプの色覚異常(色覚異常)に苦しんでいます。 情報を示したり提供するために色が使用される場合、代替の視覚的手段が提供されるべきです。
- 視覚障害者。 コントラスト、要素のサイズ、およびページのスケーリングのサポートの要件が課されます。
ブラインド(完全にブラインド-スクリーンリーダーユーザー)。 以下を含む幅広い対策が必要です。
- 関連するすべての非テキスト要素にテキストの代替を提供し、
- セマンティックレイアウトの提供、
- セマンティックエリア、ヘッダー、その他のナビゲーション要素の適切な使用、
- ページ上の追加のナビゲーションツールの提供、
- ページ上の要素とそれらの関係に関する追加のメタ情報を提供し、
- テキストラベルの必須規定、および必要に応じて入力要素のヒント、
- コンテンツの知覚の特徴を考慮に入れる:それは耳によって知覚されます。 連続して、ページ全体を外観全体でカバーする機能なし、ページの別の領域の情報に気付く機能なし(適切に接続されていない場合)、テキストの感覚特性を知覚せずに、
- 一連の属性(ロール、アリア*など)を使用したコントロールまたは入力との対話の実装。
- 聴覚障害のあるユーザー。 オーディオコンテンツの代替テキストの必須提供が必要です。
- 筋骨格系に違反しているユーザー。マウスを使用できなくなる可能性があります。 キーボードの完全な制御性とサイトのアクセシビリティが必要です。
開発のすべての参加者(デザイナー、開発者、プロジェクトマネージャー、テスター、エディター)は、各アクセシビリティスペシャリストの主な責任を説明する簡単なチェックリストも見つけることができます。
こちらもご覧ください:
設計
情報やマークアップを提供する唯一の方法は色ではありません。
WCAG 2.0に従ってコントラストを維持する必要があります。
WAVE評価ツールを使用してHTMLのコントラストを測定できます
感覚特性に依存しないでください。
この要件については、基準1.3.3の説明で詳しく説明します。
フィールドとコントロールのフォーカス状態を視覚的に表示する必要があります。
- 原則的にアクセス可能にできない情報については、代替形式のプレゼンテーションを提供するか、これが不可能な場合でも、インターフェイスの機能のテキスト説明を提供する必要があります(たとえば、目の不自由なユーザーがページの機能を理解し、目が見える人に助けを求めることができるように)。
アクセシビリティガイドラインもご覧ください。 デザイナーのためのチェクリスト 。
検証ツール
バリデーターは、一般的なHTMLの妥当性についてサイトをチェックします: https : //validator.w3.org/
専用のバリデーターでサイトを確認する:
- HTMLコード分析に基づくhttp://achecker.ca/checker/バリデーター。 JavaScriptは考慮されません。エラーはテキスト形式で表示され、分析にはあまり便利ではありません。 潜在的な問題のリストを提供しますが、そのほとんどは真実ではありませんが、追加のチェックリストとして使用できます。
http://wave.webaim.org/およびChrome WAVE評価ツール拡張機能。 多数のエラーを見つけ、修正のヒントと標準へのリンクを提供し、便利な形式で情報を提供し、構文とアリア属性を強調します。
主な利便性は、拡張機能がソースコードではなくページの現在の状態を分析できることです。
- http://khan.github.io/tota11y/-ブックマークレットを使用してページに埋め込むことができるビジュアライザーとアクセシビリティ検証ツール。 コントラスト測定をサポートします。 Wave評価ツールとは異なり、すべてのエラーが一度に表示されるわけではなく、多くのエラーも検出されません。
- Firefox用AInspectorサイドバー 。 以前のバリデータとは異なり、aria-attributesを使用するロジックのエラーを見つけることができます。 エラーのリストに加えて、手動で行うことが推奨されるチェックのリストも提供します。
- アクセシビリティデベロッパーツールChrome 主に、aria-attributesを使用する際の正式なエラーをキャッチします。 マイナス面:不便なインターフェイスとわかりにくいエラー出力形式。
バリデータエラーメッセージの存在自体は、WCAGの不一致の正式な基準ではないことに注意してください。 さらに、一部の投稿は、助言的であるか、潜在的なものとしてフラグが付けられています。 それらの決定は、文脈から決定されるべきです。
逆もまた真です。すべての問題がバリデーターであるわけではありません。以下を含む手動テストが必要です。 スクリーンリーダーを使用する(以下を参照)。
スクリーンリーダーをチェックインします。
設定が最も簡単なのは、Windows + Firefox / IE + NVDAの組み合わせです。 JAWSも広く配布されています(プログラムは有料で高価ですが、40分間モードの試用版が付属しています)。 他のオペレーティングシステムのユーザーの場合、テスト環境はMicrosoftの仮想マシン( https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/-以前のmodern.ie)で構成できます。 VM Windows 7。
スクリーンアクセスプログラムは、それらに最初に遭遇した人に非常に固有のものですが、比較的早く慣れることができます。 すべてのフロントエンド開発者およびテスターには、簡単な指示のレベルでプログラムを習得することをお勧めします(以下を参照)。 それほど時間はかかりません。
- 重要! スクリーンアクセスプログラムの操作原理の説明 。
- NVDA:全盲および視覚障害者向けの無料のスクリーンアクセスプログラム 。
- 視力のある開発者向けNVDAクイックガイド
- NVDAコマンドのチートシート 。 (NVDAキーは、設定に応じてInsertおよび/またはCaps Lockです)。
- NVDAチームの詳細リスト 。
- JAWSスクリーンアクセスプログラム 。
- JAWSチートシート 。
- ブラウザとスクリーンリーダーのさまざまな組み合わせにおけるさまざまなテクニックのサポート表。 また、WCAGの観点からは無効なコードの認識に関する情報も含まれています。
ワーツクを考慮する必要がある場合
マークアップセマンティクスへの準拠。 特に、以下を区別できます(すべてがリストされているわけではありません)。
- <ul>、<ol>、<li>タグまたは対応するロール属性によるリスト、アイテム列挙、ドキュメントフィードなどのマーキング。
- <table>、<tr>、<th>、<td>タグまたは対応するロール属性を持つ表形式のデータマークアップ。 注ロール属性の要素をネストする規則は、タグの規則と完全に似ています。
- <caption>および<summary>タグの使用
- テーブルヘッダーの適切な使用。 セルヘッダーは、テーブル全体のすべての親<th>要素であることに注意してください。 Colspanヘッダーは、影響を受けるすべての列の各サブセルに適用されます。
- 表示のみを目的として、テーブルまたはリストを複数に分割しないでください。
- ボタンは、クリック可能な要素<button>、<a href... role="button">、<input type = "button">を使用して設計することをお勧めします。 フォーカス(tabindex)およびキーボードイベント(Enterを押すことによるキーダウン)を条件として、role = buttonでクリックできない要素を使用することもできます。
ロール=メイン、ロール=ナビゲーション、ロール=コンテンツ情報、ロール=補完、ロール=バナーなどを使用してセマンティックエリアをマークアップする
- ページ上のコンテンツはすべて、セマンティックゾーンに属している必要があります。
- 1つのページにナビゲーションと同等の役割または補完的な役割を持つゾーンが複数回発生する場合、aria-label属性を通じてその目的を説明するテキストラベルを追加する必要があります。
- 繰り返しブロックをスキップしてrole = "main"ブロックにジャンプするリンクを追加します。
リンクは、ページ上の最初のフォーカス可能な要素である必要があります。 これは視覚障害者向けのリンクです。 ページを読み込んだ後、最初にTABを押してリンクにフォーカスを移動し、次にENTERを押してページをメインコンテンツの要素に固定する必要があります。
http://webaim.org/のリファレンス実装。 ロード後、TABをクリックする必要があります-リンクは左上隅に表示され、ENTERになります。
レベル1の見出しから始まる見出しの厳密な階層。
キーボード制御:
- すべてのコントロールと入力に焦点を合わせる必要があります。
- フォーカス状態は区別可能でなければなりません
追加のテキスト情報の提供:
- 属性「alt」: 装飾要素の場合は空、情報要素の場合は意味のあるテキスト。
入力要素のラベルの提供:<label for = "...">、aria-label、aria-labelledbyを使用します。 テキストまたはテキストラベルのないコントロールまたは入力はありません。
代替テキストの計算方法の詳細については、 https: //www.w3.org/TR/wai-aria/roles#textalternativecomputationを参照してください
セマンティクスを持たない要素(たとえば、<span>)にaria-labelを追加しても意味がないことに注意してください。
他の要素(リスト、フィールド<fieldset>などのグループ化、ランドマーク)の場合、aria-label属性も異なる方法で解釈されます。使用する場合、各要素の目的を理解する必要があります。
- エラー表示:一般的なエラーメッセージ(ページのタイトル-ページのメインコンテンツのブロックの先頭にある、またはrole = "alert"またはaria-live = "assertive"を持つ要素のタイトル。
- <caption>および<summary>タグを使用して、追加の情報が必要になる可能性のある以前のコンテキストまたはナビゲーションから目的が明確でないテーブルを記述します。
- <abbr title>で略語を展開します(タグの内容の代わりに、titleの値が読み込まれます):
<abbr title=" "> .. </abbr>
- ページ上の位置または外観、フォントスタイル、情報アイコンで表される取り消し線テキスト(ホテルの星空など)を考慮することによってのみ意味が明らかになる要素の場合、テキストの説明が必要です。画面の左端を超えて移動すると非表示になる場合があります。
.sr_only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
<span class="sr_only"> </span>
チャート、グラフ、インタラクティブFlash(ほとんどの場合)、SVG、Canvasなどの形式で提示される重要な情報は、テキスト形式でも提示する必要があります:個別の段落、表、場合によっては個別のページ、または目の不自由なユーザーからは非表示class = "sr_only"ブロックを使用します。
注:ほとんどの場合、リストされた要素を視覚障害者が使用できるように技術的に調整することは可能ですが、人件費の観点から、視覚障害者のために別のインターフェースを作成する必要があります。 通常、ユーザーがデータをテキストで表現する方が簡単で、最も重要なことには、より便利です。
可能であれば、必要な機能(結合リスト(<select>)、フラグ(チェックボックス)、ラジオボタン、ボタン、入力フィールド)を満たす場合は、組み込みのブラウザコンポーネントを使用することをお勧めします。
また、キーボードコントロールの複雑化を避け、同じ問題を解決する標準的なソリューションの存在下で新しいパターンのインタラクションを考案しないでください。障害のある人にとって既知でアクセス可能なコンポーネントとアプローチからインターフェースを構成しようとします。 「使用可能なインターフェイスの実装例」セクションおよび以下の基準4.1.2の説明を参照してください。
目の見えるユーザーには隠れているが、視覚障害者にはアクセス可能な要素を作成することが許可されています。 これは、画面の左端をはるかに超えて要素を移動する手法(上記のsr_onlyクラス)を使用して行われます。
通常のウィジェットにアクセスできるようにすることが困難な場合は、スクリーンリーダー用に別の代替インターフェイスを実装することもできます(インターフェイスのメインバージョンを非表示にします)。 同時に、目の見えるユーザーがキーボードから要素を操作できることを忘れてはなりません。
この手法は慎重に使用してください。選択肢がある場合は、視覚障害のあるユーザーが使用できるように一般的なインターフェイスを調整することをお勧めします。
カレンダーの代わりに日付を手動で入力する(ただし、カレンダーを使用することもできます)、国/都市を選択するためにマップの代わりにリストを使用するなど、視覚障害者のインターフェイスを大幅に簡素化する場合、別のインターフェイスを実装することは理にかなっています
無理をしないことが重要です。実践では、視覚障害のあるユーザーは、一見視覚障害者にとって不快なインターフェースを使用するのに苦労しないことを示しています。
クイックチェック
バリデーターは、一般的なHTMLの有効性についてサイトをチェックします: https : //validator.w3.org/ 。
使用されるHTMLのバージョンの仕様への最大限の準拠はオプションですが、推奨されます(技術[G192] [g192]を参照)。 ただし、サイトの可用性にとって重要であり、拘束力のあるエラーがいくつかあります。 これらは、「WCAG AAコンプライアンスチェックの詳細」セクションの基準4.1.2の説明にリストされています。
専用のバリデーターでサイトを確認します。 検証ツールのセクションをご覧ください。
スクリーンリーダーのないキーボードコントロール。
クリック可能なものはないはずですが、キーボード要素からはアクセスできません(特別な代替手段がない限り)。 このような要素は、<a href=..> </a>、<button>タグを使用するか、role = button、role = linkおよびtabindex属性の組み合わせを使用して実装する必要があります。
フォーカスは表示され、正しく移動する必要があります。要素にヒットしても「スタック」せず、ページのどの状態でもユーザーアクション中に失われることはありません。
スタイルを適用したサイトを表示して、視覚障害者に見えるように近づけます。 スタイルはhttps://github.com/Harut/wai-aria.cssで見つけることができます 。 これにより、チェックリストの各項目をチェックせずに、ほとんどのエラーを「目で」見つけることができます。 この項目はオプションであり、置き換えられませんが、スクリーンリーダーでのページ表示に先行します。 まず、完全なビジュアルバージョンとスタイルが適用されたバージョンの不整合に注意することをお勧めします。
スクリーンリーダーをチェックインします。 この段階では、以前のチェックで最も重大なエラーを検出して修正する必要があります。
スクリーンリーダーによる表、非標準要素、ページ機能の使用の利便性、音声属性(主にロールとアリア*の正確さと完全性)の認識を確認する必要があります。
- スクリーンリーダーでフォームをチェックするには、特別な注意が必要です。 すべてのテキストラベル、エラー、指示の正確性を確認し、送信およびエラーが正常に行われたときのフォームの動作、フォーム入力モードでの情報の順序と完全性を確認する必要があります(ページ読み取りモードではなく、TABを使用してフィールドを切り替える場合)、フォーカスシフトを修正しますなど
利用可能なインターフェイスの実装例
- WCAGテクニック(WCAG 2.0標準のリンクから切り替えるときに使用すると便利です): https : //www.w3.org/TR/WCAG20-TECHS/
- それとは別に、WCAG 2.0のARIAテクニックを見ることができます: https : //www.w3.org/TR/WCAG20-TECHS/aria.html
WAI-ARIA 1.0オーサリングプラクティス: https : //www.w3.org/TR/wai-aria-practices/ 開発者向けのドキュメントには、アクセスしやすいインターフェイスを作成するための明白でない瞬間とアプローチの説明が含まれています。
また、最も一般的なウィジェットを設計するための一連のテンプレートも含まれています(より簡潔な表形式のこの情報は、 WebAIMの推奨事項にも記載されています)。
- Ajax Accessibility Examplesを開きます: http : //oaa-accessibility.org/ 利用可能なコンポーネントの広範なサンプル実装。 既製のウィジェットとしてではなく、実装の例としてとるべきです。
- アクセシビリティとARIAまたはMozillaガイド: https : //developer.mozilla.org/en-US/docs/Web/Accessibility また、既製のコンポーネントのセットも含まれています(ただし、一部は開きません): https : //developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/widgets/overview
- 適切に設計された小さなウィジェットのセット: http : //heydonworks.com/practical_aria_examples/ 。
WCAG AA詳細コンプライアンスチェック
このセクションでは、関連するWCAG基準に従ってグループ化された、AAレベルに準拠するためのチェックリストの形式でWCAGからの絞り込みを示します。 リストはhttp://webaim.org/standards/wcag/checklistからコンパイルされます 。 公式の推奨事項、手法、および一般的なエラーのリストは、 https : //www.w3.org/WAI/WCAG20/quickref/にあります 。
サイトの開発とテストのすべての参加者は、開発段階でのミスをできる限り少なくしたり、初期段階で修正したりするために、このリストを注意深く研究し、マスターすることをお勧めします。 これにより、開発とテストで最小限の作業を行うことができ、重要な詳細のテストに集中することができますが、エラーの総数では見落とされる可能性があります。
1.1。 テキストバージョン:非テキストコンテンツのテキストバージョンを提供します
1.1.1。 非テキストコンテンツ(レベルA)
- すべての画像、フォーム画像ボタン、および画像マップ領域には、対応する代替テキストがあります。
- コンテンツを表さない画像、装飾的な画像、またはコンテンツがすでにテキストで表されている画像、空の属性alt = ""を持っている画像、またはCSS背景画像の形式で作成された画像。
- すべてのリンク画像には代替テキスト(リンク上のaria-labelまたは画像上のalt)があります。
- 同じページまたは別のページにある複雑な画像の場合、詳細なテキストがあります。 リンクまたはlongdesc属性を使用して、画像をテキストにリンクできます。
- すべてのボタンには意味のあるテキストがあります。
- すべての入力フィールドには、意味のあるテキストラベルがあります。
- 埋め込みメディアオブジェクトには、スクリーンリーダーが利用できるテキストで資格を付与するか、その他の方法で識別する必要があります。
- 組み込みフレームには意味のある名前が付いています。
1.2。 メディアコンテンツ:期間限定のメディアコンテンツの代替バージョンを提供します
つまり、録音テキストのトランスクリプト、その内容または字幕のテキスト説明を提供する必要があります。 ビデオに音声で表されない視覚情報が含まれている場合は、音声による説明も提供する必要があります。
そのようなコンテンツがサイトに表示される場合は、WCAG標準またはWebaimの推奨事項などを参照する必要があります。
1.3。 適応性:データや構造を失うことなく、さまざまな形式で提示できるコンテンツを作成します
1.3.1。 情報と接続性(レベルA)
- 意味的に重要な要素は、HTML仕様に従って意図された目的に使用されます。
- 見出し(<h1>)、リスト(<ul>、<ol>、および<dl>)、特別なテキストまたは強調表示されたテキスト(例:<strong>、<code>、<abbr>、<blockquote>)など重要な要素はセマンティックレイアウトを使用していました。
- 表形式のデータの場合、テーブルが使用されます。 セルは、ヘッダーに水平および/または垂直に正しく接続されています。 テーブルの内容を明確にする必要がある場合は、タグ<caption>および<summary>が使用されます。
- 関連するフォームフィールドは、意味のある<legend>を含む<fieldset>にグループ化されます。
1.3.2。 重要な読み取りシーケンス(レベルA)
- HTMLコード内の要素の順序によって決定されるページ上の読み取りとナビゲーションの順序は、直感的で論理的に正当化され、コンテンツの本質をゆがめません。
1.3.3。 感覚仕様(レベルA)
これが機能の不可欠で不可避な部分でない場合:
- テキスト内の要素の形状、サイズ、および場所への参照はありません。ページを使用するための指示はこれらの特性に関連付けられていません(たとえば、「正方形のアイコンをクリックします」、「指示は右の列にあります」など)。
- ページの使用はサウンドに関連付けられていません(たとえば、「ビープ音の後に続行」)。
1.4。 選択性:コンテンツの視聴を簡素化し、重要な部分を小さな部分から分離します
1.4.1。 色の使用(レベルA)
- 色は、コンテンツ、表示、または要素の区別を提供する唯一の手段としては使用されません。
- テキストとリンクの色の明度のコントラストが少なくとも3:1である場合、およびリンクをナビゲートまたはフォーカスするときに追加の違い(下線など)が発生しない限り、テキスト以外のテキストの背景に対してリンクを指定する唯一の手段として色は使用されません。
1.4.2。 サウンドコントロール(レベルA)
- ページに3秒以上自動的に再生されるサウンドがある場合、停止、一時停止、ミュート、または音量を調整する機会を与える必要があります。
1.4.3。 コントラスト(レベルAA)
- テキストと画像内のテキストには、少なくとも4.5:1のコントラスト比が必要です。
- 拡大されたテキストと拡大されたテキストの画像のコントラスト比は少なくとも3:1です。
1.4.4。 テキストのサイズ変更(レベルAA)
- 最大200%までズームインしている間も、ページは読み取り可能で機能していることが望ましいです。 これは、小さくてコントラストの低いテキストを含むブロックに特に当てはまります。
1.4.5。 画像上のテキスト(レベルAA)
- アクセス可能なテキストで同じ視覚的表現を実現できる場合、および画像内のテキストの内容に重要な意味(ロゴ、スクリーンショットなど)がない場合は、テキストを含む画像を使用しないでください。
2.1。 キーボードのアクセシビリティ
2.1.1。 キーボード(レベルA)
原則的に不可能な場合を除き、すべての機能はキーボード制御でアクセスできる必要があります(たとえば、フリーハンドでの描画)。
スクリーンリーダーとの組み合わせの有無にかかわらず、操作性を確認する必要があります。
対話できるすべての要素に焦点を当てる必要があります。 要素のクリックが実装されている場合、マウスとキーボードの両方で同等にアクセスできる必要があります。
デフォルトでは、フォーム要素、<button>ボタン、および<a href>リンクによってフォーカスとキーボードの相互作用がサポートされています。
コントロールまたは入力の独自の実装は、ブラウザに埋め込まれた要素および/または特殊なアクセシビリティサイト(たとえば、 Open Ajax Accessibility )の類似のウィジェットの実装例と同じキーボード経由の対話の機会を提供する必要があります。
これらのサイトでのウィジェットの実装は理想的ではない可能性があり、多くの場合、ウィジェットの完成または修正が必要になる可能性があることを覚えておく必要があります。 スクリーンリーダーで複雑なソリューションをテストする必要があります。
- accesskey属性を不必要に使用しないようにすることをお勧めします 。 accesskey属性は注意して使用する必要があります。一般的なスクリーンリーダーのホットキー( JAWS 、 NVDA )と競合しないようにしてください。 ロシア語バージョンでは、ロシア語と英語のレイアウトで同じボタンにシンボルが配置されるように、アクセスキーを選択することをお勧めします。
- 正のtabindexを設定すると、フォーカスの切り替え順序で問題が発生する可能性があります 。
mousedownおよびmouseupハンドラーを要素をクリックするためのハンドラーとして使用すると、キーボードからアクセスできなくなります。 また、クリックイベントは、デフォルトではフォーカスされていない要素、つまり フォーム要素、<button>ボタン、および<a href>リンクを除くすべて。
そのような場合は避けることをお勧めしますが、これが不可能な場合は、そのような要素に対して、キーボードイベントの処理を追加で規定する必要があります。
マウスオーバーしたときに開くヒントやメニューにもキーボードからアクセスできる必要があります。 たとえば、フォーカスのある要素のテキストを表示することができます(音声プロンプトの場合は音声も表示できます)。
ARIA仕様では、このようなウィジェットを実装するためのaria-haspopup属性が提供されています( たとえば )が、そのサポートとスクリーンリーダーなしのキーボードの操作に関して疑問があります。
- 画面上のリーダーは、特定のキーを押す処理を再定義できます(たとえば、読み取りモードでのキーボード矢印や文字-フォーム要素に焦点を当てずに)。したがって、フォームフィールド外のキーストロークの処理は注意して処理し、画面と組み合わせてその動作をテストする必要があります読者 TABを押す処理を無効にすると、フォーカス切り替えの順序に問題が生じる可能性があります。
2.1.2。 フォーカストラップの欠如(レベルA)
- 任意の要素または要素のグループに焦点を合わせることは決してありません。また、ページ上の制御可能な要素に自由に移動できます。
2.2。 十分な時間:ユーザーがコンテンツに慣れ、作業するのに十分な時間を与える
2.2.1。 時間設定(レベルA)
- ページまたはアプリケーションに時間制限がある場合、ユーザーはそれをオフにし、構成し、拡張できる必要があります。
標準で提供される例外:
- リアルタイムアプリケーション。
- 時間制限が非常に重要であり、ページの機能、情報の重要性、またはセキュリティに影響を与えずに削除できない場合。
- 20時間以上の制限時間。
2.2.2。 一時停止、停止、非表示。 (レベルa)
- ユーザーは、動きを停止、一時停止、または非表示にでき、5秒以上続く要素のちらつきまたは巻き戻しができる必要があります。 これは、インジケーターの読み込みには適用されません。
- 5秒未満でモーション、フリッカー、または巻き戻しを使用して、トランジションをアニメーション化し、ユーザーの注意を引き付けることができます。
- また、更新が重要である場合を除き、コンテンツの自動更新を一時停止することも可能です。更新がなければ、ページはその意味を失います。
技術的な可能性がない場合、またはアニメーションまたは更新がページの機能にとって非常に重要であり、それらがなければページの意味または動作が変化する場合、標準はルールの例外を規定しています。 説明付きの例外の例は、基準の説明にあります 。
基準は非常に厳格であり、それを完全に順守するには、多くの開発時間が必要になることがあり、一般ユーザーのページの使用を損なう場合があります。 いずれの場合も、標準の厳密な正式な要件と現実の間で妥協点を見つける必要がありますが、同時に、これらのユーザーカテゴリごとに相互作用を検討する必要があります(「はじめに」を参照)。
2.3。 健康に有害であることが知られている設計要素を使用しないでください。
2.3.1。 1秒あたり3回以下のフラッシュの制限(レベルA)
- ページには、1秒間に3回以上点滅する要素を含めないでください。 フラッシュの概念と許容値の詳細な説明は、標準のhttps://www.w3.org/Translations/WCAG20-ru/#general-thresholddefにあります 。
2.4。 ナビゲーション:ナビゲーション、コンテンツ検索、およびサイト上の現在の位置の決定に関するヘルプとサポートをユーザーに提供します
2.4.1。 すべてのページで繰り返しブロックをスキップする(レベルA)
- 繰り返しブロックをスキップするためのリンクがあります。
- レベル1から始まる正しいヘッダー階層があります。
2.4.2。 ページタイトル(レベルA)
- このページには、その目的と目的を説明する有益なタイトル<title>があります。
- ページをリロードせずにサイトをナビゲートするときは、<title>のコンテンツも変更する必要があります。
2.4.3。 フォーカス移動順序(レベルA)
- リンク、フォーム要素、その他のオブジェクトのナビゲーション手順は、直感的で論理的に正当化されています。
2.4.4。 リンクインテント(コンテキスト内)(レベルA)
- 各リンク(または他のアクティブな要素)の目的は、リンクテキスト自体から、またはプログラムで計算されたコンテキストと組み合わせたリンクテキストから明らかです。
- 異なる場所につながる同じテキストのリンクは、それらの間で簡単に区別できます。
2.4.5。 さまざまな検索方法(レベルAA)
- -: , , , , ..
2.4.6. (Level AA)
- (<label>, <legend>, aria-label) , .
- , .
2.4.7. (Level AA)
- .
3.1. :
3.1.1. (Level A)
- <html lang>.
3.1.2. (Level AA)
- , , lang.
3.2.
3.2.1。 (Level A)
- ( ):
- ;
- ;
- ;
- ;
- , .
- , , , . . WCAG 2.0 .
3.2.2。 (Level A)
- ( ), .
. 3.2.1.
— onchange <select>, . , ENTER [G80][g80].
, onchange -.
3.2.3. (Level AA)
- , , .
3.2.4. (Level AA)
- .
3.3。 :
3.3.1. (Level A)
- : <label>, aria-required .
.
: id, aria-describedby.
aria-describedby : , — ( — aria-describedby ).
. .
WebAIM .
- role="alert" aria-live [ARIA21][aria19].
3.3.2. (Level A)
(<label>, aria-label, aria-labelledby), (aria-describedby), , (<legend>).
- , aria-describedby ([ARIA1][aria1], [OAA44][oaa44]).
- aria-required required ([ARIA2][aria2]).
- aria-invalid [ARIA21][aria21].
(, , — , — ..): . , <fieldset> <legend>, aria-labelledby="field-label-id subfield-label-id", aria-label=" ".
3.3.3. (Level AA)
- , , , .
3.3.4. ( , ) (Level AA)
, , ( ), :
- 検証 , , , .
- 確認 . , .
- ( ). , , .
4.1. ,
4.1.1. (Level A)
HTML/XHTML ( http://validator.w3.org/ )
HTML , (. [G192][g192]).
:
- (id) ([ 77][f77]),
- ([ 70][f70]),
- ,
- (, URL, <time> datetime).
- , .
4.1.2. , , , (Level A)
- .
- ( managed state ) - — . , : Providing Keyboard Focus .
, , , , role, aria-* .
, :
- , , ([ARIA6][aria6] — [ARIA10][aria10], [ARIA14][aria14] — [ARIA16][aria16]).
- : , ([ARIA11][aria11] — [ARIA13][aria13], [ARIA20][aria20]).
- role="group" — <fieldset> ([ARIA17][aria17]).
- ([ARIA18][aria18], [ARIA19][aria19]).
- role="presentation" (, ).
- role=progressbar ([OAA27][oaa27]).
- role="dialog" ([OAA2][oaa2], WAI ARIA Authoring practices 3.3 ).
- role="tablist". ([OAA34][oaa34], [OAA35][oaa35], [OAA36][oaa36], [OAA37][oaa37]).
- role="combobox". ([OAA9][oaa9], [OAA12][oaa12]).
- role="combobox" aria-autocomplete="list" ([OAA11][oaa11], [OAA14][oaa14]).
, - aria-expanded ( w3c wiki ).
注意! Open Ajax Accessibility w3c wiki WAI-ARIA , . aria-expanded , .
- ([OAA26][oaa26], [OAA27][oaa27], WAI ARIA Authoring practices 4.4 ).
- ( ) role="slider" ([OAA32][oaa32]).
- role="tree" ([OAA41][oaa41], [OAA42][oaa42], [OAA43][oaa43]).
- aria-hidden="true".