Back again with a new question: what are your preferences when navigating long content?

App Development and Programming

Hi AppleVis users!

I'm developing an ePub/PDF reader for iOS. One problem I'm trying to solve is how best to arrange voiceover elements. Since my app will be presenting lots of long-form content (books), I want to ensure that both the contents of the actual book (images, links, text) can be easily accessed, as well as the controls (settings, book navigation, etc.).

If I look at Safari, it presents first the search/URL field, then the page content, then the back, forward, bookmarks buttons, and so on. If you start navigating from the top using Voiceover, this means you'll have to go through the entire page before you get to the controls at the bottom, which seems less than ideal. For example, it would make quickly scanning a webpage then going back a page more tedious. Using the 'Container' rotor option seems to make skipping between these three sections (URL field, page, page controls) a bit easier — is this how most voiceover users manage this sort of task?

Looking at iBooks, it arranges arranges content in the same way as Safari, with one major exception: you can't navigate between individual elements within the book like you can with a webpage in Safari. Instead, it groups all the page's content together, so you have a layout that is: top toolbar, book content, bottom toolbar.

My question is this: how might I arrange this kind of screen so that it can be easily navigated? What are you preferences? What are some of the best and worst ways you've seen this handled? Hopefully I've explained what I'm asking and the differences between some of the solutions I've observed well enough. If not, please ask!




Submitted by Pyro2790 on Thursday, April 18, 2019

As far as the Safari controls at the bottom go, these are static controls that always appear at the bottom of the screen. Safari has Back, Forward, Share, Show bookmarks, and Tabs. This is pretty standard navigation for voiceOver users. I would say that this layout is pretty universal among apps. Specifically Safari has controls, although most apps that use tab navigation to move between screens also appear at the bottom of the screen.
If a VoiceOver user touches the bottom of the screen they will land on these controls and can double tap when they find the function they want. A user does not have to read through the entire page to find these controls because they can always place there finger near the bottom of the screen to find the controls.
I would say sticking with this type of layout, putting controls at the bottom of the page would be ideal for navigation. If you are in an e book the controls could be placed at the bottom much like they are in Safari. If it also uses tabs to navigate between screens, perhaps you could put a back button at the top left of the screen that would bring VoiceOver users back to the main page where tabs would be displayed at the bottom of the page.
In terms of finding specific elements, headings, links, etc. it is important to make sure this type of mark up would be picked up by navigating with the VoiceOver rotor to find these elements. Perhaps others can way in too. I commend you for reaching out to the community to get input as you develop your app.

Submitted by Malthe on Thursday, April 18, 2019

I very much agree with comment #1, and want to also commend you for reaching out and asking for input!

Submitted by Justin Philips on Thursday, April 18, 2019

Apart from the above-mentioned points, I would like to see an efficient way to add, delete, and go to bookmarks. Tags can be an option.

Submitted by Tangela on Friday, April 19, 2019

Hi and best of luck with your project. This isn't a direct answer to your question, but I do want to make sure you are aware of the number of apps that exist for reading epub and pdf documents, among others. In particular, Voice Dream Reader, read to go, dolphin reader, and a few others. Be aware what these appps can already do. I in no way want to discourage you, but this is a fairly crowded field where people already have strong preferences, so its worth being aware what aspects of your app are not already covered by existing solutions.