The iOS Accessibility Handbook

Making an accessibility guide where you can test the features while you learn

Giovani Pereira
Better Programming

--

If you are here, I believe you are interested in learning more about the universe of iOS accessibility. Maybe you're interested in implementing them to have a more accessible app or in understanding better how an accessibility option behaves in iOS when enabled.

But I always found it was a little difficult to find all these things. You need to know what you are looking for beforehand so you can find this content. And simply reading about it on the web does not allow you to test for yourself how it works.

So, I decided to make a guide. Something easy that could bring together all the accessibility features and options you can find on iOS with examples and implementation guides.

That's why I built the Accessibility Handbook.

Creating a Guide inside an app

We are talking about iOS accessibility, so, nothing better than using the same system to bring the guide to life, right?

The Home screen and indexes for Puzzles and Voice Over guide on the Accessibility Handbook.

How does it work?

The most frustrating part of learning iOS accessibility, to me, was finding the content online, but not being really sure about how would these changes behave while I was using them on an actual device.

What would happen if I implement it like this?
What is a custom action?
What happens when I turn the increased contrast on?

So, the Handbook tries to fill that gap. Not only describe the feature but also be a living example of what that feature does when implemented, so you can try it for yourself right away!

Beyond the VoiceOver

Most of the time when we talk about iOS and mobile Accessibility, we tend to focus only on screen-readers.

It's not an issue, usually, they are the things that will take more thought about when implementing new layouts. But Accessibility does not stop there, there is an entire universe of things that you should consider while implementing or designing an application.

Examples of content and implementation on the Accessibility Handbook that are not focused on VoiceOver.

That is another thing I wanted to do: Spread knowledge and awareness about other accessibility features. Maybe they are not related to implementation directly, maybe it's something you should think about while designing the app, but I believe it is important to know more about them, to know they even exist.

UIKit, SwiftUI and Open Source

An iOS accessibility guide would not be complete without code examples of how to implement everything.

So, I've added code examples to all the features, in both UIKit and SwiftUI. I know most companies with native apps still use UIKit or are migrating to SwiftUI, so it's important to know the difference between the two frameworks and learn how to spot issues during implementation.

The code for implementing accessibility adjustable actions in SwiftUI.
Code example for accessibility adjustable actions. Find the example code here.

But we went even further: the entire project is Open Source. You can find the real implementation of each page and each example, and also collaborate with expanding the content by bringing new ideas and examples to the app.

Learn while playing

Let's be honest, reading implementation documents and guides is kinda boring. I tried to find a more interesting way into learning iOS accessibility. So, I came up with the Handbook Games: a series of puzzles that need some accessibility feature or option in order to be solved.

An example of Puzzle on the Accessibility Handbook. When using VoiceOver, the accessibility hint on the elements will tell the correct order to tap the Icons. Without it, it's not possible to find the correct order.

The idea is not to be difficult, the challenge itself is to find how to enable the correct accessibility option, or how to navigate using them. This serves 2 main purposes:

  • Help to discover new accessibility features and options;
  • Create empathy by simulating situations where these features are useful;

The first one is great, I already talked a little about how I think it's hard to find examples and documentation about a lot of topics on accessibility all at once.

But the second one is even better. I'm trying to create that 'A-ha!' moment you get when solving puzzles, combined with using accessibility options. This way, I hope users can make deeper connections with the importance of accessibility in general while going through examples of how they should be implemented.

A whole experience

The entire app was built to be an example. From the source code to the app running to the examples.

It means you can use any accessibility tool on iOS and see how the app behaves. Make the fonts bigger, increase the contrast, turn the VoiceOver on, reduce transparencies…

I believe you'll find a nice example of what to expect from these features and accessibility options, alongside code examples and the source code.

Where to go from here?

The Accessibility Handbook is available to download at the AppStore.

But also, make sure to check the source code for the project! Report any issues you find, and give suggestions on features, content, and implementations. I want it to be collaborative, and grow while we learn more about iOS accessibility and while this very own universe keeps expanding. Also, with so many examples, you may learn something new from it!

I also have more Mediums about iOS accessibility, bigger examples, unit tests, and features you probably didn't even know about:

And, as always, keep interested. New things will appear while the operating system and its Accessibility features evolve, and the more you know, the better prepared you are going to be to identify and solve accessibility issues in your applications.

Thanks for reading!

--

--