diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/avatar/ChannelAvatar.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/avatar/ChannelAvatar.kt index 7d1edfe46e3..ef2fe4de076 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/avatar/ChannelAvatar.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/avatar/ChannelAvatar.kt @@ -38,6 +38,8 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.hideFromAccessibility +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -253,7 +255,9 @@ private fun StackedGroupAvatar( text = stringResource(R.string.stream_compose_avatar_overflow_count, count), size = dimensions.badgeSize, fixedFontSize = true, - modifier = Modifier.align(Alignment.BottomCenter), + modifier = Modifier + .align(Alignment.BottomCenter) + .semantics { hideFromAccessibility() }, ) } } diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/header/ChannelHeader.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/header/ChannelHeader.kt index 9321942a3f3..7d54bd8583b 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/header/ChannelHeader.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/header/ChannelHeader.kt @@ -33,6 +33,9 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.heading +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -197,12 +200,15 @@ internal fun DefaultChannelHeaderCenterContent( onClickLabel = onHeaderTitleClickLabel, role = Role.Button, ) { callback(channel) } + .semantics(mergeDescendants = true) {} }, horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, ) { Text( - modifier = Modifier.testTag("Stream_ChannelName"), + modifier = Modifier + .testTag("Stream_ChannelName") + .semantics { heading() }, text = title, style = ChatTheme.typography.headingSmall, maxLines = 1, @@ -274,6 +280,7 @@ internal fun DefaultChannelHeaderTrailingContent( onClick: ((Channel) -> Unit)?, onClickLabel: String? = null, ) { + val avatarLabel = ChatTheme.channelNameFormatter.formatChannelName(channel, currentUser) ChatTheme.componentFactory.ChannelAvatar( params = ChannelAvatarParams( modifier = Modifier @@ -284,6 +291,9 @@ internal fun DefaultChannelHeaderTrailingContent( onClickLabel = onClickLabel, role = Role.Button, ) { callback(channel) } + .semantics(mergeDescendants = true) { + contentDescription = avatarLabel + } }, channel = channel, currentUser = currentUser,