このモジュールでは、ユーザー補助機能のテストにおける支援技術(AT)の使用に焦点を当てます。障がいのある人は、AT を使用して、タスクを実行する能力を高めたり、維持したり、改善したりできます。
デジタル空間では、AT は次のようなものがあります。
- なしまたは低技術: 頭や口のスティック、手持ちの拡大鏡、大きなボタンのデバイス
- ハイテク: 音声起動デバイス、アイトラッキング デバイス、適応型キーボードとマウス
- ハードウェア: 切り替えボタン、人間工学に基づくキーボード、自動更新型点字デバイス
- ソフトウェア: テキスト読み上げプログラム、ライブ字幕、スクリーン リーダー
テスト ワークフロー全体で複数のタイプの AT を使用することをおすすめします。
スクリーン リーダーのテストの基本
このモジュールでは、最も一般的なデジタル AT の 1 つであるスクリーン リーダーについて説明します。スクリーン リーダーは、ウェブサイトやアプリの基礎となるコードを読み取り、その情報を音声または点字出力に変換するソフトウェアです。
スクリーン リーダーは、目の不自由な方やろうあ者にとって不可欠ですが、ロービジョン、読み取り障害、認知障がいのある方にも役立ちます。
ブラウザの互換性
利用できるスクリーン リーダーは複数あります。最も一般的なスクリーン リーダーは、デスクトップ パソコン用の JAWS、NVDA、VoiceOver、モバイル デバイス用の VoiceOver と TalkBack です。
オペレーティング システム(OS)、お気に入りのブラウザ、使用しているデバイスによっては、1 つのスクリーン リーダーが最適な選択肢になる場合があります。ほとんどのスクリーン リーダーは、特定のハードウェアとウェブブラウザを念頭に置いて構築されています。画面読み取り装置を、その装置でキャリブレーションされていないブラウザで使用すると、さらに多くの「バグ」や予期しない動作が発生する可能性があります。スクリーン リーダーは、次の組み合わせで使用すると最適に機能します。
スクリーン リーダー | OS | ブラウザの互換性 |
---|---|---|
Job Access With Speech(JAWS) | Windows | Chrome、Firefox、Edge |
Non-Visual Desktop Access(NVDA) | Windows | Chrome と Firefox |
ナレーター | Windows | Edge |
VoiceOver | macOS | Safari |
Orca | Linux | Firefox |
TalkBack | Android | Chrome と Firefox |
VoiceOver(モバイル用) | iOS | Safari |
ChromeVox | ChromeOS | Chrome |
スクリーン リーダーのコマンド
パソコンまたはモバイル デバイスのスクリーン リーダー ソフトウェアを適切に設定したら、スクリーン リーダーのドキュメント(上の表にリンクされています)を確認し、スクリーン リーダーの基本的なコマンドをいくつか試して、技術に慣れ親しんでください。これまでにスクリーン リーダーを使用したことがあれば、新しいスクリーン リーダーを試してみてください。
ユーザー補助テストでスクリーン リーダーを使用する場合、スクリーン リーダー ユーザーのエクスペリエンスをエミュレートするのではなく、ウェブサイトやアプリの使用を妨げるコードの問題を検出することが目的です。そのため、基本的な知識、いくつかのスクリーン リーダー コマンド、少し(またはたくさん)の練習で、できることはたくさんあります。
画面読み上げツールやその他の AT を使用しているユーザーのユーザー エクスペリエンスを詳しく把握する必要がある場合は、多くの組織や個人と連携して、貴重な分析情報を入手できます。AT を使用して一連のルールに照らしてコードをテストし、ユーザーに経験について尋ねると、異なる結果が得られることがよくあります。どちらも、完全に包括的なプロダクトを作成するために重要な要素です。
パソコンのスクリーン リーダーの主なコマンド
要素 | NVDA(Windows) | VoiceOver(macOS) |
---|---|---|
一般的なコマンドキー | 挿入 | control+option |
音声の停止 | 管理 | 管理 |
次 / 前のページを読む | ↓ または ↑ | Ctrl+Option+→ または ← |
読み上げを開始 | 挿入↓ | Ctrl+Option+A |
要素リスト/ローター | NVDA + F7 | Ctrl+Option+U |
ランドマーク | D | Ctrl+Option+U |
見出し | H | Ctrl+option+command+H |
リンク | K | Ctrl+option+command+L |
フォーム コントロール | F | control+option+command+J |
テーブル | T | Ctrl+OptionCommand+T |
表内 | 挿入Alt+↓ ↑ ← → | Ctrl+Option+↓ ↑ ← → |
モバイル スクリーン リーダーの主なコマンド
要素 | TalkBack(Android) | VoiceOver(iOS) |
---|---|---|
探索 | 1 本の指で画面上をドラッグ | 1 本の指で画面上をドラッグする |
選択または有効化 | ダブルタップ | ダブルタップ |
上または下に移動 | 2 本の指で上または下にスワイプします | 3 本の指で上または下にスワイプします |
ページの切り替え | 2 本の指で左または右にスワイプします | 3 本の指で左または右にスワイプします |
次へ/前へ | 1 本の指で左右にスワイプする | 1 本の指で左右にスワイプする |
スクリーン リーダーのテストデモ
デモをテストするために、macOS を搭載したノートパソコンで Safari を使用して音声をキャプチャしました。これらの手順は任意のスクリーン リーダーを使用して行うことができますが、エラーの発生方法がこのモジュールで説明されているものと異なる場合があります。
ステップ 1
更新された CodePen をご覧ください。自動と手動のすべてのユーザー補助の更新が適用されています。
デバッグモードで確認して、次のテストに進んでください。これは重要です。デモ ウェブページを囲む <iframe>
が削除され、一部のテストツールが干渉する可能性があります。詳しくは、CodePen のデバッグモードをご覧ください。
ステップ 2
任意のスクリーン リーダーを有効にしてデモページに移動します。特定の問題に焦点を当てる前に、ページ全体を上から下に移動することをおすすめします。
デモに修正が適用される前と後で、各問題のスクリーン リーダーを録画しました。ご利用のスクリーン リーダーでデモを試すことをおすすめします。
問題 1: コンテンツの構造
ヘッダーとランドマークは、スクリーン リーダーを使用してユーザーが移動する主な方法の一つです。これらの要素がない場合、スクリーン リーダーのユーザーはページ全体を読まなければコンテキストを理解できません。これには時間がかかり、イライラする可能性があります。
デモでいずれかの要素に移動しようとすると、その要素が存在しないことがすぐにわかります。
- ランドマークの例:
<div class="main">...</div>
- ヘッダーの例:
<p class="h1">Join the Club</p>
すべてを正しく更新していれば、見た目は変わりませんが、スクリーン リーダーのエクスペリエンスは大幅に向上します。
アクセスできない要素の中には、単にサイトを見るだけでは確認できないものもあります。コンテンツ構造モジュールで、見出しレベルとセマンティック HTML の重要性について学習しました。コンテンツが見出しのように見えても、実際にはスタイル設定された <div>
でラップされている場合があります。
見出しとランドマークに関する問題を解決するには、まず、そうしたマークアップが必要な各要素を特定し、関連する HTML を更新する必要があります。関連する CSS も必ず更新してください。
- ランドマークの例:
<main>...</main>
- ヘッダーの例:
<h1>Join the Club</h1>
すべてが正しく更新されていれば、視覚的な変化はありませんが、スクリーン リーダーの利便性が大幅に向上します。
問題 2: リンクのコンテキスト
スクリーン リーダーのユーザーには、リンクの目的と、リンクがウェブサイトまたはアプリの外部にある新しい場所にリダイレクトされるかどうかに関するコンテンツを提供することが重要です。
このデモでは、有効な画像の代替テキストを更新した際に、リンクのほとんどを修正しました。ただし、さまざまなまれな疾患に関する追加のコンテキスト(特に、新しい場所にリダイレクトされるため)に役立つリンクがいくつか追加されています。
<a href="https://rarediseases.org/rare-diseases/maple-syrup-urine-disease">
Maple syrup urine disease (MSUD)
</a>
スクリーン リーダーを使用するユーザー向けにこの問題を解決するため、コードを更新して、ビジュアル要素に影響を与えることなく、より多くの情報を追加します。また、読み取り障害や認知障害などの障がいをお持ちの方など、より多くのユーザーをサポートするために、代わりに視覚的なテキストを追加することもできます。
リンク情報を追加するパターンは多数あります。1 つの言語のみをサポートする環境では、この状況では ARIA ラベルが簡単なオプションです。ARIA ラベルが元のリンクテキストをオーバーライドする場合があります。その場合は、その情報を更新に含めてください。
<a href="https://rarediseases.org/rare-diseases/maple-syrup-urine-disease"
aria-label="Learn more about Maple syrup urine disease on the Rare Diseases website.">
Maple syrup urine disease (MSUD)
</a>
問題 3: 装飾画像
自動テスト モジュールでは、デモページのメイン スプラッシュ画像として機能するインライン SVG を Lighthouse が検出できませんでした。ただし、スクリーン リーダーはそれを検出し、「画像」として読み上げます。これは、SVG に role="img"
属性を明示的に追加しなくても当てはまります。
<div class="section-right">
<svg>...</svg>
</div>
この問題を解決するには、まず画像が情報提供的か装飾的かを判断する必要があります。その決定に基づいて、適切な画像の代替テキストを追加するか(情報提供画像)、スクリーン リーダー ユーザーに対して画像を非表示にするか(装飾画像)を判断する必要があります。
画像の最適な分類方法のメリットとデメリットを検討し、装飾的と判断しました。つまり、画像を非表示にするためにコードを追加または変更することにします。簡単な方法としては、SVG 画像に role="presentation"
を直接追加します。これにより、この画像をスキップし、画像グループに表示しないよう、スクリーン リーダーにシグナルが送信されます。
<div class="section-right">
<svg role="presentation">...</svg>
</div>
問題 4: 箇条書き
スクリーン リーダーが、希少疾患のセクションの CSS 箇条書き画像を読み上げていることにお気づきかもしれません。これは画像モジュールで説明した従来のタイプの画像ではありませんが、コンテンツの流れを中断し、スクリーン リーダーのユーザーの注意をそらしたり混乱させたりする可能性があるため、画像を変更する必要があります。
<p class="bullet">...</p>
前述の装飾画像の例と同様に、HTML に bullet クラスの role="presentation"
を追加して、スクリーン リーダーから非表示にできます。同様に、role="none"
も機能します。ただし、aria-hidden: true
は使用しないでください。使用すると、スクリーン リーダーのユーザーに対してすべての段落情報が表示されなくなります。
<p class="bullet" role="none">...</p>
問題 5: フォーム項目
フォーム モジュールでは、すべてのフォーム フィールドに視覚的なラベルとプログラムによるラベルも設定する必要があることを学びました。このラベルは常に表示されている必要があります。
このデモでは、ニュースレター登録メール フィールドに視覚ラベルとプログラマティック ラベルの両方がありません。テキスト プレースホルダ要素はありますが、視覚的に永続的ではなく、すべてのスクリーン リーダーと完全に互換性があるわけではないため、ラベルの代わりにはなりません。
<form>
<div class="form-group">
<input type="email" placeholder="Enter your e-mail address" required>
<button type="submit">Subscribe</button>
</div>
</form>
この問題を解決するには、テキスト プレースホルダを類似ラベル要素に置き換えます。このラベル要素はプログラムでフォーム フィールドに接続され、JavaScript でムーブメントが追加され、コンテンツがフィールドに追加された場合でもラベルが表示され続けます。
<form>
<div class="form-group">
<input type="email" required id="youremail" name="youremail" type="text">
<label for="youremail">Enter your e-mail address</label>
<button type="submit" aria-label="Subscribe to our newsletter">Subscribe</button>
</div>
</form>
まとめ
これで、このデモのテストはすべて完了しました。これらの変更はすべて、このデモの更新された Codepen で確認できます。
学んだことを基に、ご自身のウェブサイトやアプリのユーザー補助を確認しましょう。
このユーザー補助機能テストはすべて、ユーザーが直面する可能性のあるできるだけ多くの問題に対処することを目標としています。ただし、完了したからといって、ウェブサイトやアプリが完全にアクセス可能になるわけではありません。ウェブサイトやアプリの設計プロセス全体でユーザー補助機能を考慮し、これらのテストを他のリリース前テストに組み込むことで、最も効果的にテストできます。
理解度を確認する
ユーザー補助機能の自動テストに関する知識をテストする
ユーザー補助機能のテストに最適なスクリーン リーダーは何ですか?
支援技術を使用したテストの目的は何ですか?