先日の Recap イベントにて、LTのひとつで取り上げられていた Assistive Access。発表者の方とお話しし、超高齢化社会を迎えるこれからの日本でこそ有用な機能であると伺いなるほどと思った。Dynamic Type を使って文字を拡大して使われている方は多いが、一定大きくなると表示との整合性を取ることが難しくなる。一定以上の文字サイズ設定のレイアウトを Assistive Access と分離すると良いかもしれない。
0:00 – Welcome
- Assistive Access は Apple が iOS と iPadOS で提供する 認知障害のある人向けのシンプルな体験
- アプリやコントロールを本質に絞り込み 誰でも簡単かつ自立してデバイスを操作できるように設計されている
- iOS と iPadOS 26 では Assistive Access scene type を使ってアプリをこの体験に統合できる
0:59 – Meet Assistive Access
- Assistive Access は iOS と iPadOS 17 で導入された
- 認知負荷を減らすために シンプルなインターフェースと一貫したデザインを提供
- Camera や Messages などのビルトインアプリは 大きなコントロールや視覚的な要素を重視した共通スタイルを持つ
- 最適化されていないアプリは 画面下部に常に表示される戻るボタンのために縮小フレームで表示される
- 認知障害向けに設計されたアプリは UISupportsFullScreenInAssistiveAccess キーを Info.plist で true に設定することでフルスクリーン表示が可能
- SwiftUI や UIKit で Assistive Access セッションの検出も可能
- フルスクリーン対応アプリは Accessibility 設定の Optimized Apps リストに表示される
- 一般的なアプリは iOS と iPadOS 26 で Assistive Access scene を作成し 専用の UI 体験を提供できる
4:09 – Create a scene
- UISupportsAssistiveAccess キーを Info.plist に true で追加し Optimized Apps に表示されるようにする
- Assistive Access scene を追加し シンプルな UI 階層を設計
- Assistive Access で起動時 この scene がアタッチされる
- SwiftUI コントロールは自動的に大きく明確なスタイルで表示され grid や row レイアウトも自動適用
- SwiftUI preview macro で Assistive Access trait を渡してレイアウトをテスト可能
- UIKit アプリでも SwiftUI scene を定義し scene delegate でアクティブ化できる
7:08 – Tailor your app
- アプリの体験を本質に絞り込み 理解しやすくサポート的な UI を設計することが重要
- 主要な1〜2機能に絞り 他の機能は Assistive Access 外で提供する
- 画面上の選択肢や要素を減らし 誤操作や混乱を防ぐ
- 隠れたジェスチャやネストした UI は避け 明確で目立つコントロールを使う
- タイムアウトによる UI の自動消失や状態変化は避ける
- ステップバイステップのガイドフローを設計し 一度に多くの選択肢を提示しない
- 取り消しや削除など回復困難な操作は極力排除し 必要な場合は二重確認を行う
- テキストだけでなく アイコンや画像など視覚的な情報も併用する
- SwiftUI の assistive access navigation icon modifiers でナビゲーションタイトルにアイコンを追加
- ユーザーからのフィードバックを重視し Assistive Access コミュニティでテストを行う