Make it Accessible

Creating applications that are truly for everyone

App development is a continuously evolving field, and ensuring accessibility for all users is a crucial aspect of it. It's a testament to a developer's unwavering dedication to providing a digital experience in which every user, regardless of their cognitive or physical abilities, can participate, engage, and enjoy.

Apple has consistently prioritized accessibility as an integral part of its ecosystem, having as a core value creating products that can be used by everyone. The harmonious blend of innovative hardware and meticulous design ensures that Apple's products and platforms are not just for the many but for everyone.

As developers for the Apple ecosystem, adopting accessibility is more than following guidelines, it's about creating a world where every interaction is inspiring, intuitive and inclusive.

The Accessibility Domains

Accessibility is not a single and uniform concept but rather a spectrum that refers to a wide variety of unique user needs and experiences. Each dimension has its value, reflecting the different challenges and barriers that individuals may encounter in their interaction with digital products.

On their portal about accessibility, Apple categorizes the accessible features provided within their products into five domains. We can describe them as:

  • Visual Accessibility
    Refers to individuals with blindness, low vision or color blindness. It ensures that user interfaces are perceivable through features such as screen readers, high-contrast modes, and adaptable font sizes.
  • Auditory Accessibility
    Refers to the deaf or hard-of-hearing community. Content should remain accessible through tools such as closed captioning, visual cues, and transcription services.
  • Speech Accessibility
    Refers to users with speech impediments or disorders, focusing on technologies that can interpret various speech patterns and alternative communication methods.
  • Motor or Physical Accessibility
    Refers to users with diverse motor abilities, ensuring that applications and websites can be navigated without relying on precise gestures or actions. Essential features such as voice commands, adaptive hardware, and extended touch targets are often integrated.
  • Cognitive Accessibility
    Refers to individuals who face challenges with learning disabilities, attention disorders, and other cognitive impairments. It emphasizes intuitive design, consistent layouts, and avoiding overstimulating animations or content.

By understanding and respecting each of these accessibility dimensions, developers and designers can create products that resonate deeply with a broader range of users. This ensures that the digital world is not just expansive but empathetic. Embracing the full spectrum of accessibility paints a picture of a world where technology truly serves everyone, in every unique way they experience it.

Accessibility Matters

Accessibility is not only an ethical obligation, but also a crucial aspect of the global economy that developers and businesses should take into account.

  • According to the World Health Organization, more than one billion people worldwide, which is roughly 16% of the global population, have some form of disability. (World Health Organization, 2023)
  • In America, the Centers for Disease Control and Prevention cites that 1 in 4 adults live with a disability. (CDC, 2023)
  • In Europe, the estimate by the European Disability Forum reveals that around 100 million people with disabilities reside in the European Union, accounting for about 20% of the total European population. (European Disability Forum)

By embracing accessibility, you can align with a global and inclusive vision, tap into untapped markets, and establish your brand's image as genuinely universal.

It is becoming increasingly clear that accessibility has become more important than ever. It's not just a matter of knowing why it matters, but also how to make sure digital content and apps are inclusive for everyone.

In a world where digital services are fundamental to our everyday lives, recognizing equal access as a basic human right has prompted a surge in the adoption of comprehensive accessibility regulations and guidelines, a crucial step by governments toward securing an equitable and inclusive digital landscape.

Exploring accessibility regulations and guidelines
Explore the world of accessibility laws, regulations, guidelines, legal aspects, and the profound impact they have on shaping a more inclusive technological future.

Fortunately, Apple has made this process easier than ever before especially with the introduction of SwiftUI. By incorporating built-in features and applying design principles and approaches oriented to make app development simpler and faster, developers and designers can seamlessly create digital experiences that are both elegant and inclusive.

We will guide you through the steps to harness both UIKit and SwiftUI's capabilities and ensure that no one is left behind in the digital landscape.

What is accessibility in apps?

To navigate the complexity of Accessibility and accessibility in the Apple ecosystem, it is crucial to have a robust foundational understanding of its core and fundamental principles.

This section aims to provide solid groundwork around app development with a concentrated focus on accessibility, laying down the framework for inclusive technological advancements.

Your first step is understanding how SwiftUI and UIKit create an accessible representation of your app to make it usable by assistive technologies.

Understanding the Accessible User Interface
Understand the Accessible User Interface on applications created with UIKit and SwiftUI.

Visual Accessibility

Color

When it comes to making an application visually accessible, there are several elements to take into consideration. One of the most important ones is color choices, which can significantly impact the user experience.

It is crucial to ensure that there is sufficient contrast between the text and the background, particularly for users with vision or color vision impairments. The Web Content Accessibility Guidelines (WCAG) specify minimum contrast ratio values to ensure that the content is accessible to all users.

Using Colors and Contrast Ratio to ensure Visual Accessibility
Ensure your app is visually appealing and accessible by picking a color scheme that accommodates color blindness and the right contrast ratio.

The display accommodations suite offers solutions addressing the needs of those with color vision deficiencies. You can and should ensure that your application is usable under those settings.

Supporting Increase Contrast in your app to enhance Accessibility
Understand how to enhance the user experience of your app by supporting the Increase Contrast accessibility feature and leveraging one of the available environment values in SwiftUI.

Typography

Another crucial element of visual accessibility is typography, which includes choosing legible fonts and adjustable text sizes for those with visual impairments. It's also helpful to highlight elements in multiple ways, making the digital experience seamless for everyone by keeping it simple, direct, and easy to follow.

Ensure Visual Accessibility: Using Typography
Understand how Typography affects the usability and user experience of your app and how accessible it is.

Dynamic Type is a feature available on Apple devices that allows the typography to adapt to individual preferences. This feature allows the font size to adjust fluidly, responding to user settings whether a user requires larger fonts due to visual impairments or simply prefers smaller text for aesthetics.

Supporting Dynamic Type and Larger Text in your app to enhance Accessibility
Understand how to prepare your application to support Dynamic Type.

Your application user interface must be ready to adapt to the user's Dynamic Type settings, also specifying if there are parts of your interface that should not scale when larger font sizes are required. For all these elements you can support the Large Content Viewer for all these elements

Ensure Visual Accessibility: supporting the Large Content Viewer
Understand what the Large Content Viewer is, how to use it and when.

It underscores the belief that accessibility isn't a one-size-fits-all approach. Instead, it's about flexibility and adaptability.

Symbols and Shapes

Another crucial element of visual accessibility are glyphs, icons, and shapes. Effective communication relies not only on words and text but also on the influential language of visual elements.

Ensure Visual Accessibility: Glyphs, Icons and Shapes
Understand how to properly use visual elements on your app’s UI while keeping it accessible.

Assistive Technologies

Apple offers a range of features and assistive technologies designed for users who have low vision or visual impairments, these features include display and text settings, screen and cursor magnification, and a screen reader called VoiceOver.

VoiceOver

VoiceOver is more than just a screen reader, it's a comprehensive tool that describes all the elements of the app interface, not only the text that is written in them. This tool bridges the gap between dynamic digital content and users, ensuring that the iOS ecosystem is as accessible for someone with visual impairments as it is for anyone else. It embodies Apple's philosophy of inclusivity and is an example of what's possible when technology is crafted with empathy at its core.

Understanding VoiceOver and How to Use It
Understand what VoiceOver is, how it works, and how it enhances the app usability and user experience.

There are several ways a developer can ensure their application user interface is prepared to deliver the best experience possible for the people who are navigating their apps with VoiceOver. When developing your application using SwiftUI most of the work will be done by the framework and you will have an application mostly ready to be used with VoiceOver.

When making sure that your app provides a great VoiceOver experience, you are not only preparing your app for one assistive technology, but you are also setting a strong foundation for accessibility in general. Once your app is optimized for VoiceOver, it will become easier to support other assistive technologies within iOS. In essence, mastering VoiceOver is the key to creating a universally accessible application that can benefit everyone.

Preparing your App for VoiceOver: use Accessibility Label
Ensure the interface elements of your app are properly identified for assistive technologies
Preparing your App for VoiceOver: Accessibility Traits
Ensure the interface elements of your app communicate their function properly to assistive technologies
Preparing your App for VoiceOver: Accessibility Actions
Ensure the interactions with the interface elements of your app are possible with assistive technologies
Preparing your App for VoiceOver: Accessibility Value
Ensure the interface elements of your app properly inform their current value for assistive technologies
Preparing your App for VoiceOver: Labels, Values and Hints
Ensure your app interface supports assistive technologies using accessibility modifiers.
Understanding VoiceOver rotor
Understand how the VoiceOver rotor works and how to create custom rotor controls within your application.
Making a view accessible using the Accessibility Representation modifier
Learn how to ensure the accessibility of your custom views by replacing their accessible representation.
Preparing your App for VoiceOver: customizing the Sort Priority
Ensure the correct reading order of your interface elements by VoiceOver.
Preparing your App for VoiceOver: Headers and Heading Level
Learn how to properly use headers and heading levels to enhance the accessibility of your application.
Preparing your app for VoiceOver: MagicTap
Discover MagicTap and how to easily support it in both SwiftUI and UIKit.
Ensure frequent updates of Accessibility Elements
Learn how to ensure frequent updates of Accessibility Elements using the Updates Frequently trait.

A counterintuitive aspect of preparing your user interface for VoiceOver is to hide the elements that are not relevant to the tool. There are visual elements of the interface that might play an important role in its visual representation, but that do not deliver any value when the screen is being read by a screen reader or even makes the interface confusing for a visually impaired user.

Preparing your App for VoiceOver: Hiding Elements from the Accessible Interface
Ensure your app’s interface elements communicate their function properly to assistive technologies.
Testing your app’s accessibility with UI Tests
Discover how to perform an automated accessibility audit in Xcode with UI Tests.

Testing Accessibility

Ensure your apps can be used by everyone

Making sure that an app is accessible is just as important as making sure it works correctly. An app can be great, but it's not truly great if not everyone can use it. Apple's developer tools include something called the Accessibility Inspector, which is helpful when it comes to making sure your app is accessible. It lets you check different parts of the app to see if they work well with assistive technologies. You can look at things like labels, VoiceOver, and color contrast. This helps you make sure that everyone can use your app, not just some people. Using the Accessibility Inspector doesn't just help you meet standards, it also makes the user experience better for everyone.

Testing your app’s accessibility with the Accessibility Inspector
Enhance your app accessibility by testing and auditing it with the Accessibility Inspector to better support assistive technologies and discover possible accessibility issues.