アクセシビリティ



アクセシビリティ

スキルを利用するユーザーは大勢います。スキルをデザインする際は、身体を自由に動かせる状況にないユーザーに配慮することを心がけてください。その状態が一時的であっても永続的な場合でも、会話や対話を最大限に活用できる工夫をしましょう。

どんなユーザーにも、一時的、永続的、または特定の条件下で身体を自由に動かせないときがあります。車を運転中にハンドルから両手を離せない状態、弱視や全盲など、さまざまな状態が考えられます。誰でも利用できるようにスキルをデザインするということは、文字どおり誰もがいつでもスキルを利用できるようにすることです。

このガイドで説明するアクセシビリティに関する原則とベストプラクティスに従うことで、スキルを誰でも利用できるようにデザインできます。

誰でも利用できるスキルのベストプラクティス

スクリーンリーダー

目の不自由なユーザーは、視覚を必要とするスキルを十分に活用できない場合があります。画像については、画像の説明を読み上げるスクリーンリーダー音声に頼らなければなりません。そうなると、Alexaの通常の音声エクスペリエンスとは異なり、画像のあらゆる側面を詳細に描写するスクリーンリーダー用の説明文を作成する必要が生じます。それによってユーザーは、音声コマンドのみを使って画面に何が表示されているのかを把握できるようになります。目の不自由なユーザーは、Voice Viewなどのスクリーンリーダーを利用する可能性があります。このようなユーザーがスキルを正しく操作できるよう、情報の階層を重要度の高いものから低いものへと適切に設定してください。

色に関して考慮すべきこと

ベースラインカラーシステムはすべてのテキストと色がAAアクセシブルのコントラスト比4.5:1のレベルになるようにデザインされています。背景#232F3Eに対するテキストのデフォルト色は#FAFAFAです。この組み合わせは15.5:1の最適なコントラスト比で表示されます。その他の色の組み合わせはオンラインツールで測定できます。最小比の要件は4.5:1ですが、Body(本文)やDisplay 1(表示1)など大きなテキストの場合の最小比は3:1です。

色を識別できないユーザーがいるかもしれませんし、文化に応じて色の持つ意味が変化したりすることから、視覚要素では、色以外の要素も使って意味を伝える必要があります。たとえば、「入力必須」を表す目印がフォームフィールドの赤いラベルしかない場合、色覚異常を持つ人はその意味を識別できない可能性があります。ただし、太字など別の視覚標識と組み合わせれば、色を使うこともできます。詳細については、W3CスクールのサイトでUse of Color(英語)を参照してください。

テキストのコントラスト

テキストコントラストはWEB CONTENT ACCESSIBILITY GUIDELINES(WCAG)2.1(英語)の標準に基づいて測定されています。既定のAPLレイアウトでは、前景色と背景色の最小コントラスト比があらかじめ設定されていますが、開発者はコントラスト比を自分でチェックし、テキストサイズ、ウエイト、背景画像がすべて適切に設定され、テキストが読みやすいかどうか確認することをお勧めします。特にキャプションなど小さな文字について注意が必要です。画像や背景画像とテキストのコントラストはやや弱くなります。コントラストの問題が起きないように、60%黒の最小オーバーレイ色を適用します。scrimパラメーターを濃く設定すると適用できます。

文字の表現で詳細を参照してください。

点滅を抑える

画面や画面要素は、原則として、ちらつき、点滅、明滅がないようにします。しかしながら、このような方法でユーザーの注意を引く必要がある場合、点滅の頻度は1秒あたり2回未満にします。そうすることで、ユーザーが光過敏性発作を起こすことを防止できます。テキスト挿入キャレットは小さく、点滅しても発作誘発の危険がないため、この原則は適用されません。

時限応答

タスクを完了するのに時間がかかるユーザーもいます。ユーザーが限られた時間内でタスクを完了しなければならない場合、そのタスクを行わなくても済むようにするか、ほかの方法で完了できるようにする必要があります。

一時休止と話題の転換

スキルでプロンプトに提示する選択肢が複数あるときや、メッセージの途中で話題を変えるときは、自然な息継ぎと一時休止を挟むことで、ユーザーに明確に伝えられるようにします。移行を知らせるために、「次に」、「ここからは話題を変えて...」、「最初は...、次に...」といった言葉を使うこともできます。

エラー処理と再プロンプト

スキルがどんな種類の情報を集めようとしているのかを明確にするには、発話エラーを適切に処理して、再プロンプトを入れるようにします。

ユーザーがスマートホームスキルに扇風機の回転速度を20に設定するようリクエストした場合を考えてみましょう。

良い例

Alexa:「扇風機を1から10までの速度に設定できます。どの速度にしますか?」

悪い例

Alexa: 「有効な数値ではありません。再試行してください。」

詳細については、エラーに適切に対応するを参照してください。

データ入力

発話に問題のないユーザーであっても、Alexaに長い数字や詳細な情報を伝えるのに苦労する場合があります。Alexaに住所、電話番号、郵便番号を伝えるのは面倒なものです。ユーザーが音声だけでうまく情報を伝えられない場合、Alexaアプリを使用するなどの別の入力手段を提示します。

同じプロンプトに対して発話エラーが2回連続して発生した場合を見てみましょう。

良い例

Alexa: 「よくわかりませんでした。位置情報は、Alexaアプリの設定でいつでもコンサート検索スキルに知らせることができます。郵便番号を教えてください。」

悪い例

Alexa: 「すみません。あなたの位置情報を取得できないようです。繰り返してもらえますか?」

認知負荷を軽減する

Alexaがメッセージとプロンプトを言い、ユーザーの応答用にマイクが起動すると、ユーザーはその後わずか8秒以内にAlexaが言ったことを理解し、応答を考えて、声に出して答える必要があります。学習や発語に問題のあるユーザーは、説明の長いスキルを難しいと感じる可能性があります。情報や選択肢を少なくすると、スキルの使い方や目的がわかりやすくなり、スキルとの対話を続けるにはどういった選択肢があるのか理解しやすくなります。プロンプトは一息か二息で読み上げることができる短さにします。

良い例

Alexa: 「今週神戸で開かれるコンサートは12件見つかりました。まず、ザプレジデントオブザユナイテッドステイツオブアメリカが土曜日に国際会館でコンサートを開催します。それについてもっと聞きたいですか?」

悪い例

Alexa: 「該当するコンサートは3件見つかりました。ザプレジデントオブザユナイテッドステイツオブアメリカは国際会館で土曜午後九時から、シャバーズパレスはワールド記念ホールで日曜午後十時から、ザヘッドアンドザハートはチキンジョージで六月十八日午前零時からです。このうちのどれかの詳細を聞くか、チケットを買うか、検索結果の残り9件のコンサートについて聞くことができます。どちらがいいですか?」

画面の読み上げをサポート

画面に表示されていることを読み上げるようユーザーに頼まれても、Alexaがそれに対応できるようにしておきます。ユーザーが「アレクサ、画面に何が表示されているか教えて」と言う場合などです。 こうした発話をするのは、目の不自由なユーザーだけでなく、離れたところにいたり、立て込んでいて画面を見ることができないユーザーも含まれます。たとえば、料理用のスキルを使用しながら調理しているユーザーの場合、Alexaに材料を読み上げてもらいながら、冷蔵庫や戸棚から材料を探す、といった場面があるかもしれません。

次のシナリオでは、ユーザーが食材を準備していて、レシピの詳細ページがしばらく開いたままになっています。ユーザーはデバイスから離れて、手を洗い、食材を準備しています。

良い例

ユーザー: 「アレクサ、画面の内容を教えて」

Alexa: 「卵とじスープの情報です。115件のレビューがあり、5段階評価で星4つを獲得しています。調理時間は20分で、6人分です。手順を聞くか、動画を見るか、材料を聞くことができます。」

ユーザー: 「アレクサ、材料を読んで」

Alexa: 「卵とじスープ6人分を作るのに必要なのは...」

悪い例

ユーザー: 「アレクサ、画面の内容を教えて」

Alexa: 「卵とじスープの写真と情報があります。」

音声応答では詳しい情報を提供していません。

「繰り返して」というリクエストをサポート

ユーザーがいつでもAlexaに繰り返しをリクエストできるようにします。たとえば、スキルを公共の騒がしい場で使っているときや、Alexaの応答を理解できないときです。開発者は、ユーザーが全文を必要としているかプロンプトのみを必要としているかを判断し、メッセージのどの部分をAlexaに繰り返させるかを決める必要があります。これは、ビルトインのAMAZON.RepeatIntentを活用し、そのハンドラーを指定することで実行できます。少なくとも、セッションアトリビュートの最後の応答を保存してから、前の応答を出力するハンドラーを実装する必要があります。

たとえば、ユーザーがトリビアスキルを使用している場合は、コンテキスト全体を理解するために問題と選択肢の両方を繰り返します。

良い例

Alexa: 「今日のクイズの質問です。 生涯で最も多くのグラミー賞を受賞した記録を持つアーティストは次のうち誰でしょう?エー、マイケルジャクソン。ビー、アリソンクラウス。シー、ゲオルクショルティ」

ユーザー: 「えー、繰り返してもらえますか?」

Alexa: 「今日のクイズの質問です。 生涯で最も多くのグラミー賞を受賞した記録を持つアーティストは次のうち誰でしょう?エー、マイケルジャクソン。ビー、アリソンクラウス。シー、ゲオルクショルティ」

悪い例

Alexa: 「今日のクイズの質問です。 生涯で最も多くのグラミー賞を受賞した記録を持つアーティストは次のうち誰でしょう?エー、マイケルジャクソン。ビー、アリソンクラウス。シー、ゲオルクショルティ」

ユーザー: 「えー、繰り返してもらえますか?」

Alexa: 「答えはどれでしょうか?エー、マイケルジャクソン。ビー、アリソンクラウス。シー、ゲオルクショルティ」

次の場合は、ユーザーにすべてを繰り返し聞かせると非常に長くなりますので、代わりに、ユーザーが最も重要な情報のみを確認できるようにプロンプトだけを繰り返します。

良い例

Alexa: 「ジェンさん、エイエスケイミュージックにご登録いただき、ありがとうございます。クイズゲーム、楽しい音楽情報、チケットに使える特典をもっと入手できます。今日のクイズを聞くか、音楽について質問するか、ショーのチケットを購入できます。どちらがいいですか?」

ユーザー: 「えーと...何だっけ? もう一度言ってくれる?」

Alexa: 「今日のクイズを聞くか、音楽について質問するか、ショーのチケットを購入できます。どちらがいいですか?」

悪い例

Alexa: 「ジェンさん、エイエスケイミュージックにご登録いただき、ありがとうございます。クイズゲーム、楽しい音楽情報、チケットに使える特典をもっと入手できます。今日のクイズを聞くか、音楽について質問するか、ショーのチケットを購入できます。どちらがいいですか?」

ユーザー: 「えーと...何だっけ? もう一度言ってくれる?」

Alexa: 「ジェンさん、エイエスケイミュージックにご登録いただき、ありがとうございます。クイズゲーム、楽しい音楽情報、チケットに使える特典をもっと入手できます。今日のクイズを聞くか、音楽について質問するか、ショーのチケットを購入できます。どちらがいいですか?」


これは、ビルトインのAMAZON.RepeatIntentを活用し、そのハンドラーを指定することで実行できます。少なくとも、セッションアトリビュートの最後の応答を保存してから、前の応答を出力するハンドラーを実装する必要があります。

先頭に戻る