Josh at The Nerdery
Josh at The Nerdery

Reputation: 1397

iOS Accessibility Voice Over not working as expected in table view with tall header view

I've got a table view which is displaying detail information about a session at a conference (think WWDC or Google I/O). The bulk of the information is in a flexible-height header view, but there is a need to link to an arbitrary number of speakers and related sessions. This is accomplished with individual table view cells. So the structure of the page is a very tall header (over 1000pt), followed by lists of speakers and other sessions in cells.

The problem I'm encountering is getting accessibility voice over to work properly: when you advance the voice over down the content to the bottom of the header view, the first cell hasn't dequeued yet. Since the cell and its content don't exist, the voice over targeting just jumps to the tab bar at the bottom of the screen. If you manually scroll the table view down so that the first cell is visible, then turn on voice over, the stepping works as expected, since every cell is pulled up high enough to cause the next cell to dequeue.

How can I cause the voice over accessibility stepping to cause the table cells to begin dequeueing so that voice over continues all the way to the bottom of the dynamic content?

Upvotes: 1

Views: 2824

Answers (1)

Josh at The Nerdery
Josh at The Nerdery

Reputation: 1397

There may be a more correct way to do this, but at the suggestion of a co-worker, I tried making the table view taller than the header in viewDidAppear and set the content and scroll indicator insets so that it still looks like it did before. This has the effect of forcing the cells to begin dequeueing immediately, which allows voice over to flow all the way through the content.

Upvotes: 0

Related Questions