metabolist / metatext

A free, open-source iOS Mastodon client.
https://metabolist.org/metatext
GNU General Public License v3.0
726 stars 101 forks source link

VoiceOver can't activate about 50% of rows in Profile Follower List #249

Open alexbbrown opened 2 years ago

alexbbrown commented 2 years ago

Describe the bug on the App Store page for metatext, a user reported

I am very happy with this app as a Voiceover user. It's functionality is excellent. Unlike the official Mastodon app, this app includes rotor actions that make using it much faster and easier. I have found only two bugs in the app with Voiceover. First, the "load more" button in the timeline view can't be activated while using Voiceover. Second, when in your list of following or followers, you can't activate entries to go to the person's profile page after scrolling past the first few entries in the list. Neither bug is a huge deal though. The only thing that would be nice as an addition would be the ability to view the public timelines of instances you aren't signed into. Thanks so much to the dev for making such a great and accessible app available for free.

I checked and the follower bug is easy to reproduce

To Reproduce Steps to reproduce the behavior:

  1. with voiceover on
  2. Go to profile
  3. Tap following
  4. swipe right until you get to first follower
  5. Double tap to activate
  6. Observe it shows the first follower profile
  7. Z-scrub to return to following list
  8. Swipe to third follower
  9. Double tap to activate
  10. Observe that or doesn't work

Expected behavior double tap our other activation sound open the profile of the current account in the following list

actual: nothing happens unless it's the first or second tower in the table

Screenshots

Double tapping does not work here

IMG_0189 screenshot of a list of mastodon users, the third has a voiceover selection box around it

(please complete the following information):

Additional context Add any other context about the problem here.

alexbbrown commented 2 years ago

it's not by number. A tried again and found different selection of rows works and others didn't.

so far I can't visually predict it from the style of the row, except that It seems like very simple rows tend to just work, but more complex ones with a bio may or may not.

I did note that for the two rows I tried, one that worked and one that did not,

the one that worked invoked TableViewController.swift's function tableView(:didSelectRowAt:)

but a similar row did not. This suggests that the activate event is being captured by something else. something more boring.

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)

        viewModel.select(indexPath: indexPath)
    }