WWDC25:Evaluate your app for Accessibility Nutrition Labels

Accessibility Nutrition Labels の解説に加えて、アクセシビリティ機能のひとつひとつを説明。以前聴講したアクセシビリティLT会の内容を思い出した。

当事者でなければ障害により生じる困りごとや不便は想像がつかないもの、、かくいう筆者も左耳難聴。某オーディオメーカー大手の某MP3プレイヤーにモノラル再生がなく驚いた経験があるが、多くの人にとってはなぜその機能が必要かは、すぐには理解できないとも思う。

かたや自らの携わるアプリが、Dynamic Type に対応できているか、Voice Over で不自由なく操作できるか、と問われると耳が痛い。このセッションビデオでは、4分以上にわたって Voice Over によるアプリ操作が実演されており、それを眺めるだけでも大きな示唆が得られた。標準的なデザインシステムに則ることが、単に視覚的一貫性をもたらしているだけではなく、その標準性を頼りにせざるを得ないユーザーがいることを、意識から欠いてはいけない。

あるアクセシビリティの専門家が、アクセシビリティ対応ができていないことは「バグ」であると声を大にして言い続けていた。しかし実情は残念ながら、多くの開発現場では「アクセシビリティ対応」に優先的に工数を割くことはない。ただ開発者が常日頃、アクセシビリティの担保を念頭に実装することはできる(レイアウトの組み方やアクセシビリティラベルの付与)。

またいきなり完璧を目指さずとも、Principles of inclusive app design のセッションでも語られていたように、できていない現状を分析し、計画立てて段階的に解消していきたい。そういう意味で、Accessiblity Nutrition Labels の存在は対応状況を可視化し、他アプリとの比較を容易とするので、対応の取り組みを後押ししてくれそうである。


0:00 – Welcome

  • Accessibility のソフトウェアエンジニアとデザイナーによる、Accessibility Nutrition Labels の評価方法について紹介
  • アプリのアクセシビリティを App Store の商品ページでハイライトする方法
  • コアとなるアプリアクセシビリティの原則と、サポートできる機能の説明
  • VoiceOver, Voice Control でのテスト方法、アクセシブルなメディアの提供方法をカバー

0:58 – Meet Accessibility Nutrition Labels

  • 最高のテクノロジーは誰もが使えるものであるという信念
  • Accessibility を考慮したアプリデザインにより、より多くの人々にアプリを提供
  • Accessibility Nutrition Labels は App Store でアプリがサポートする機能を紹介
  • ユーザーが依存する重要な機能をサポートしているかを知ることができる
  • アプリの common tasks(主要機能)すべてをユーザーが実行できなくてはならない
    • 主要機能を定義する
      • ダウンロードしたきっかけとなる機能
      • それ以前に不可欠な機能(e.g. 初回起動、ログイン、購入、設定)
    • 基本タスクに対し Accessibility Nutrition Labels の機能ごとにアプリを評価する
    • 対応できている機能/できていない機能を特定する
  • アプリがサポートするすべてのデバイスでテストする必要がある
  • 機能がアプリの機能に関連しない場合は、サポートを示さない
  • 正確性を確保するため、Accessibility Nutrition Labels のドキュメントを参照

3:06 – Evaluate your app

  • アクセシビリティはデザインから始まる(Design for everyone)
  • アクセシビリティ機能について理解する(Learn accessibility features)
  • 障害者コミュニティとつながる(Connect with community)
    • 障害当事者によるテストが、アプリのアクセシビリティを知る上で重要
    • “Nothing about us withou us”(私たちのことを私たち抜きに決めないで)
  • Sufficient Contrast: 前景色と背景色の間に十分なコントラストが必要、Increase Contrast 設定でも確認
    • Light/Dark mode 両方で対応が必要
  • Dark Interface: 光に敏感な人や暗い背景を好む人のため、dark mode 設定をサポート
    • Smart Invert の有効時に、どのメディアの色も反転しないように
  • Larger Text: テキストサイズを少なくとも 200% 大きくできるように設計、Dynamic Type の使用を推奨
  • Differentiate Without Color Alone: 色だけでなく、形状、アイコン、テキストも使用して情報を伝達
  • Reduced Motion: めまいや吐き気を引き起こす可能性のあるアニメーションを特定し、変更または削除
    • ズーム、スライドトランジション、フラッシュ、点滅、自動再生アニメーション、視差エフェクト
    • Reduced Motion 設定をオンにして、上記アニメーションがないか確認
  • Voice Control: 音声コマンドでアプリのすべての部分とインタラクションできるようにする
    • ボタンタップ、スワイプジェスチャー、文字入力、といった操作がもれなくできるか確認
    • accessiblityLabel に設定されたボタン名をシステムがオーバーレイ表示、その名前が読み上げられたら Voice Control が操作してくれる(e.g. ボタン名)
  • VoiceOver: 画面を見ずにインターフェースをナビゲートできるようにする
    • 使い方:VoiceOver を有効にし、右スワイプしてボタンをひとつずつフォーカスしてみる(名前と要素タイプが読み上げ)
    • 指をドラッグして VoiceOver に読み上げさせ、画面のレイアウトを把握する
    • (VoiceOvevr で特定タスクの完遂を実演)
  • Captions: 動画や音声コンテンツにキャプションを提供
  • Audio Descriptions: 視覚コンテンツの説明を音声で提供
    • ADアイコン

21:44 – Indicate feature support

  • App Store Connect で商品ページに Accessibility Nutrition Labels を追加
  • アプリのアクセシビリティに関する追加詳細を提供するウェブサイトへのリンクも追加可能
  • サポートする機能を選択し、準備ができたら公開
  • 障害を持つ人々とパートナーシップを組み、VoiceOver, Voice Control などの機能の使い方を学ぶ
  • デザイン段階からアクセシビリティを考慮し、common tasks を通じて各機能をテスト
  • アプリのアクセシビリティサポートを Accessibility Nutrition Labels で紹介