bluesky-social / social-app

The Bluesky Social application for Web, iOS, and Android
https://bsky.app
MIT License
8.13k stars 1.07k forks source link

I can no longer jump post-to-post in my feed with a screen reader (New as of v1.38) #970

Open hs4man21 opened 1 year ago

hs4man21 commented 1 year ago

Describe the bug See videos below for examples.

When I use VoiceOver in the Bluesky feed, I can no longer swipe between posts. I have to swipe repeatedly through each button, image and text in each post in order to navigate down the feed. This is time-consuming and not optimal for blind/low-vision folks.

I believe the bug was introduced by the following commit: https://github.com/bluesky-social/social-app/commit/844e3dd342587ce1af182a0afc55bf2b8cc6162f. cc @pfrazee Twitter handles post actions the same way as they were handled before this commit i.e. with the "meta" actions that users can swipe up or down to navigate from the top level of the post. I believe this is the best way to handle the actions, rather than requiring users to read through each element to get to them.

Twitter (pre-Musk) had a full accessibility team that oversaw stuff like this, so I'm putting faith in their implementation. I'm not an expert myself, so I mainly want to flag this as a point to discuss with users (though I'm pretty sure it's a bug/undesirable).

To Reproduce

Steps to reproduce the behavior:

  1. Turn on VoiceOver. (Testing manually with VoiceOver is important! It's actually very beginner-friendly: https://support.apple.com/guide/iphone/turn-on-and-practice-voiceover-iph3e2e415f/ios#:~:text=Activate%20Siri%20and%20say%20“Turn,the%20setting%20on%20or%20off)
  2. Position VoiceOver on any feed post in the BlueSky mobile app by tapping on one with your finger. (Note that this can no longer be done. If you run on an older branch from before the latest app update, then you should be able to do this.)
  3. Swipe your finger to the right and left and note that you have to go through each individual element on the post before getting to the next one. Now, compare this to the old version/branch where you could swipe between posts.

Expected behavior

Swiping left and right in the feed with the iOS screen reader VoiceOver should allow me to move between posts. This was the case previously in the mobile app and is also the case with comparable apps like Twitter.

After the most recent update, I have to swipe to each different part of each post (e.g. the poster's username, the content, each image and then each button in the post. This is tedious and time-consuming for users who might not want to dig into the details of each post in their feed and want to simply skim through them and interact more deeply with specific posts as they so choose.

Screenshots

Bluesky v1.38 https://github.com/bluesky-social/social-app/assets/38192823/00698f20-e6cb-41a5-98c9-5803006ba445

Twitter (current) https://github.com/bluesky-social/social-app/assets/38192823/7d3c4de4-8778-49b8-a512-1543f0e14ff2

Details

pfrazee commented 1 year ago

Okay this is something I'm trying to wrap my head around, so I apologize for getting it wrong. I've been using the VoiceOver inspector and this raises my suspicion that it might not accurately reflect the live behavior, or that there are mechanics I don't understand.

In the previous version, the VoiceOver inspector appeared to be skipping the contents of the posts entirely. It sounds like what you're saying is there is a swipe gesture that allows you to "drill into" the post container when that's present.

I'll dig deeper into the docs and test more with the device VoiceOver but any additional insight is appreciated. Again - I apologize for getting this wrong; I'm learning on my feet here, and want to come out knowing everything I need to.

hs4man21 commented 1 year ago

Okay this is something I'm trying to wrap my head around, so I apologize for getting it wrong. I've been using the VoiceOver inspector and this raises my suspicion that it might not accurately reflect the live behavior, or that there are mechanics I don't understand.

In the previous version, the VoiceOver inspector appeared to be skipping the contents of the posts entirely. It sounds like what you're saying is there is a swipe gesture that allows you to "drill into" the post container when that's present.

I'll dig deeper into the docs and test more with the device VoiceOver but any additional insight is appreciated. Again - I apologize for getting this wrong; I'm learning on my feet here, and want to come out knowing everything I need to.

I appreciate your commitment to working on it! I talked with Ollie a bit about this stuff, but that was before the code was open-sourced, so I'd be happy to do another call with someone or help direct to folks that know even more than me.

The folks at Deque are ~experts and have a resource on accessibilityActions here. You could consult directly with them or throw a message into the public Slack workspace "a11y" which is full of accessibility engineers who answer questions pretty quickly.

Invite link to a11y Slack: https://join.slack.com/t/web-a11y/shared_invite/zt-1ysur5gyq-EzRzRn5T9s~GcFXKf2ADQA

Deque: https://docs.deque.com/linter/4.0.0/en/has-valid-accessibility-actions