RedReader icon indicating copy to clipboard operation
RedReader copied to clipboard

Add TalkBack accessibility actions

Open codeofdusk opened this issue 3 years ago • 6 comments

RedReader should have custom accessibility actions to allow TalkBack users to quickly up/downvote posts, collapse threads, etc. similar to the assignable swipe gesture actions for sighted users. Ideally, the order of the actions would be customizable and users can choose which actions they'd like to have enabled, again similar to the already existing support for swipe gestures. The lack of an efficient, accessible Reddit client is one of the major things keeping me on iOS, so solving this would really mean a lot to me!

codeofdusk avatar Mar 20 '22 20:03 codeofdusk

Thank you for the suggestion, I'll look into this. Am I right in thinking that the swipe accessibility actions (ACTION_SWIPE_DOWN etc) are only supported on Android 13 onwards?

QuantumBadger avatar Mar 22 '22 21:03 QuantumBadger

I'm not too sure and haven't heard of those before, but I imagine they'll be really useful when 13 launches! Thanks for looking into this though, it could be the thing that makes Android a viable daily driver for me!

codeofdusk avatar Mar 22 '22 22:03 codeofdusk

I've had a look into this. It seems to be possible add accessibility actions using ViewCompat.addAccessibilityAction(). The actions are accessible with TalkBack by:

  • First, swiping up and right in an "upside-down-L" motion
  • Selecting "Actions" from the menu that appears
  • Selecting the specific action you want to perform from the next menu

Unfortunately this seems like a lot more work that the current double-tap-and-press to open the context menu. As far as I can see there isn't a way to add custom accessibility gestures for items.

@codeofdusk If there are any other apps which implement what you're looking for, could you send me a link please?

QuantumBadger avatar Apr 10 '22 22:04 QuantumBadger

Yes, you found the actions menu I'm talking about.

You can assign a custom gesture to open the "actions" menu without having to find it in the LCM.

codeofdusk avatar Apr 10 '22 23:04 codeofdusk

@codeofdusk Thanks. I'm happy to add this, but just wanted to check first why the normal long click menu is inadequate. I'm guessing because (1) you can't change the order of the items, and (2) removing rarely-used items from it means they are totally unavailable.

QuantumBadger avatar Apr 16 '22 12:04 QuantumBadger

@QuantumBadger If nothing else, I think we should have accessibility actions for moving to the previous/next parent comment. Those commands currently don't work from an accessibility perspective as, to activate them, it's necessary to move from the currently focused comment so focus doesn't know where to land (unless I'm missing something).

codeofdusk avatar Apr 23 '22 19:04 codeofdusk

According to @devinprater, the latest TalkBack update includes a much faster mechanism for invoking actions similar to iOS's built-in screen reader. Implementing accessibility actions would now make a significant difference in efficiency of navigation! CC @QuantumBadger

codeofdusk avatar Jan 15 '23 07:01 codeofdusk

Yes, and it would allow for the hiding of the "view comments" item (hiding from TalkBack that is) allowing one to swipe from one post to another. One can then just use TalkBack actions to open the comments list and such. Devin Prater @.***

On Sun, Jan 15, 2023 at 1:21 AM Bill Dengler @.***> wrote:

According to @devinprater https://github.com/devinprater, the latest TalkBack update includes a much faster mechanism for invoking actions https://devinprater.micro.blog/2023/01/13/google-full-speed.html similar to iOS's built-in screen reader. Implementing accessibility actions would now make a significant difference in efficiency of navigation! CC @QuantumBadger https://github.com/QuantumBadger

— Reply to this email directly, view it on GitHub https://github.com/QuantumBadger/RedReader/issues/964#issuecomment-1383076435, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADUMTTRU4HFYOOFLO76RBT3WSOQNZANCNFSM5RF7Q7IQ . You are receiving this because you were mentioned.Message ID: @.***>

devinprater avatar Jan 15 '23 07:01 devinprater

Thanks both, I'll look into this!

QuantumBadger avatar Jan 15 '23 16:01 QuantumBadger

I've made an initial prototype of this, which adds actions for upvoting/downvoting comments and posts. I'm planning to add more options and some level of customisation.

@codeofdusk Before I continue work on this, would you be able to test it please and confirm that it's what you want? It's available as Alpha 323, and also as the latest master if you'd like to build it yourself.

QuantumBadger avatar Jan 29 '23 19:01 QuantumBadger

@QuantumBadger Thanks so much for your work on this, it's greatly appreciated!

I've opened #1045 to add a few more actions. Customization of actions would be great! I'd also like to add actions to the body of posts (the text of a selfpost/the header of a link post), but I'm not sure where to do that. Could you point me in the right direction?

codeofdusk avatar Jan 30 '23 11:01 codeofdusk

Thank you for the PR @codeofdusk, I've merged it in!

I've done some refactoring and added the same actions to the link post header here: https://github.com/QuantumBadger/RedReader/commit/ad64d4f823822cb29ab1cfa16a60186f3765cfb2

The self text view is created in CommentListingFragment.onCommentListingRequestPostDownloaded() if you'd like to add the actions there as well.

I'll keep this ticket open until we have actions for jumping between top-level comments, which will be a bit trickier.

QuantumBadger avatar Jan 30 '23 22:01 QuantumBadger

Oh my, jumping between top level comments would be pretty amazing. Devin Prater @.***

On Mon, Jan 30, 2023 at 4:45 PM QuantumBadger @.***> wrote:

Thank you for the PR @codeofdusk https://github.com/codeofdusk, I've merged it in!

I've done some refactoring and added the same actions to the link post header here: ad64d4f https://github.com/QuantumBadger/RedReader/commit/ad64d4f823822cb29ab1cfa16a60186f3765cfb2

The self text view is created in CommentListingFragment.onCommentListingRequestPostDownloaded() if you'd like to add the actions there as well.

I'll keep this ticket open until we have actions for jumping between top-level comments, which will be a bit trickier.

— Reply to this email directly, view it on GitHub https://github.com/QuantumBadger/RedReader/issues/964#issuecomment-1409476107, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADUMTTQX6WXGUQPQUWESBKDWVBACLANCNFSM5RF7Q7IQ . You are receiving this because you were mentioned.Message ID: @.***>

devinprater avatar Jan 30 '23 22:01 devinprater

The top level comment jumping logic is currently located in CommentListingFragment, triggered by nextButton and previousButton. It should be possible to refactor that logic and pass the necessary functions to the RedditCommentView.

QuantumBadger avatar Feb 01 '23 23:02 QuantumBadger

Thanks @QuantumBadger, I'll take a look and let you know if I have questions.

As an aside, you're getting noticed on r/blind!

codeofdusk avatar Feb 01 '23 23:02 codeofdusk