Empowering Everyone: The Essential Guide to Accessibility in iOS Apps

Gennadii Tsypenko
Just Eat Takeaway-tech
12 min readApr 24, 2024

Several years ago, I visited a theater in Tel Aviv-Yafo that fully embraced inclusivity, providing a stage not just for deaf and blind people, but also for individuals who are both deaf and blind. This experience was truly unforgettable and serves as an exemplary model of accessibility.

NA LAGA’AT Theater. “Not by Bread Alone” by Adina Tal.

What impressed me the most was the way deaf-blind individuals communicated. They used a special tactile sign language, interacting through touches on the palm. This method enabled them to rehearse and successfully perform hundreds of shows. This one I left in tears, deeply moved by the experience.

This experience reinforced my belief that no one should be excluded from any activity due to their disabilities. It’s simply a matter of finding the right tools for communication. As iOS developers, we have many resources at our disposal, so let’s empower as many people as we can on our journey.

The power of technology to bridge communication gaps and enhance lives is well documented, yet its potential is fully realized only when it is accessible to all, regardless of ability. In the world of software development, particularly within the iOS ecosystem, this principle of inclusivity is not just a courtesy but a crucial component of design philosophy. Apple’s commitment to accessibility ensures that iOS devices come equipped with a wide array of features designed to support users with disabilities. These tools not only empower individuals by making digital realms navigable but also reflect a broader commitment to universal design.

As developers, when we make our apps accessible, we are not merely following guidelines, we are expanding the boundaries for inclusivity. Every line of code that enhances accessibility contributes to a wider, more inclusive world, echoing the inclusivity I witnessed at that theater in Tel Aviv-Yafo. Just as tactile sign language opened new doors of expression for deafblind people, accessible app features open up new worlds of interaction and opportunity for users with disabilities. Let’s explore how these principles are woven into the fabric of iOS development, and how we, as creators, can leverage them to build apps that are truly for everyone.

Ⅰ But first: “Why Accessibility Matters?”

In the rapidly evolving digital landscape, accessibility is paramount, especially in industries like food delivery, where convenience and efficiency are key. Integrating accessibility features not only supports our diverse customer base but also aligns with our commitment to inclusive service delivery.

Personal Impact

Features like VoiceOver compatibility can transform the food ordering experience from a challenge to a convenience. By enabling these features, we ensure that everyone, including people with visual impairments, can independently browse menus, track orders, and enjoy the full range of services offered without assistance.

Legal and Ethical Considerations

Adhering to accessibility standards is not just about compliance; it’s about leadership in ethical business practices. Striving to exceed the minimum legal requirements for accessibility shows dedication to all customers. This approach not only prevents potential legal issues but also strengthens the brand as an advocate for inclusivity.

Business Benefits

Making apps accessible opens up a wider market, including millions of customers with disabilities who seek convenient eating options. Accessible apps lead to higher customer satisfaction, expanded market reach, and increased loyalty. A commitment to accessibility can be a key differentiator, setting a business apart in a competitive market.

Innovation and Broader Usability

In the quest to accommodate users with special needs, often innovative accessibility solutions are discovered that enhance usability for all customers. For example, simplifying the checkout process to aid those with cognitive disabilities can also speed up the experience for customers in a rush, thereby improving overall user efficiency and satisfaction.

Social Inclusion

Belief in the power of food to bring people together should include everyone, regardless of their abilities. By designing iOS apps with accessibility in mind, we ensure that all users have equal access to services, promoting social inclusion. Accessible features enable individuals with disabilities to participate fully in social settings, order food for events, and share meals with friends and family just as any other customer would.

Ⅱ Core Accessibility Features in iOS

iOS offers a robust suite of accessibility features designed to support a wide range of needs, including those related to vision, hearing, motor skills, and learning. Understanding these features can help developers create apps that are truly inclusive. Here’s a look at some of the key accessibility tools provided by iOS and how they can be integrated into app development.

Accessibility Icon from the Apple website

VoiceOver

This is a gesture-based screen reader that allows users to hear what is on their screen and navigate apps even if they cannot see the screen. For developers, ensuring that all elements of the app are properly labeled and interact well with VoiceOver can significantly enhance usability for visually impaired users. It’s essential to test apps with VoiceOver to verify that all information conveyed visually is also accessible via audio. Our Tech Manager says: “Close your eyes and check if you can still use the app.”

VoiceOver demonstration from developer.apple.com website

SwiftUI simplifies the integration of VoiceOver through the use of accessibility modifiers. These modifiers allow developers to customize how the app’s interface elements are perceived and interacted with by assistive technologies. Key modifiers include:

  • .accessibilityLabel: Provides a voice description for non-text elements.
  • .accessibilityHint: Offers additional context or instructions on what an element does.
  • .accessibilityHidden: Controls whether an element should be exposed to assistive technologies.
  • .accessibilityValue: Used for elements with adjustable settings, like sliders.

These modifiers make it straightforward to embed accessibility into SwiftUI views, ensuring that elements are usable and navigable.

Zoom

Zoom is a built-in magnifier that lets users enlarge all or parts of their screen. This feature is particularly helpful for users with low vision. When designing apps, it’s important to ensure that the UI and content are clear and readable at various zoom levels. Developers should avoid fixed-sized elements that do not scale well and ensure that images and UI components maintain their clarity when magnified.

Screenshot from the iPhone with Zoom section in Settings

Switch Control

Switch Control is an accessibility feature that allows users with very limited mobility to interact with their iOS devices using switches, buttons, or other adaptive devices for input. Apps should support these input methods by being navigable and fully functional with as few actions as possible. Simplifying navigation and reducing the number of steps to perform tasks can greatly improve the experience for users utilizing Switch Control.

Screenshot of a video demonstration a person using switch controller connected to iPhone

Assistive Touch

For users with fine motor skill challenges, AssistiveTouch helps by allowing them to perform more complex touch-based gestures with simple taps. This feature can be customized to include frequently used functions, such as multitasking or adjusting volume. Developers need to ensure that their apps work seamlessly with these gestures and consider adding custom gestures for common app functions.

iPhone screenshot with Assistive Touch view open

Closed Captions and Subtitles

This feature supports users who are deaf or hard of hearing by displaying a text version of the audio content. Ensuring that your app supports closed captions and subtitles, and that they are easy to enable and read, can make a significant difference in usability. This involves not only providing the captions but also making sure they appear promptly and are synchronized with the audio.

Screenshot from iPhone. Subtitles & Captioning section in Settings.

Dynamic Type

Dynamic Type allows users to adjust the font size of the text across apps and the operating system. Supporting Dynamic Type means adopting flexible and responsive layouts that accommodate changes in text size without breaking the design or layout of your app. This ensures that text remains legible and accessible for users who need larger or clearer fonts.

Demonstration of Dynamic Type in action. Two phones side by side.

This feature has an API that allows apps to adapt text size based on user preferences set in the iOS settings. Supporting Dynamic Type not only helps users with visual impairments but also those who prefer larger text for comfort. Implementing Dynamic Type can be as simple as using scalable fonts and ensuring that layout constraints are dynamic and can accommodate different text sizes without breaking the layout.

Ⅲ Best Practises. Implementing Basic Accessibility in iOS Apps

Ensuring your app is accessible involves more than just using the right tools; it’s about integrating accessibility into the very fabric of your app’s design. Here are some fundamental best practices for implementing accessibility in iOS apps, focusing on both broad principles and practical tips.

Accessibility illustration from Apple Developer’s website

1. Use Standard UI Elements. Whenever possible, use standard SwiftUI or UIKit elements that come with built-in accessibility features. These elements have been optimized to work seamlessly with iOS accessibility features such as VoiceOver, Dynamic Type, and Switch Control. By using standard components, you ensure that your app adheres to familiar interaction patterns and inherits any accessibility improvements made in iOS updates.

2. Meaningful Labels and Hints. All interactive elements in your app should have meaningful, descriptive labels that clearly explain their function. In SwiftUI, you can easily add these using .accessibilityLabel modifiers. Additionally, use .accessibilityHint to provide extra context that helps users understand what will happen when they interact with an element. This guidance is crucial for users who rely on assistive technologies to navigate and use your app.

3. Use Accessibility Inspector. This is a tool within Xcode that allows developers to simulate and audit the accessibility of their apps. It can be used to test VoiceOver, color contrast ratios, label clarity, and much more. By using the Accessibility Inspector, developers can identify and fix potential accessibility issues before their app reaches users. This tool is crucial for ensuring that accessibility elements are implemented correctly from the start.

4. Ensure Sufficient Contrast. Visual accessibility must be a priority, especially for users with visual impairments. Ensure that your app has sufficient contrast between text and background colors. This not only helps users with low vision but also improves readability in poor lighting conditions. Tools like the Color Contrast Analyzer can help you verify that your color choices meet accessibility standards. Of course, ideally, your designers would know this and implement industry standards already in designs. But it is always a good idea to keep an eye on it.

5. Support Dynamic Type. Text in your app should resize according to user settings. In SwiftUI, ensure that your text elements use DynamicType so that font sizes automatically adjust to the user’s preferred settings. In UIKit, you will need to manually handle dynamic resizing by responding to content size category changes broadcasted by the system.

6. Accessible Navigation. Navigation within the app should be logical and predictable. Use grouping and ordering wisely to guide the flow of information. In SwiftUI, manage the flow with stacks and frames, and consider the order of elements as they will be read by VoiceOver. In UIKit, ensure that custom navigational layouts are also navigable with assistive technologies by using accessibility traits and custom actions where needed.

7. Interactive Elements. Make sure all interactive elements are easy to activate and provide feedback. Elements like buttons, links, and custom gesture controls should have ample touch targets — Apple recommends a minimum size of 44x44 points. This ensures that users with motor difficulties can interact with them without frustration.

8. Test with Real Users. While tools like the Accessibility Inspector are invaluable, there’s no substitute for testing your app with real users who rely on accessibility features. User testing can reveal practical challenges and nuances that might not be captured by simulation tools alone.

Implementing these practices will not only make your app more accessible but also enhance its overall design and usability for all users. By considering accessibility from the outset of your app development process, you create a more inclusive and universally usable product.

Ⅳ Advanced Techniques and Future Trends in iOS Accessibility

As technology evolves, so do the possibilities for making iOS apps more accessible. This section explores advanced techniques and upcoming trends in accessibility, providing insights into how developers can stay ahead in creating inclusive digital experiences.

1. Machine Learning and AI in Accessibility. Advancements in machine learning and AI are paving the way for more adaptive and responsive accessibility features. For instance, developers can leverage AI to enhance voice recognition capabilities, making voice-controlled apps more accurate and user-friendly for people with speech impairments. Additionally, machine learning can be used to automatically generate descriptive alt-text for images, which is invaluable for visually impaired users.

2. Augmented Reality (AR) for Enhanced Real-World Interactions. AR technology holds potential for creating immersive and accessible experiences that help users with disabilities navigate their physical surroundings. For example, AR can overlay navigational cues over the real world, helping visually impaired users navigate complex environments. In apps, AR can be used to provide contextual information in a spatially aware format, making information easier to understand and interact with.

3. Haptic Feedback as an Accessibility Tool. Haptic feedback provides physical responses to interactions with a device, which can be a crucial aid for users who have hearing or visual impairments. Developers can implement nuanced haptic feedback in their apps to indicate different actions, confirmations, or alerts, enhancing the tactile experience of the app and providing another layer of interaction.

4. Improved VoiceOver and Custom Gestures. As VoiceOver technology continues to improve, developers have opportunities to customize gestures and controls to better suit the needs of visually impaired users. Custom gestures can be designed to perform common tasks quickly, enhancing the efficiency of app navigation and interaction for those relying on VoiceOver.

5. Accessibility in Wearable Technology. The integration of iOS with wearable technology like the Apple Watch offers unique opportunities for accessibility. Developers should consider how apps can utilize the wearable format to provide discreet assistance — such as vibrating alerts for important notifications or gestures to trigger accessibility features — making daily activities more manageable for users with disabilities.

6. Globalization and Localization of Accessibility Features. As apps reach a global audience, it’s important to consider how accessibility features can be adapted to different languages and cultural contexts. This includes localizing VoiceOver scripts, ensuring that color choices are universally accessible, and adapting content to meet the diverse needs of international users.

7. Legislation and Accessibility Standards. Finally, keeping abreast of changing legislation and standards is crucial for developers. As more countries adopt strict accessibility laws, apps that proactively comply with these standards will not only avoid legal pitfalls but also stand out as leaders in accessibility.

By adopting these advanced techniques and preparing for future trends, developers can ensure that their iOS apps remain at the forefront of accessibility. These innovations not only enhance the user experience for those with disabilities but also drive the overall progress of technology towards a more inclusive future.

Links and references:

Here’s a list of resources, tools, and further reading that can support you in enhancing accessibility within the iOS apps. These references are organized according to their appearance in this article.

  1. Theater that inspired me for this article
    Na Laga’at Center Website
  2. Apple’s Accessibility Developer Resources
    A comprehensive hub for all things related to accessibility on iOS, including guides, how-to videos, and documentation.
    Apple Accessibility Resources
  3. Xcode Accessibility Inspector
    Learn how to use this powerful tool for testing and improving accessibility in your applications.
    Using the Accessibility Inspector
  4. SwiftUI Accessibility Documentation
    Detailed documentation on how to use accessibility modifiers in SwiftUI to enhance app usability.
    SwiftUI Accessibility
  5. UIAccessibility in UIKit
    Information on maintaining accessibility in legacy UIKit applications, including using the UIAccessibility protocol.
    UIAccessibility Protocol
  6. Color Contrast Analyzers
    Tools to help ensure that your app’s color palette is accessible to people with visual impairments.
    WebAIM Contrast Checker
  7. Dynamic Type Support
    A guide to implementing Dynamic Type in both SwiftUI and UIKit to accommodate various user text size settings.
    Supporting Dynamic Type
  8. Voice Control Accessibility
    Explore how to optimize your app for Voice Control, ensuring it can be fully operated through voice commands.
    Optimizing for Voice Control
  9. Custom Accessibility Gestures
    How to create and implement custom gestures to enhance the accessibility of your iOS apps.
    Custom Accessibility Gestures
  10. Haptic Feedback Guidelines
    Learn the best practices for using haptic feedback as an accessibility tool in your applications.
    Using Haptic Feedback
  11. Global Accessibility Awareness
    Insights into the importance of globalization and localization of accessibility features to cater to an international audience.
    Global Accessibility Awareness Day Information
  12. Legislation on Accessibility
    Stay updated with the latest developments in accessibility legislation to ensure your app remains compliant.
    Accessibility Legislation Overview
  13. Accessibility focus article. Learn how to improve accessiblity experince with @AccessibilityFocusState.
    Control accessibility focus

These resources will aid in your journey to build more accessible iOS apps, ensuring a wider reach and a better user experience for all app users.

As always I hope you enjoyed the article and are inspired to start working on improving accessibility. I am always happy to receive your feedback. Cheers!

Want to come work with us at Just Eat Takeaway.com? Check out our open roles.

--

--