Join Kevin Favro for an in-depth discussion in this video What is Accessibility?, part of iOS App Development: Accessibility.
- [Instructor] Quite simply, accessibility is the ability to access products, services, or environments in the physical and digital world. Accessible design means to make things usable for everyone regardless of their ability. Our physical world is made more accessible by things like designated parking spaces, ramps, and crosswalks that speak to you. Likewise, our digital world is made more accessible by assisted technologies such as screen readers, voice dictation, and closed captioning.
Just like we design our apps to provide consistent experiences across different screen sizes, resolutions, and orientations, we should also aim to provide consistent experiences for people with varying levels of abilities. Depending on the type of app you're working on, accessibility might be required by law or for compliance reasons. Even if that's not the case, I'd argue that designing for accessibility is still important because it respects all users and gives everyone equal access. Designing for accessibility is also good for business as it allows us to attract new users and increase our potential user base.
The good news is that it's all fairly easy. iOS was built to be fully accessible by everyone and shifts with technology to help users overcome many disabilities they might experience. Apple identifies four main classes of ability. Vision, which encompasses blindness and partial vision loss. Hearing, which covers hearing loss of various gradations. Physical and motor skills, which encompasses things like Parkinson's and multiple sclerosis, which affect a user's ability to push with force on a screen or accurately tap targets.
Learning and literacy, which includes things like dyslexia and autism. On iOS, accessibility is a thin layer that sits between a user and their device. It works by helping transform a user's input into something more appropriate for their device while transforming the device's output into something more appropriate for the user. For example, if a user is unable to press the Home button with their finger, switch control can use the front-facing camera to detect a left head movement and virtually press the Home button for the user.
If a user can't see the screen, voiceover can read all elements on screen so the user can understand what they can do within the app. iOS's accessibility features can also help people with less severe disabilities. A sighted user with poor vision can request larger, bolder fonts and users with motion sensitivities can reduce the amount of movement used in animations and transitions. Fortunately, Apple has already done most of the heavy lifting. Apple exposes UI Accessibility, an informal protocol that standard UIKit controls and views adopt.
This means that if you're using standard controls and views like UIButton, UITableView, and UISegmentedControl, your app will likely be 80 to 90% accessible already and it will be simple to make it fully accessible. When designing a new mobile app, you'll want to think about accessibility from the beginning. If you already have an app, you'll want to perform an accessibility audit so you can find and fix any problems that may prevent someone from fully experiencing your app. Ultimately, we want to ensure everyone can navigate, explore, operate, and enjoy the apps we build.
In this course, explore the different accessibility technologies that are built into iOS, and learn how to build apps that all users can access. Follow Kevin Favro as he explains how to audit your app for accessibility problems, and explores various iOS technologies—including VoiceOver, a screen reader that lets you use phone even if you don't see the screen—and other considerations that might prevent someone from effectively using your app.
- Reviewing the accessibility features in iOS
- Exploring accessibility settings
- Working with VoiceOver
- Exploring Switch Control
- Using the Accessibility Inspector
- Using VoiceOver to audit your app
- Reviewing Dynamic Type
- Reducing transparency
- Reducing motion
- Setting bold fonts and darker colors
- Understanding how elements are opted into the accessibility system
- Making custom objects accessible
- Working with the VoiceOver rotor
- Working with Guided Access