Skip to content

Commit ffe0a45

Browse files
committed
A11Y: improve poll history talkback behavior.
1 parent 5111e1b commit ffe0a45

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

features/poll/impl/src/main/kotlin/io/element/android/features/poll/impl/history/PollHistoryView.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import androidx.compose.runtime.LaunchedEffect
2929
import androidx.compose.ui.Alignment
3030
import androidx.compose.ui.Modifier
3131
import androidx.compose.ui.res.stringResource
32+
import androidx.compose.ui.semantics.isTraversalGroup
33+
import androidx.compose.ui.semantics.semantics
3234
import androidx.compose.ui.text.style.TextAlign
3335
import androidx.compose.ui.tooling.preview.PreviewParameter
3436
import androidx.compose.ui.unit.dp
@@ -178,7 +180,9 @@ private fun PollHistoryList(
178180
if (pollHistoryItems.isEmpty()) {
179181
item {
180182
Column(
181-
modifier = Modifier.fillParentMaxSize().padding(bottom = 24.dp),
183+
modifier = Modifier
184+
.fillParentMaxSize()
185+
.padding(bottom = 24.dp),
182186
verticalArrangement = Arrangement.Center,
183187
horizontalAlignment = Alignment.CenterHorizontally,
184188
) {
@@ -191,7 +195,9 @@ private fun PollHistoryList(
191195
text = emptyStringResource,
192196
style = ElementTheme.typography.fontBodyLgRegular,
193197
color = ElementTheme.colors.textSecondary,
194-
modifier = Modifier.fillMaxWidth().padding(vertical = 24.dp, horizontal = 16.dp),
198+
modifier = Modifier
199+
.fillMaxWidth()
200+
.padding(vertical = 24.dp, horizontal = 16.dp),
195201
textAlign = TextAlign.Center,
196202
)
197203

@@ -227,7 +233,10 @@ private fun PollHistoryItemRow(
227233
modifier: Modifier = Modifier,
228234
) {
229235
Surface(
230-
modifier = modifier,
236+
modifier = modifier.semantics(mergeDescendants = true) {
237+
// Allow the answers to be traversed by Talkback
238+
isTraversalGroup = true
239+
},
231240
border = BorderStroke(1.dp, ElementTheme.colors.borderInteractiveSecondary),
232241
shape = RoundedCornerShape(size = 12.dp)
233242
) {

features/poll/impl/src/test/kotlin/io/element/android/features/poll/impl/history/PollHistoryViewTest.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,10 @@ class PollHistoryViewTest {
131131
rule.setPollHistoryViewView(
132132
state = state,
133133
)
134-
rule.onNodeWithText(answer.text).performClick()
134+
rule.onNodeWithText(
135+
text = answer.text,
136+
useUnmergedTree = true,
137+
).performClick()
135138
eventsRecorder.assertSingle(
136139
PollHistoryEvents.SelectPollAnswer(eventId, answer.id)
137140
)

0 commit comments

Comments
 (0)