Androidアクセシビリティ デザイン編

アクセシビリティ向上でどう言う問題を解決したいか理解するために、基礎知識の編から読んでみてください🙇‍♀️

tahia.hatenablog.com

 

仕様確認の段階で問題を発見すれば、後で余計な苦労が避けれますので、

今回は、実装に入る前に確認すべきポイントを見てみましょう。

 

1. シンプルなレイアウト

 

a. 情報や機能の数を絞る

一つの画面にある情報を減らして、ユーザーの認知負担を出来るだけ軽くしましょう。

情報が多いと、ユーザーの集中力が途切れてしまいます。

でもユーザーはいつでもこちらのアプリを閉じて、別のアプリに乗り換えますので、

注目をなくすのが、アプリにとって一番望ましくないことです。

 

そして一つの画面にある機能の数も減らしましょう。

選択肢が多すぎると、ユーザーは混乱してしまいます。

最悪の場合、面倒くさがって、何も選ばなくなる可能性があります😧

 

伝えたい事・使って欲しい機能がたくさんあるでしょうが、

ユーザーに逃げられないように気をつけましょう。

 

b. コンテンツを細かく分ける

小さい部分で分けたら、目的が分かりやすくなって、

ユーザーに取って欲しいアクションも明確になります。

 

ほとんどの場合は「画面の最重要目的」を決めれば、自然な流れが作れます。

例えば、「リストのアイテムをタップしてもらう事」を最重要目的にすれば、自然にリストのアイテムに表示される情報やアイコンが減ります。

 

c. 一貫性を持たせる

自分のアプリのPC版との一貫性だけではなく、プラットフォーム(Android)が決めたルールにも従いましょう。

例えば、Androidの場合はダイアログの「キャンセル」ボタンが通常左に置いてありますので、自分のアプリだけあえて右にしましたら、ユーザーは間違いやすくなります。

 

嫌な思いをさせないように、同じ操作で他のアプリと同じ結果を提供したりして、

ユーザーの慣れたメンタルモデルから大きく離れないようにしましょう。

 

電話帳のアプリ。連絡先がリストで並べてる画面で一件を選択したら、連絡先の詳細が表示されます。

マテリアルデザインのカードビューの例を見ると、上記の3点を満たしています。

  • a. 情報や機能の数を絞る:リスト画面は最低限の情報しか持っていなくて、電話番号や住所は詳細画面で表示されます。
  • b. コンテンツを細かく分ける:「連絡先/コンタクトを選ぶ」を目的にして、その他の機能(名前の編集など)は詳細画面で行います。
  • c. 一貫性を持たせるフルスクリーンダイアログガイドラインに従って、戻るボタンを左上に置いてます。

 

2. 読みやすさ

 

a. 小さい文字を避ける

文字のサイズ基準は自分の視力に頼らず、ガイドラインに従いましょう。

原則最低12sp以上を保つように推薦されています。

 

b. システムのフォントサイズ(sp)を使う

システム全体のフォントサイズを拡大しないと読めない方もいますので、

「デザインが崩れるの嫌だからフォントサイズを固定する」のような考え方は、もうやめましょう🙅‍♀️

むしろ最初から拡大されることを想定したデザインで行きましょう!

 

完全に崩れないことは避けれませんが、改行とかでエレガントな崩れ方は出来ます。

 

c. コントラスト比を確認する

背景とテキストのコントラスト比を充分な値にしましょう。

同じテキストを比較できるように並べます。左側のテキスト色が薄いグレーになってて、見えにくくなってます。

左側のテキストは、人や状況にとって全く読めない可能性があります

こちらも参考にできるマテリアルデザインのガイドラインがあります:

18dp(boldの場合14dp)以上のテキストは3:1です。その他のテキスト、アイコン、画像は4.5:1です。

アイコンと画像もコントラスト比を配慮する必要がありますね

 

ちなみにArcticFox以上のAndroidStudioはコントラスト比の警告を出してくれます。

AndroidStudioのスクリーンショット。右下にコントラスト比の警告が表示されてます。使われてるテキストと背景の色も教えてくれて、修正方法(色の変更)も提案されてます。

AndroidStudioのコントラスト比警告

 

d. ダークテーマでのテストを忘れない

ダークテーマで、背景の色、テキストの色、アイコンの色など、全ての値が変わりますので、再度確認が必要になります。

(AndroidStudioの警告も頼れなくなります。。)

 

確認方法は、オンラインツールを使えます。

こちらは先程の読みにくいテキストの例です:

テキストの色を#F2F2F2、背景の色を#FFFFFFと入力されました。下にコントラスト比は「1.11:1」との結果が表示されてます。

テキストの色と、背景の色を入力したら、コントラスト比を教えてくれます

結果は「1.11:1」になりますから、ガイドラインの「3:1」以下ですね。

 

3. 複数の手がかり

a. 必ず2つ以上の手がかりで伝える

情報を伝える時に一つの手がかりしかなければ、認識されない可能性がありますので、

必ず2つ以上の手がかりを提供しましょう。

音、色、モーション、形など、方法はいくらでもあります。

 

下記にさまざまな状況で考えるために、具体的な例を用意しました🤔

 

例1:通知が来た事を知らせてくれる方法は、音だけでしたら、うるさい場所にいれば聞こえません。

こういう状況のために、バイブレーションも設定できるようになってます。

 

同じチェックアイコンが二つ並べてます。左は黒くて、右は緑になってます。

例2:色覚異常の方は、同じに見えてしまいます。。

例2:右側のアイコンがチェックされた状態を意味として、緑色に変更されてます。

しかし色覚異常の方は、その変更が分からない可能性があります。

上記と同じ緑色のチェックアイコンが二つ並べてます。左は丸い枠が付けられて、右は同じ丸い枠に沿ってアイコン内の背景も色付けられてます。

こんな風に色だけではなく、形も変えてみれば、色の違いが分からなくても、状態の変更が必ず伝わります✨

 

 

電話番号を入力するビューに「2021」が入力されてます。エラーになってることを知らせるように、枠が赤くなってて、右側に注意アイコンが表示されてます。

例3.1:画面が見れなければ、何が問題になっているか伝わりません。。

例3:こちらは入力内容にエラーがありますが、TalkBackを使う方は何が間違ってるか分かりません。

上記と同じ電話番号入力ビュー。枠が緑になってます。注意アイコンが表示されてません。

例3.2:色覚異常の方は赤を緑に見えてしまって、どの項目が間違ってるか分かりません。。

そして右側の注意アイコン(⚠️)がなければ、色覚異常の方はどの項目が問題になっているかと言うより、そもそもエラーになっている事さえ分かりません。

 

上記と同じ電話番号入力ビュー。枠が赤くなってて、注意アイコンも付けられてる他に、下に「有効な電話番号を入力してください」とエラーメッセージが表示されてます。

しかしちゃんとエラーメッセージもくっ付ければ、どの項目をどう修正して欲しいか必ず伝わります!一石二鳥ですね✨

 

b. アイコンとテキストをセットで使う

こちらの例はグーグル翻訳のデザイナーの方が記事で説明した話です。

グーグル翻訳の2つのスクリーンショット。左は入力するところの下にカメラ、マイク、落書き、3つアイコンがあります。右は同じアイコンの下にアイコンの用途(カメラ、音声、手書き)も書いてあります。

グーグル翻訳の例:左はテキスト無し、右はテキストあり

カメラで写真を撮って、その写真に映るテキストがリアルタイムで翻訳される機能を、

左側のように提供されていましたのに、あまり使われてなかったそうです。

むしろ、ユーザーにアンケートを出したら、「こんな機能あって欲しい」と何度も言われたそうです。

 

つまりアイコンだけで意味が伝わらなくて、機能の存在さえ知らなかったユーザーが多かったです😱

 

いろいろ試した結果、アイコンとテキストを一緒に使う右側のデザインが一番効果があったそうです。

 

c. テキストボタンは注意する

マテリアルデザインのボタンを見ると、3つの種類があります:

三つのボタンが並べてます。左は枠のないボタン、真ん中は枠のあるボタン、右は枠があって、アイコンもつけられて、そしてボタンの背景色を暗くしてます。

(左から)テキストボタン、アウトラインボタン、コンテインドボタン

枠のないテキストボタンは、ボタンである事、そしてタップできる事が認識しにくくなりますので、扱い方は気をつけましょう。

 

完全に「テキストボタンを使わない方が良い」と言うわけではないです。

例えばダイアログの「キャンセル」ボタンとしては問題ないです。

ただ、ユーザーに取って欲しいアクションとしては不適切でしょう。

 

(ちなみに右側のコンテンドボタンは、上記b.の説明通りに、アクションの意味をさらに分かりやすくするためにアイコンを付けてますね👀)

 

テキストボタンの正しい扱い方につきまして、この記事が詳しく説明してくれます:

coliss.com

 

4. タップのしやすさ

 

a. タッチ可能領域は充分なサイズにする

3つのアイコンが並べています。左にちょうど48dpのアイコンと、真ん中に24dpのアイコンと、右に36dpのアイコンがあります。真ん中と右のアイコンはpaddingを調整して、タッチ可能領域を広げてます。

マテリアルデザインの説明画像

ボタンを正確に押せない方のために、タッチ可能領域のサイズもちゃんと考えるべきです。

マテリアルデザインを参考にすれば、アイコン自体が必ず48x48dpのサイズではなくても大丈夫ですが、paddingとかを使って、タッチ可能領域を最小このサイズになるように広げましょう、との話です。

 

b. ボタンの間もスペースを空ける

間違って隣のボタンを押してしまう事で、ユーザーが嫌な思いをしないように、

ボタンの間はちゃんとスペースを置いて、操作しやすくしてあげましょう。

二つのボタンの間をピンクと色付けて、16dpがあることを明確にしています。

グーグルデザインの説明画像

グーグルデザインの記事によって、ボタンの間に16dpの距離を確保すると、日差しが強い状況や、タッチのレスポンスフィードバックが良くないデバイスでのユーザー体験が改善されるそうです。

 

5. ジェスチャーに頼らない

 

a. 別のやり方を用意する

最後に一番よく見る問題なので、ジェスチャーに頼るデザインについて考えましょう。

 

ある機能を一つのやり方でしか使えない場合、

しかもそれがスワイプとか、ジェスチャーになってる場合、

その機能を使えないユーザーがいると言う結果となります😵

 

例えば、リストのアイテムを削除するには、「右へスワイプ」と言う方法しかなければ、アイテムを削除出来ないユーザーもいるという意味になります。。

 

別のやり方も必要ですね。

ツイートみたいなアイテムがリストとして表示されてます。上のアイテムの右上のメニューボタンがタップされて、ドロップメニューが表示されてる状態です。ドロップメニューには削除アクションがあります。

今回の例はアイテムの右上にメニューボタンを置いて、ドロップメニューからアクションを提供すれば、ジェスチャーを使えないユーザーでも削除が出来るようになります。

 

b. 最初からインクルーシブなデザインにする

障害のある方も含めて、誰にでも使えるデザインにすれば、良い事尽くめです!

  1. みんなの体験が良くなる:公共トイレでよく見かける蛇口の自動センサーは、行動に困らない方にとっても便利でしょう。そして駅のエレベーターは階段を登れる方も使う事があると同様です。
  2. 自分を障害者だと認めたくない人が多い:特に一時的に怪我をした状況的障害者や、年寄りと呼ばれる一歩手前の年齢の方はこの傾向があるようでしょう。こちらのユーザー層は文字拡大などのアクセシビリティ補助ツールをあえて使いませんので、注意すべきです。
  3. 保守が難しくなる:機能が増えれば、デフォルトと、その他の体験の保守がどんどん難しくなります。エンジニアが泣きます。

是非デフォルトの体験から考え直して、インクルーシブなデザインにしましょう✊

 

 

 

以上、デザイン編でした。

もっと詳しく知りたければ、「デザイナー x エンジニア」の視点で書かれているこの記事がおすすめです:

engineers.fenrir-inc.com

 

次回はAndroidエンジニア向けのアクセシビリティ実装話を始めます。

 

ノシ