View in English

  • 메뉴 열기 메뉴 닫기
  • Apple Developer
검색
검색 닫기
  • Apple Developer
  • 뉴스
  • 둘러보기
  • 디자인
  • 개발
  • 배포
  • 지원
  • 계정
페이지에서만 검색

빠른 링크

5 빠른 링크

비디오

메뉴 열기 메뉴 닫기
  • 컬렉션
  • 주제
  • 전체 비디오
  • 소개

WWDC25 컬렉션으로 돌아가기

스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.

  • 소개
  • 요약
  • 자막 전문
  • 코드
  • 보조 접근을 위해 앱 사용자 정의하기

    보조 접근은 인지 장애가 있는 사용자가 iPhone 및 iPad를 독립적으로 사용할 수 있도록 지원하는데 초점을 맞춘 독창적인 iOS 경험입니다. iOS 및 iPadOS 26에서는 보조 접근에서 실행중인 앱을 사용자 정의하여 사용자가 더욱 손쉽고 독립적으로 앱을 사용할 수 있도록 도울 수 있습니다. AssistiveAccess SwiftUI 장면 유형을 사용하여 앱을 맞춤 설정하는 방법을 알아보고 모두를 위한 고품질 보조 접근 경험을 조성하는 데 도움이 되는 핵심 디자인 원칙에 대해 알아보세요.

    챕터

    • 0:00 - Welcome
    • 0:59 - Meet Assistive Access
    • 4:09 - Create a scene
    • 7:08 - Tailor your app

    리소스

    • AssistiveAccess
    • Human Interface Guidelines: Accessibility
    • UISupportsFullScreenInAssistiveAccess
      • HD 비디오
      • SD 비디오

    관련 비디오

    WWDC25

    • SwiftUI의 새로운 기능

    WWDC23

    • Assistive Access 알아보기
  • 비디오 검색…

    Hi everyone. My name is Anne, and I’m a member of the Accessibility team at Apple. Today, I’m excited to talk all about Assitive Access, Apple’s streamlined iOS and iPadOS experience designed for people with cognitive disabilities. Assistive Access reimagines how people interact with their devices by distilling apps and controls to their essence. This clarified experience ensures everyone can navigate their devices with ease and independence. In iOS and iPadOS 26, your app has the opportunity to seamlessly integrate with this experience through the Assistive Access scene type.

    Today you’ll learn how to build a great experience for your app in Assistive Access.

    I’ll share how to create an Assistive Access scene with SwiftUI as well as the principles to keep in mind as you tailor your app further.

    First, I’ll get started with a refresher on Assistive Access.

    Apple introduced Assistive Access in iOS and iPadOS 17.

    This streamlined system experience is designed specifically for people with cognitive disabilities. It seeks to reduce cognitive load by providing apps and interfaces with streamlined interactions, clear pathways to success, and consistent design practices.

    If you’re new to Assistive Access, check out the session Meet Assistive Access to learn more.

    Assistive Access supports several distilled built-in apps, Camera and Messages, shown here.

    These apps share a common style: they have large controls, streamlined interfaces, and visual alternatives to text.

    In establishing a clear and focused design language in Assistive Access, these apps reduce the cognitive strain that is required when interacting with new and varied UI. The design is consistent, so the expectations are consistent.

    By default, apps not optimized for Assistive Access are displayed in a reduced frame. This is to make room for the back button, which is always shown along the bottom of the device. The back button navigates from the app to the Home Screen.

    For those of you with apps already designed for people with cognitive disabilities, you may want to bring your app as is to Assistive Access. A great example of this is if you support an Augmentative and Alternative Communication app, also known as an AAC app. If, like an AAC app, your app is designed for cognitive disabilities and you want to bring the same layout and the same experience to Assistive Access, then your app is ready to take advantage of full screen. To display your app in full screen, set the UISupportsFullScreenInAssistiveAccess key to true in your app’s Info.plist. Your app’s appearance will be the same as when Assistive Access is turned off, with the exception that it will fill the full dimensions of the screen rather than displaying in a reduced frame. If you need to make runtime variations, use the SwiftUI and UIKit support to detect if an Assistive Access session is active.

    Apps that adopt full screen in Assistive Access are displayed under the Optimized Apps list in Accessibility Settings.

    If your app isn’t designed for cognitive disabilities, get started with support in iOS and iPadOS 26 to create an Assistive Access scene With this scene type, you’ll provide a tailored experience, where controls are automatically displayed in the familiar and prominent style of built-in apps like Camera and Messages. This differs from full screen support, where your app is unchanged aside from the screen dimensions.

    If you’re unsure which path to take, opt for the scene to take advantage of all that iOS and iPadOS 26 have to offer for Assistive Access. I’ll demonstrate how this scene type elevates your app in Assistive Access. Assistive Access apps share a design that focuses on clarity. And this clarity starts with the unique way native controls are displayed when Assistive Access is turned on.

    With the scene type, your app is shown in the larger, clearer control style that matches the existing experience. This familiar design helps people with cognitive disabilities get the most out of your app. To set up your app for Assistive Access, First set the UISupportsAssistiveAccess Info.plist key to true in your app bundle.

    This ensures your app is listed under Optimized Apps in Assistive Access Settings.

    Your app will also launch in full screen, instead of the default reduced frame.

    Next, adopt the Assistive Access scene and create your streamlined app experience. I’ll put this into practice.

    I’ll update an app that I’ve been working on. This drawing app lets me sketch on a canvas, sort my drawings into folders and favorites, and use a range of editing tools to create fun and engaging illustrations.

    My app is using the SwiftUI lifecycle. I have 1 scene, which is a window group that declares my main content view.

    After setting UISupportsAssistiveAccess to true in my app’s Info.plist, I’ll add the AssistiveAccess scene to my app. Within the Assistive Access scene, I create a new content view with the custom hierarchy I’m designing for Assistive Access. This new content view will host my streamlined, lighterweight app experience.

    When the app is launched in Assistive Access, this scene is created and attached.

    When a scene is active, an app’s native SwiftUI controls are displayed in the distinctive Assistive Access design Buttons, lists, and navigation titles are all shown in a more prominent style with no additional work Controls also automatically adhere to the grid or row screen layout, which is configured in Assistive Access settings.

    To test how your app is laid out when the scene is active, pass the assitive access trait to the SwiftUI preview macro.

    For UIKit apps, you can achieve something similar with support in iOS and iPadOS 26 to define and activate SwiftUI scenes in UIKit-lifecycle apps. Declare the AssistiveAccess SwiftUI scene from UIKit in the static rootScene property of your scene delegate class. To activate the scene, scene delegate class configured to host the Assistive Access scene from your app delegate.

    For more information on scene bridging, check out this year’s session on What’s New in SwiftUI Assistive Access is built around simplified and easy to use interactions. Now that your app is set up for Assistive Access, bring this focus to your app content.

    I’ll go over a few guiding principles to help focus your app’s content for Assistive Access. When thinking about this experience, distill your app to the essentials. Consider how to build understandable, supportive pathways that are safe from disruptive changes and convey information in multiple ways.

    Start with identifying the core functionality of your app. Ask yourself what one or two features are most important to support in your app, and bring these to Assistive Access. It may seem counterintuitive to remove functionality, but fewer options reduce distractions and lighten the overall cognitive load.

    When in doubt, keep the Assistive Access experience streamlined and focused. For my app, I’ll bring two features to Assistive Access: the ability to sketch on a canvas, and the ability to view those drawings. These will be the ONLY UI elements in my app’s root view.

    I’ll save the other functionality that my app provides, like marking favorites or editing sketches, For outside of Assistive Access to keep the experience focused.

    Here is the redesigned root view of my app. I’ve implemented the two features I identified: Draw And Gallery These two features are represented as a list of navigation links. Since the Assistive Access scene is active, the links automatically conform to the preferred grid or row layout style.

    When I navigate into a view, the Assistive Access back button traverses back up the app’s navigation stack with no additional work.

    Already, my app is more focused. The only UI elements onscreen are the app’s essential features, and the UI is displayed in a familiar Assistive Access style. I also present two clear pathways: draw, or gallery. Fewer options correspond to streamlined choices, and streamlined choices increase the likelihood of success when someone is exploring the app. After deciding how best to distill your app experience, you may still want to add some level of customization. I’ll go through how to add to your features in Assistive Access. When approaching Assistive Access, remember the aim is to reduce cognitive strain.

    While rich features and customization add to your app’s level of completeness, a large amount of content on the screen may prove challenging for people with cognitive disabilities. Reduce the number of options shown at any given time to focus decisions. This applies both to the number of onscreen elements, as well as the purpose of the view.

    Reducing options removes distractions when navigating in your app. Too many options may prove overwhelming and add to cognitive load. Next, make sure presented controls are clearly visible. Avoid hidden gestures or nested UI. These types of interactions may be less discoverable to a person with cognitive disabilities.

    Instead, use prominent controls that are clearly visible.

    People will navigate your app at different speeds. To make sure everyone can complete tasks at their own pace, avoid timed interactions.

    Redesign experiences where UI or views disappear or change state automatically after a timeout. Give people the time they need to be successful in your app.

    In Assistive Access, design experiences that guide a person through a selection process. Build an incremental, step by step flow, rather than presenting multiple options at once. Lead your audience in a reasonable number of steps, avoiding lengthy setup processes that detract from the experience.

    Note to add customization that builds slowly and deliberately, you may need to reorder where certain decisions are made. The aim to is ensure decisions are processed separately, which in turn reduces cognitive strain and leads to a more pleasant app experience. There are some important actions that may be difficult to recover from, like deleting a photo. Consider removing this functionality entirely, or if you do plan to implement more permanent actions like deletion, ask twice for confirmation where appropriate. The goal is to make sure that people don’t end up in a situation that they didn’t intend.

    You’ve learned best practices to build great interactions in Assistive Access, such as reducing the presented options, supporting prominent UI, and avoiding timed interactions. You’ve also learned to build incremental, guided flows and to reconsider how and where destructive actions are implemented. I’ll apply these same design guidelines to my app.

    I’m adding support to draw with color in my app’s Assistive Access experience. Outside of Assistive Access, a stroke color is selected with the color picker.

    Some Assistive Access apps may benefit from color picker options like opacity, but for my app, I only need color. this is one experience I’ll tailor.

    In the spirit of reducing options, I’ve designed a dedicated color selection view for my app in Assistive Access. It distills the color picker to a single decision: the stroke color. It also reduces the number of colors presented to a select few. To draw with a color, simply tap it.

    I’ve added this view in between the option to Draw and entering the Canvas.

    This provides a step by step approach that guarantees everyone using the app arrives at the Canvas with a color selected. Note this ordering differs from the color picker implementation, where color selection happens as an option within the canvas. Instead, I isolate the decision to pick a color to a single view that is always presented on the way to the canvas. in my own app, I’ve also removed functionality that could be confusing or difficult to undo. In the canvas view, my app doesn’t support the option to undo a stroke.

    In the gallery, there is no option to delete a drawing.

    These decisions were made to create a safe and supportive environment that removes the risk of someone performing an action that they didn’t intend to do in the app. A key aspect of Assistive Access is intuitive and understandable design. For some people with cognitive disabilities, mages and icons are more understandable than text alone. This means information should be presented in multiple ways. Rather than relying on text alone, provide visual alternatives to convey meaning when your app is running in Assistive Access.

    when implementing controls like buttons and navigation links, include both an icon and a label.

    In Assistive Access, visual design applies to navigation titles too as icons are supported in the navigation bar.

    implement this in your own app with the assistive access navigation icon modifiers pass an image or the name of a system Image to display alongside a navigation title when an Assistive Access scene is active. Make sure all of your navigation titles have an accompanying icon.

    now that you’ve learned how to design for people with cognitive disabilities, adopt the SwiftUI scene and bring your app to Assistive Access. Go through the design exercises discussed in this session with your own app, keeping in mind the goal to refine and focus the experience you support in Assistive Access. And remember, the best source of feedback is from your audience: find opportunities to test within the Assistive Access community.

    Thanks for watching, and thanks for making sure your app is designed for everyone.

    • 5:21 - Create a scene for Assistive Access

      // Create a scene for Assistive Access
      
      import SwiftUI
      import SwiftData
      
      @main
      struct WWDCDrawApp: App {
        var body: some Scene {
          WindowGroup {
            ContentView()
              .modelContainer(for: [DrawingModel.self])
          }
          AssistiveAccess {
            AssistiveAccessContentView()
                .modelContainer(for: [DrawingModel.self])
          }
        }
      }
    • 6:25 - Display an Assistive Access preview

      // Display an Assistive Access preview
      
      import SwiftUI
      
      struct AssistiveAccessContentView: View {
        @Environment(\.modelContext) var context
        var body: some View {
          VStack {
            Image(systemName: "globe")
              .imageScale(.large)
              .foregroundStyle(.tint)
            Text("Hello, world!")
          }
          .padding()
        }
      }
      
      #Preview(traits: .assistiveAccess)
          AssistiveAccessContentView()
      }
    • 6:35 - Declare a SwiftUI scene with UIKit

      // Declare a SwiftUI scene with UIKit
      
      import UIKit
      import SwiftUI
      
      class AssistiveAccessSceneDelegate: UIHostingSceneDelegate {
      
        static var rootScene: some Scene {
          AssistiveAccess {
            AssistiveAccessContentView()
          }
        }
          
          /* ... */
      }
    • 6:55 - Activate a SwiftUI scene with UIKit

      // Activate a SwiftUI scene with UIKit
      
      import UIKit
      
      @main
      class AppDelegate: UIApplicationDelegate {
        func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
          let role = connectingSceneSession.role
          let sceneConfiguration = UISceneConfiguration(name: nil, sessionRole: role)
          if role == .windowAssistiveAccessApplication {
            sceneConfiguration.delegateClass = AssistiveAccessSceneDelegate.self
          }
          return sceneConfiguration
        }
      }
    • 14:36 - Display an icon alongside a navigation title

      // Display an icon alongside a navigation title
      
      import SwiftUI
      
      struct ColorSelectionView: View {
        var body: some View {
          Group {
            List {
              ForEach(ColorMode.allCases) { color in
                NavigationLink(destination: DrawingView(color: color)) {
                  ColorThumbnail(color: color)
                }
              }
            }
            .navigationTitle("Draw")
            .assistiveAccessNavigationIcon(systemImage: "hand.draw.fill")
          }
        }
      }
    • 0:00 - Welcome
    • iOS and iPadOS 17 introduced Assistive Access, an accessibility feature which streamlines the system experience for people with cognitive disabilities. You can integrate your apps using the Assistive Access scene type in SwiftUI, following design principles to create a great experience for this audience.

    • 0:59 - Meet Assistive Access
    • Apple introduced Assistive Access in iOS and iPadOS 17, a feature designed to simplify the system experience for users with cognitive disabilities. The feature offers streamlined interactions, clear pathways, and consistent design practices across a few distilled built-in apps like Camera and Messages, which have large controls and visual alternatives to text. Apps not optimized for Assistive Access are displayed in a reduced frame with a persistent back button. If you develop an app already designed for cognitive disabilities, you can enable full-screen mode for it within Assistive Access. For non-optimized apps, support is available in iOS and iPadOS 17, allowing you to create tailored experiences with automatically displayed controls in a familiar style.

    • 4:09 - Create a scene
    • In Assistive Access, apps are designed with clarity in mind, using a larger, clearer control style for native controls. To enable this, set a specific key in the app bundle to true, which lists the app as optimized and launches it in full screen. You then create a separate Assistive Access scene within your app, which presents a streamlined and lightweight version of the interface. This scene automatically displays native controls in a more prominent, grid- or row-based style. For SwiftUI apps, this is achieved by adding your customized view hierarchy within the Assistive Access scene. UIKit apps can also support this feature by defining and activating SwiftUI scenes using the new bridging support in iOS and iPadOS 26.

    • 7:08 - Tailor your app
    • To optimize an app for Assistive Access, distill the app to its core functionality, focusing on one or two essential features. This streamlined approach reduces distractions and cognitive load. Design the app's interface with clear, prominent controls, and avoid hidden gestures or timed interactions. Present information in multiple ways, such as using icons and labels alongside text. Make navigation intuitive and step-by-step, with back buttons automatically conforming to the preferred layout style. Remove irreversible actions, or provide multiple confirmations for such actions. By following these guidelines, you can create a safe and supportive experience for people using Assistive Access.

Developer Footer

  • 비디오
  • WWDC25
  • 보조 접근을 위해 앱 사용자 정의하기
  • 메뉴 열기 메뉴 닫기
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    메뉴 열기 메뉴 닫기
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    메뉴 열기 메뉴 닫기
    • 손쉬운 사용
    • 액세서리
    • 앱 확장 프로그램
    • App Store
    • 오디오 및 비디오(영문)
    • 증강 현실
    • 디자인
    • 배포
    • 교육
    • 서체(영문)
    • 게임
    • 건강 및 피트니스
    • 앱 내 구입
    • 현지화
    • 지도 및 위치
    • 머신 러닝
    • 오픈 소스(영문)
    • 보안
    • Safari 및 웹(영문)
    메뉴 열기 메뉴 닫기
    • 문서(영문)
    • 튜토리얼
    • 다운로드(영문)
    • 포럼(영문)
    • 비디오
    메뉴 열기 메뉴 닫기
    • 지원 문서
    • 문의하기
    • 버그 보고
    • 시스템 상태(영문)
    메뉴 열기 메뉴 닫기
    • Apple Developer
    • App Store Connect
    • 인증서, 식별자 및 프로파일(영문)
    • 피드백 지원
    메뉴 열기 메뉴 닫기
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(영문)
    • News Partner Program(영문)
    • Video Partner Program(영문)
    • Security Bounty Program(영문)
    • Security Research Device Program(영문)
    메뉴 열기 메뉴 닫기
    • Apple과의 만남
    • Apple Developer Center
    • App Store 어워드(영문)
    • Apple 디자인 어워드
    • Apple Developer Academy(영문)
    • WWDC
    Apple Developer 앱 받기
    Copyright © 2025 Apple Inc. 모든 권리 보유.
    약관 개인정보 처리방침 계약 및 지침