WWDC Quick Look 💓 By SwiftGGTeam
Create accessible Single App Mode experiences

Create accessible Single App Mode experiences

元の動画を見る

ハイライト

Apple のアクセシビリティ チームの Drew Haas が、デバイスを 1 つのアプリに制限する iOS/iPadOS のすべてのモードと、それらのモードでもアクセシビリティ機能を確実に利用できるようにする方法について説明します。


主要内容

Apple のアクセシビリティ チームの Drew Haas が、デバイスを 1 つのアプリに制限する iOS/iPadOS のすべてのモードと、これらのモードでもアクセシビリティ機能を確実に利用できるようにする方法について説明します。

コンテンツは 3 つの部分に分かれています。 ガイド付きアクセス (ユーザーが開始する補助機能のロック。認知障害のあるユーザーや子供に適しています)。 3 つのプログラムによるシングル アプリ モード (セルフサービス端末、検査、医療シナリオに適したシングル アプリ モード、自律的シングル アプリ モード、永続システム バナー モード)。シングルアプリモードでのバリアフリー API の使用。

ガイド付きアクセスは iOS に組み込まれたアクセシビリティ機能で、ユーザーは電源キーまたはサイド ボタンをトリプルクリックすることでアクセスできます。アプリは、特定の UI 要素のロック、ハードウェア ボタンの無効化、タッチ入力の制限などのカスタム制限をアクセスガイドに追加できます。

自動評価構成フレームワークを使用すると、教育用アプリケーションで、スペル チェックのオフ、オートコンプリートの無効化、辞書のロックなど、試験シナリオのシステム設定を自動的に構成できます。


詳細

ガイド付きアクセスのためのコグニティブ アクセシビリティ デザイン

(00:00) アクセスガイドは、認知障害のあるユーザー向けに特別に設計された iOS に組み込まれたアクセシビリティ機能です。ユーザーは、デバイスのサイド ボタンまたは電源ボタンをトリプルクリックして、ガイド付きアクセスに入ることができます。アプリがロック状態になると、ユーザーが誤ってホーム画面に戻ったり、他のアプリに切り替えたりすることができなくなります。

認知障害のあるユーザー、自閉症の子供、または集中的な学習が必要なシナリオに対して、アクセスガイドは安全なアプリケーション環境を提供します。アプリケーション開発者ができることは、UIAccessibilityインターフェイスにより、アクセスガイドにさらにきめ細かい制御が追加されます。

キーポイント:

  • ガイド付きアクセスは、MDM の関与を必要としないシステムレベルのアクセシビリティ機能です。
  • サイドボタンをトリプルクリックすることで、素早く出入りできます。
  • 教育や認知障害支援など、個人用デバイスの使用シナリオに適しています。
  • アプリは、アクセスガイド モードでインタラクティブでない領域を指定できます。

アクセスガイドにカスタム制限を追加する

(03:20) アプリケーションは合格できますUIAccessibilityカスタム制限を追加するためのガイド付きアクセス関連 API。最も一般的なアプローチは、ユーザーが迷いやすい UI 要素にマークを付けることです。

// Guided Access 中はアカウント設定ボタンを無効としてマークする
let settingsButton = UIButton()
settingsButton.isAccessibilityElement = true
settingsButton.accessibilityTraits = [.button, .notEnabled]

キーポイント:

  • accessibilityTraits含む.notEnabled, VoiceOver では、要素が使用できないことが通知されます。
  • アクセスガイドはこれらの特性設定を尊重し、対応する UI 要素をロックします。
  • アカウント設定、支払い情報のロック、ログアウトなどの危険な操作に適しています。

ガイド付きアクセス イベントの監視

(05:40) アプリケーションは、アクセスガイドに入るときのインターフェイスの簡素化や終了時の完全な機能の復元など、アクセスガイドの状態の変化を監視できます。

NotificationCenter.default.addObserver(
    self,
    selector: #selector(guidedAccessStatusChanged),
    name: UIAccessibility.guidedAccessStatusDidChangeNotification,
    object: nil
)

@objc func guidedAccessStatusChanged() {
    if UIAccessibility.isGuidedAccessEnabled {
        // Guided Access モードに入り、インターフェイスを簡素化
        simplifyInterface()
    } else {
        // Guided Access モードを終了し、完全な機能を復元
        restoreFullInterface()
    }
}

キーポイント:

  • UIAccessibility.isGuidedAccessEnabled現在アクセスガイド モードであるかどうかを問い合わせます。
  • guidedAccessStatusDidChangeNotificationステータスの変化を監視します。
  • アプリは、開始時に高度な機能を非表示にし、終了時にそれらを復元できます。

プログラムによるリクエストのガイド付きアクセス セッション

(07:15) アプリケーションは、試験、セルフサービス キオスク、その他のシナリオに適したアクセス ガイド モードへの移行を積極的に要求できます。ユーザーにはシステム確認ダイアログボックスが表示されます。

UIAccessibility.requestGuidedAccessSession(true) { success in
    if success {
        print("Guided Access が有効になりました")
    } else {
        print("ユーザーが拒否したか、デバイスがサポートしていません")
    }
}

キーポイント:

  • requestGuidedAccessSession(true)アクセスガイドへのアクセスをリクエストします。
  • requestGuidedAccessSession(false) は終了を要求します。
  • 完了ハンドラーは、リクエストが成功したかどうかを通知します。
  • ユーザーは引き続き手動でログアウトできます (サイド ボタンを 3 回クリックしてパスワードを入力します)。

Single App Mode vs Guided Access

(09:30) シングル アプリ モードは、デバイス管理サーバーによって制御される MDM 管理のロックダウン モードです。ガイド付きアクセスはユーザーによって開始される補助機能であり、MDM への参加は必要ありません。

Guided Access:
  - ユーザーが自発的に開始
  - 個人所有デバイスのシナリオ
  - アクセシビリティメニューまたはトリプルクリックで有効化
  - アプリ内のカスタム制限

Single App Mode:
  - MDM によるリモート制御
  - 企業/教育機関向けデバイスのシナリオ
  - 構成プロファイルで有効化
  - システムレベルのロックで、簡単には終了できない

キーポイント:

  • ガイド付きアクセスは、個人用デバイス、子供用モード、認知障害支援に適しています。
  • シングル アプリ モードは、企業機器、セルフサービス端末、教育試験に適しています。
  • ガイド付きアクセス ユーザーはいつでも終了できます。シングル アプリ モードでは MDM のロックを解除する必要があります。
  • どちらのモードでも、アクセシビリティ機能が利用可能であることを確認する必要があります。

Autonomous Single App Mode

(12:00) 自律シングルアプリ モードを使用すると、試験アプリが試験の開始を検出するなど、特定の条件下でアプリが自動的にシングルアプリ モードをリクエストできるようになります。これには、デバイスが監視モードであり、MDM が適切な権限を付与している必要があります。

デバイスの前提条件:
  - 監視モードのデバイス
  - MDM で AutonomousSingleAppMode 権限が構成済み
  - アプリが許可リストに含まれている

トリガーフロー:
  アプリが試験開始を検出

  Autonomous Single App Mode を要求

  システムがデバイスを現在のアプリに自動的にロック

  試験終了後、アプリが終了を要求

キーポイント:

  • AutonomousSingleAppModeこれはアプリ API ではなく、MDM 構成権限です。
  • 申請が通過しましたUIAccessibility.requestGuidedAccessSession聞く。
  • 前提条件が満たされると、システムは自動的にシングル アプリ モードを許可します。
  • 自動検査や医療機器などの無人シナリオに適しています。

Persistent System Banner Mode

(14:45) 永続システム バナー モードは、より穏やかなロック モードです。デバイスが管理されているにもかかわらず、ユーザーはログアウトできることをユーザーに通知するために永続的なバナーが表示されます。

Persistent System Banner Mode:
  - システムバナーの通知を表示
  - ユーザーによる手動終了を許可
  - 情報表示シナリオに適している
  - 通常のデバイス使用を妨げない

キーポイント:

  • シングル アプリ モードよりも優しく、デバイスを完全にロックしません。
  • 情報の表示、一時的な活動、デモンストレーションシーンに適しています。
  • ユーザーは、デバイスの通常の使用に影響を与えることなく、いつでも終了できます。
  • デバイスが監視モードである必要があります。

Automatic Assessment Configuration

(17:20) 自動評価構成 (AAC) フレームワークにより、教育用アプリは試験中にシステム設定を自動的に構成し、不正行為を助長する可能性のある機能をオフにすることができます。

import AutomaticAssessmentConfiguration

let configuration = AEAssessmentConfiguration()
configuration.spellCheck = .disabled
configuration.dictionaryLookup = .disabled
configuration.autoComplete = .disabled

let session = AEAssessmentSession(configuration: configuration)
session.begin { error in
    if let error = error {
        print("構成に失敗しました: \(error)")
    } else {
        print("試験モードが開始されました")
    }
}

キーポイント:

  • AEAssessmentConfiguration試験用のシステム設定を構成します。
  • スペルチェック、辞書検索、オートコンプリート、予測テキストを無効にする可能性。
  • AEAssessmentSession試験セッションのライフサイクルを管理します。
  • 試験後、システムは自動的に元の設定を復元します。

AAC のシステム構成オプション

(19:10) AAC フレームワークには、一般的な試験不正行為をカバーする複数のシステム構成オプションが用意されています。

configuration.spellCheck = .disabled           // スペルチェックを無効化
configuration.dictionaryLookup = .disabled     // 辞書検索を無効化
configuration.autoComplete = .disabled          // オートコンプリートを無効化
configuration.predictiveText = .disabled        // 予測テキストを無効化
configuration.grammarCheck = .disabled          // 文法チェックを無効化
configuration.correction = .disabled            // 自動修正を無効化
configuration.keyboards = .restricted            // キーボードの種類を制限

キーポイント:

  • それぞれconfigurationプロパティはシステム設定に対応します。
  • 試験後、システムはユーザーの元の設定を自動的に復元します。
  • 設定は現在のアプリケーション内でのみ有効になり、他のアプリケーションには影響しません。
  • オンライン試験、認定試験、教育評価シナリオに適しています。

シングルアプリモードのアクセシビリティ機能

(21:30) アクセスガイドとシングルアプリモードのどちらを使用している場合でも、アクセシビリティ機能が引き続き利用できることを確認してください。 VoiceOver、スイッチコントロール、ズームなどの機能は、ロックモードのために無効にしないでください。

ロックモード中も維持すべきアクセシビリティ機能:
  - VoiceOver (スクリーンリーダー)
  - Switch Control (スイッチコントロール)
  - Zoom (拡大)
  - Large Text (大きな文字)
  - Reduce Motion (視差効果を減らす)
  - AssistiveTouch (AssistiveTouch)

キーポイント:

  • ロックダウン モードでは、ユーザーが必要とするアクセシビリティ機能を無効にすべきではありません。
  • アプリはロック モードでアクセシビリティをテストする必要があります。
  • ユーザーは、VoiceOver を利用してアプリのインターフェイスを操作する場合があります。
  • スイッチ制御ユーザーは、すべてのキー機能を操作できる必要があります。

ロック モードでのアクセシビリティのテスト

(23:45) Apple は、実際のデバイスのロック モードでアクセシビリティをテストすることを推奨しています。 VoiceOver、スイッチ コントロール、ズームなどを有効にしてから、ガイド付きアクセス モードまたはシングル アプリ モードに入り、アプリがまだ利用可能であることを確認します。

テストチェックリスト:
  - VoiceOver を有効にし、すべての操作可能な要素にラベルがあることを確認する
  - スイッチコントロールを有効にし、フォーカス順序が妥当であることを確認する
  - ズームを有効にし、インターフェイスのレイアウトが崩れないことを確認する
  - 大きな文字を有効にし、テキストがあふれたり切り捨てられたりしないことを確認する
  - 視差効果を減らすを有効にし、重要なアニメーションが引き続きフィードバックを提供することを確認する

キーポイント:

  • 実際のデバイスでテストされているため、エミュレータは完全に一致していない可能性があります。
  • 各アクセシビリティ機能は個別にテストする必要があります。
  • アプリのコア機能がロック モードでもアクセスできることを確認します。
  • ロック モードを終了した後、回復プロセスをテストします。

重要ポイント

1. アクセスガイドのインターフェース簡素化戦略を設計する

  • 対処方法: ユーザーがアクセスガイドに入ると、複雑な機能と設定の入り口が自動的に非表示になり、コア機能のみが保持されます。
  • 価値がある理由: 認知障害を持つユーザーや子供は、簡素化されたインターフェイスで、道に迷ったり間違いを犯したりすることなく、より簡単にタスクを完了できます。
  • 開始方法: モニタリングguidedAccessStatusDidChangeNotification、入力時に詳細ボタンを非表示にし、終了時に復元します。

2. 自動評価構成を試験アプリケーションに統合する

  • 対処方法: 教育アプリでは、試験開始時にスペル チェック、辞書検索、オートコンプリートなどのシステム機能が自動的に無効になります。
  • 実行する価値がある理由: 試験環境の公平性と一貫性を確保しながら、システム機能を使用して学生の不正行為を防止します。
  • 開始方法: 作成するAEAssessmentConfiguration、関連オプションを無効にし、使用しますAEAssessmentSession試験セッションを開始します。

3. セルフサービス端末機器に自律シングルアプリモードを実装する

  • 内容: セルフサービス アプリは、アイドル状態または特定の状態を検出すると、自律シングル アプリ モードに入るように自動的に要求します。
  • 実行する価値がある理由: ユーザーが誤ってホーム画面に戻ったり、他のアプリケーションにアクセスしたりするのを防ぐために、無人デバイスは現在のアプリケーションに自動的にロックする必要があります。
  • 開始方法: デバイスが監視モードになっていて、MDM が許可されていることを確認してくださいAutonomousSingleAppMode許可、アプリケーションで呼び出されますrequestGuidedAccessSession

4. 見失いやすい UI 要素をアクセスガイドが無効なアイテムとしてマークします

  • 対処方法: アカウント設定、支払い情報、ログアウトなどの危険な操作を追加します。.notEnabled trait。
  • 実行する価値がある理由: 認知障害のあるユーザーや子供がアクセスガイド モードで誤操作を起こし、データ損失やセキュリティの問題が発生するのを防ぎます。
  • 開始方法: すべての危険なアクション ボタンを見つけます。accessibilityTraits追加する.notEnabled、アクセスガイドモードでテスト済み。

5. ロック モードでもアクセシビリティ機能を利用できるようにする

  • 対処方法: アプリが、VoiceOver、スイッチ コントロール、ガイド付きアクセスまたはシングル アプリ モードでのズームなどのアクセシビリティ機能を引き続きサポートしていることを確認してください。
  • 価値がある理由: ロックダウン モードのユーザーは多くの場合、アクセシビリティ機能に対するニーズが高いため、これらの機能を無効にするとアクセスに対する障壁が生じます。
  • 開始方法: デバイスでさまざまなユーザー補助機能を有効にし、ロックダウン モードに入り、アプリのすべての主要な機能に引き続きアクセスできることを確認します。

関連セッション

コメント

GitHub Issues · utterances