Skip to content

Commit 5111e1b

Browse files
committed
A11Y: allow the answers of a poll to be traversed by Talkback
1 parent d15a352 commit 5111e1b

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import androidx.compose.ui.geometry.Size
2020
import androidx.compose.ui.graphics.Brush
2121
import androidx.compose.ui.res.stringResource
2222
import androidx.compose.ui.semantics.contentDescription
23+
import androidx.compose.ui.semantics.isTraversalGroup
2324
import androidx.compose.ui.semantics.semantics
2425
import androidx.compose.ui.unit.Dp
2526
import androidx.compose.ui.unit.dp
@@ -31,6 +32,7 @@ import io.element.android.features.messages.impl.timeline.components.layout.Cont
3132
import io.element.android.features.messages.impl.timeline.model.TimelineItem
3233
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemCallNotifyContent
3334
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLegacyCallInviteContent
35+
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent
3436
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent
3537
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
3638
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionEvent
@@ -137,6 +139,8 @@ internal fun TimelineItemRow(
137139
} else {
138140
timelineItem.safeSenderName
139141
}
142+
// For Polls, allow the answers to be traversed by Talkback
143+
isTraversalGroup = timelineItem.content is TimelineItemPollContent
140144
}
141145
// Custom clickable that applies over the whole item for accessibility
142146
.then(

features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemPollViewTest.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ class TimelineItemPollViewTest {
4747
)
4848
}
4949
val answer = content.answerItems[answerIndex].answer
50-
rule.onNode(hasText(answer.text)).performClick()
50+
rule.onNode(
51+
matcher = hasText(answer.text),
52+
useUnmergedTree = true,
53+
).performClick()
5154
eventsRecorder.assertSingle(TimelineEvents.SelectPollAnswer(content.eventId!!, answer.id))
5255
}
5356

0 commit comments

Comments
 (0)