fix(accessibility): label icon controls and semantic tap targets

This commit is contained in:
Storm Dragon 2026-02-27 15:41:57 -05:00
parent e30e84ded1
commit b552e9843c
15 changed files with 118 additions and 66 deletions

View file

@ -13,6 +13,9 @@ class AudiobookPlayerSeekButton extends HookConsumerWidget {
Widget build(BuildContext context, WidgetRef ref) {
final player = ref.watch(audiobookPlayerProvider);
return IconButton(
tooltip: isForward
? 'Seek forward 30 seconds'
: 'Seek backward 30 seconds',
icon: Icon(
isForward ? Icons.forward_30 : Icons.replay_30,
size: AppElementSizes.iconSizeSmall,

View file

@ -49,6 +49,7 @@ class AudiobookPlayerSeekChapterButton extends HookConsumerWidget {
}
return IconButton(
tooltip: isForward ? 'Next chapter' : 'Previous chapter',
icon: Icon(
isForward ? Icons.skip_next : Icons.skip_previous,
size: AppElementSizes.iconSizeSmall,

View file

@ -162,6 +162,7 @@ class SpeedWheel extends StatelessWidget {
// a minus button to decrease the speed
if (showIncrementButtons)
IconButton.filledTonal(
tooltip: 'Decrease speed',
icon: const Icon(Icons.remove),
onPressed: () {
// animate to index - 1
@ -198,6 +199,7 @@ class SpeedWheel extends StatelessWidget {
if (showIncrementButtons)
// a plus button to increase the speed
IconButton.filledTonal(
tooltip: 'Increase speed',
icon: const Icon(Icons.add),
onPressed: () {
// animate to index + 1