I added accessibility features to my side project last week. I had never used an iPhone with accessibility turned on before, and I realized that it’s a completely different experience. There is a learning curve to understand it in detail, but there is a good guide to get started. After experimenting it with my project, I noticed several areas where the user experience could be improved, and I also understood how important the HIG is.

I first needed to learn how to use an iPhone with accessibility enabled. Double-tap, scroll, swipe right, left, and so on, these actions have different triggers. It took some time to feel comfortable using it. Only then was I able to focus on testing my app.

Apple automatically implements many accessibility actions. When the app opens, VoiceOver reads the title, and the user can then select other items, which are also read aloud. However, if there is anything that looks visually good but breaks the voice over order, then it should be put in order by using accessibility modifiers. Another issue might be the focus state. When the content is updated in the same page, accessibility focus also might need to be updated.

The biggest challenge for me was bilingual VoiceOver. Unfortunately, it seems there is no true bilingual VoiceOver support in SwiftUI. It is possible to read different elements in different languages, but a single element containing text and its translation cannot be read together correctly. I did quite a bit of research online and looked at GitHub repositories but couldn’t find a successful solution, so I ended up separating the text and its translation into independent elements.

Overall, it was fun to learn how to use an iPhone with accessibility features and to invest time in accessibility in general. I tested my project with accessibility enabled and covered everything there. Sorting the VoiceOver order was simple, but handling multiple languages was not as straightforward, though I managed it. I also realized that the better you design the app according to the HIG, the easier it is to deal with accessibility.