anytime_podcast_player icon indicating copy to clipboard operation
anytime_podcast_player copied to clipboard

Accessibility fixes and improvements

Open amugofjava opened this issue 1 year ago • 1 comments

Describe the bug This is a tracking issue for accessibility enhancements and fixes to work on. Please add comments to this issue if there are additional issues that should be worked on and are missing from this list.

Settings

  • [x] Missing heading attribute.
  • [x] Toggle switches - merge semantics between text and switch to reduce swipes required.
  • [x] Search provider dialog missing close button.

Library

  • [x] Layout selector missing barrierLabel - says 'scrim'.
  • [x] Layout selector not reading currently selected layout.
  • [x] Episode tile
    • [x] Android: Replace expanded tile with dialog menu when screen reader enabled.
    • [x] iOS: Replace expanded tile with Cupertino menu when screen reader enabled.

Episode list page

  • [x] Episode tile missing semantic button label.
  • [x] More info bottom sheet missing barrierLabel - says 'scrim'
  • [x] Go back button does not say 'button'. Missing button attribute.
  • [x] Unfollow dialog buttons un-labelled.
  • [x] Podcast funding dialog missing heading semantic.
  • [x] Sort episodes
    • [x] Missing barrierLabel - says 'scrim'
    • [x] Missing does not read currently selected item.
  • [x] Filter episodes
    • [x] Missing barrierLabel - says 'scrim'
    • [x] Missing does not read currently selected item.

Player window

  • [x] Player window contents read twice on form open.
  • [x] Current & remaining time missing semantic labels.
  • [x] Fast forward button missing semantic label.
  • [ ] Up next queue cannot be re-ordered via VoiceOver.

amugofjava avatar Jul 16 '24 06:07 amugofjava

The remaining issue with the up next queue is a result of creating a slightly customised ReorderableListView.builder. The default behaviour is to tap and hold an item and wait for the haptic feedback before moving it to its new position. This feels different to any other re-order-able view I have used before. The downside is, that it does not play well with VoiceOver or TalkBack.

I believe the solution here is to, as in other areas of the app, adapt the UI if a Anytime detects that a screen reader is enabled. This ensures we can give the optimal behaviour to the user.

If a screen reader is enabled, we should switch to the default ReorderableListView.builder that requires the tap and hold gesture. This works better with a screen reader.

amugofjava avatar Feb 02 '25 11:02 amugofjava