優れたアクセシビリティラベルを作成する – WWDC2019

Session概要

優れたアクセシビリティラベルは、アプリがユーザに気に入られるか、削除されてしまうかの違いを生み出します。複雑なUIの操作方法や機能を説明するラベルによってアプリを簡単に万人向けする方法について https://developer.apple.com/videos/play/wwdc2019/254/

アクセシビリティラベルとは

  • アクセシビリティ要素を識別するローカライズされた配列
    • 目に障害がある方は、VoiceOverや画面読み上げ機能音声コントロールはアプリの操作に使用するが、機能させるにはアプリの要素にラベルをつける必要がある
    • アクセシビリティ要素の認識とは、アプリの要素にラベルを付け、コンテキストや意味を与えること

コンテキストを理解する

アクセシビリティラベルを付与するとしたらどのようなラベルが適切だろうか?
  • 例えば、上記のボタンにアクセシビリティラベルを付与する場合でも、コンテキストによって意味が異なるため、ラベルも同様に変える必要がある
    • ケース1では、ナビゲーションバーにボタンを設置し、画面内に1つだけであればアプリのコンテキストによって意味を理解できるようになる
      • 例えば、メモアプリだと新規メモの追加であることが予想されるため、ラベルは簡潔に「追加」のみで判断できそうです
    • ケース2では、リスト内に複数存在するため、単に「追加」だけでは「何を」の主語が抜け落ちわかりにくくなることが予想されます
  • アクセシビリティラベルを付与する際のポイント
    • アクセシビリティラベルは簡潔であるべき

ケース1: ボタンがナビゲーションバーにある場合
ケース2: ボタンがリストの中にあり、複数ある場合

ベストプラクティス

  • 大切なのは、アプリにラベルを加えることは必ず必要
    • ラベルが無いとコンポーネントを読み上げることになる
    • 例えば、UIButtonでだと「ボタン」となる
    • ラベルがなく、ボタン内に画像が含まれている場合は、画像のファイル名を読み上げることになる
  • VoiceOverはViewの要素タイプを認識済みのため、ラベルに「ボタン」や「タブ」と記述する必要はない
    • 例えば、UIButtonのアクセシビリティラベルに「追加ボタン」と付与するとVoiceOverは「追加ボタンボタン」と読み上げてしまう
  • 同じアクションを示すボタンが複数ある場合は、コンテキストを加える
  • アプリのコンテキストを考慮し、冗長なラベルは避ける
  • スピナーのようなアニメーションにラベルを付与すると、VoiceOverはアプリの状態を伝えるため、重要
  • ラベルに多くの情報を載せるのは避ける
    • 長いラベルが常に良くないわけではなく、ふさわしい状況で使用すれば面白いアプリいなり人々の記憶に残せる
  • 実際にVoiceOverで聞いてラベルが適切か確認する

UIコンポーネントのタイプ名をラベルに含めないようにする
同じボタンが複数ある場合はコンテキストを追加する
アプリのコンテキストを考慮して冗長なラベルは避ける
長いラベルでも魅力的なケース
最新情報をチェックしよう!