Fixed
Status Update
Comments
ss...@google.com <ss...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 2d9a3108dbbe30d739e3ea2b3907a961835adc0b
Author: Sergio Sancho <ssancho@google.com>
Date: Tue Sep 06 17:33:45 2022
Make Position indicator take only the needed space.
We wrap the position indicator drawing code to limit the space it takes
on screen, this is needed for a11y
Relnote: "Make Position indicator take only the needed space."
Test: Ran PositionIndicatorTest.
Bug: b/244409133
Change-Id: Ie61067217e778ed0dde816a348e5e116a456d553
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ProgressIndicatorScreenshotTest.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/PositionIndicator.kt
https://android-review.googlesource.com/2207619
Branch: androidx-main
commit 2d9a3108dbbe30d739e3ea2b3907a961835adc0b
Author: Sergio Sancho <ssancho@google.com>
Date: Tue Sep 06 17:33:45 2022
Make Position indicator take only the needed space.
We wrap the position indicator drawing code to limit the space it takes
on screen, this is needed for a11y
Relnote: "Make Position indicator take only the needed space."
Test: Ran PositionIndicatorTest.
Bug:
Change-Id: Ie61067217e778ed0dde816a348e5e116a456d553
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ProgressIndicatorScreenshotTest.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/PositionIndicator.kt
as...@google.com <as...@google.com>
na...@google.com <na...@google.com> #3
This bug was linked in a change in the following release(s):
androidx.wear.compose:compose-material:1.1.0-alpha06
Description
Version used: 1.0.1
I don't have a full explanation, but it seems that top level elements in Scaffold interfere with talkback. PositionIndicator, TimeText, full screen composables, but I'm guessing as I'm not sure what is going on. It makes it hard to reconcile the results from a11y testing with composeTestRule with actual manual testing.
It seems that A11y treats them as a single item because the bounds are all the same (full screen). But I'm not sure.
One example changing
```
val volumeState = volume()
Stepper(
value = volumeState.current.toFloat(),
onValueChange = { if (it > volumeState.current) increaseVolume() else decreaseVolume() },
steps = volumeState.max - 1,
valueRange = (0f..volumeState.max.toFloat()),
increaseIcon = {
increaseIcon()
},
decreaseIcon = {
decreaseIcon()
}
) {
DeviceChip(
modifier = Modifier.padding(horizontal = 18.dp),
volumeState = volumeState,
audioOutput = audioOutput,
onAudioOutputClick = onAudioOutputClick
)
}
if (showVolumeIndicator) {
VolumePositionIndicator(
modifier = Modifier.semantics {
contentDescription = "Volume ${volumeState.current}"
},
volumeState = volume,
autoHide = false
)
}
}
```