Accessibility fixes and improvements
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
headingattribute. - [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
buttonlabel. - [x] More info bottom sheet missing
barrierLabel- says 'scrim' - [x] Go back button does not say 'button'. Missing
buttonattribute. - [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] Missing
- [x] Filter episodes
- [x] Missing
barrierLabel- says 'scrim' - [x] Missing does not read currently selected item.
- [x] Missing
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.
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.