Android 11 デベロッパー プレビュー 2 が公開されました。ぜひお試しのうえ、フィードバックをお寄せください

アプリのユーザー補助機能を強化する

Android アプリは、ユーザー補助機能を必要とするユーザーを含めて、誰もが利用できるようにすることを目指す必要があります。

視覚、色覚、または聴覚に障がいのある方、細かい作業に支障のある方、認知障がいのある方など、障がいのある多くの方々が Android デバイスを使って、普段の生活でさまざまな操作を行っています。ユーザー補助を念頭に置いてアプリを開発するには、特に上記やその他の補助が必要なユーザー向けに、アプリの便宜性を高めてください。

このドキュメントでは、誰もが簡単にアプリを使用できるように、ユーザー補助の重要な要素を実装するためのガイドラインを示します。アプリのユーザー補助機能を強化する方法について、さらに詳しいガイダンスとしては、アプリのユーザー補助機能の改善に関する原則のページをご覧ください。

テキストの視認性を高める

アプリ内の各テキストについて、色のコントラスト(テキストと背景の色の明るさの差)は、特定の基準値を超えるようにすることをおすすめします。厳密な基準値は、テキストのフォントサイズとテキストの表示が太字かどうかによって異なります。

  • テキストが 18 pt より小さい場合、またはテキストが太字で 14 pt より小さい場合、色のコントラスト比は 4.5:1 以上にする必要があります。
  • それ以外のテキストの場合、色のコントラスト比は 3.0:1 以上にする必要があります。

次の図に、テキストと背景の色のコントラストに関する例を 2 つ示します。

テキストを表示した画像
図 1. 推奨値より低い場合(左)と高い場合(右)の色のコントラスト

アプリ内でのテキストと背景の色のコントラストを確認するには、オンラインの色のコントラスト チェッカーを使用するか、ユーザー補助検証ツールを使用してください。

大きい、シンプルなコントロールを使用する

アプリの UI を使いやすくするには、見やすくてタップしやすいコントロールを設定します。操作対象の各 UI 要素には、少なくとも 48 dp x 48 dp のフォーカス可能領域(タップ ターゲット サイズ)を設定することをおすすめします。この領域が大きいほど使いやすくなります。

タップ ターゲット サイズが十分大きい UI 要素にするには、以下の条件を両方とも満たす必要があります。

パディング値を指定すると、オブジェクトの可視サイズが 48 dp x 48 dp より小さくても、推奨されるタップ ターゲット サイズにすることができます。

次のコード スニペットでは、推奨されるタップ ターゲット サイズの要素を示します。

    <ImageButton ...
        android:paddingLeft="4dp"
        android:minWidth="40dp"
        android:paddingRight="4dp"

        android:paddingTop="8dp"
        android:minHeight="32dp"
        android:paddingBottom="8dp" />
    

各 UI 要素について説明する

アプリの各 UI 要素には、要素の目的についての説明を含めることをおすすめします。通常は、次のコード スニペットに示すように、この説明を要素の contentDescription 属性に含めます。

    <!-- Use string resources for easier localization. -->
    <!-- The en-US value for the following string is "Inspect". -->
    <ImageView
        ...
        android:contentDescription="@string/inspect" />
    

アプリの UI 要素に説明を追加する際は、以下のおすすめの方法にご留意ください。

  • UI 要素のタイプはコンテンツの説明に含めないでください。スクリーン リーダーは要素の説明とタイプの両方を自動的に読み上げます。

    たとえば、アプリ内であるボタンを選択すると「送信」アクションが行われる場合、ボタンの説明は "Submit button"(送信ボタン)ではなく、"Submit"(送信)とします。

  • 各説明は固有のものにする必要があります。それにより、スクリーン リーダーのユーザーは、要素の説明が繰り返されたときに、今フォーカスされている要素が、前にもフーカスされた要素だと正しく認識できます。

    特に、RecyclerView のようなビューグループ内の各項目には、それぞれ異なる説明が必要です。たとえば、地域リスト内の都市名のように、各項目に固有の内容をそれぞれの説明に反映させる必要があります。

  • UI に装飾的効果を加えるだけのグラフィック要素がある場合、その説明は "@null" に設定します。アプリの minSdkVersion16 以上の場合は代わりに、こうしたグラフィック要素の android:importantForAccessibility 属性を "no" に設定できます。

参考情報

アプリのユーザー補助機能を強化する方法について詳しくは、以下の参考情報をご覧ください。

コードラボ

ブログ投稿