Accessibility in your software | iOS & VoiceOver
Tags: ios, swift, a11y, voiceover
Published: 2018-04-02 00:00:06

---
title: Accessibility in your software | iOS & VoiceOver
published: true
description: Accessibility should be a priority for every developer. Period.
tags: iOS, swift, accessibility, voiceover
---

*This post was written on March 23rd, 2018 to be published on April 1st at 5:01 PM PST, in order to prevent duplicates of my scholarship submission*

Accessibility should be a priority for every developer and product manager. Period. 

Let me take a step back for a few moments.

While working on my scholarship application for [Apple's WWDC18 conference](https://developer.apple.com/wwdc), my submission concept looked like this over the weeks leading  up to, and during the time period where we could submit:

Leading up to the announcement, I was going to use ARKit to build an "About Me" app in the Augmented Reality space, and use some real-time effects on it to make myself appear as a hologram within the world while giving sort of a presentation on my programming career. Luckily, I didn't work on this idea too in-depth like I saw many other applicants attempt around January to February.

Then, Apple decided to make this year's scholarship requirement a "Swift Playground" (they did this last year as well, but collectively the applicants I talked to didn't think this would be the case again) which is an Apple-made programming learning tool for the iPad.  

As soon as Apple announced the conference and scholarship process for this year, I went to work right away, scrapping my idea and brainstorming a few new ones. One of them was to create a 2D game that used AR to display a map of the level in the player's living room. Eventually that idea transformed into making what's called a PlaygroundBook that had the same content, except it would teach the reader how to create their own 2D game.

Fast forward to Wednesday of this week (March 21st, 2018) I had essentially finished my submission and was ready to begin testing it extensively on my different demographics. However, I felt it was missing something.

Accessibility. That's what was missing. I added a few messages using Apple's VoiceOver technology for different actions, such as "Cat moving right" (the cat is the player in the game), "Cat stopped moving right", and "Cat collected fish. You have 3 fish."

This was cool. A brand new category of users could now use the game.

Or could they?

It turns out, the controls were **impossible** to use with VoiceOver. You just couldn't change between them fast enough and the game required you to do so in order to navigate the level. In order to solve this problem, I grouped controls into two sections: The right and left sides of the screen. The game requires you move and jump in either direction at once, so why not check if VoiceOver is enabled, and then only use one button for each side of the screen? Whenever it's touched, the cat both moves and jumps. Problem solved.

The moral of the story is to **always**, always, always look for ways to implement Accessibility. Be creative! Solve these incredibly important problems.

This project can be found on my [WWDC submissions repo](https://github.com/JordanOsterberg/WWDC/), where I archive each year's submission I submit to the scholarship.

Here's a video of most of my submission: https://www.youtube.com/watch?v=pt4cq_p6Img

And here's a video of the Accessibility Experience: [link coming soon]

I hope this inspires you to implement Accessibility in your own software, and hopefully gives you some insight as to how challenges like these can be overcome with creative design :)