diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt
index d52db124ea..3a7c006593 100644
--- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt
+++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt
@@ -55,6 +55,8 @@ import androidx.compose.ui.layout.onVisibilityChanged
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.semantics.clearAndSetSemantics
+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
@@ -495,14 +497,20 @@ private fun MediaViewerTopBar(
TopAppBar(
title = {
if (senderName != null && dateSent != null) {
+ val description = stringResource(
+ CommonStrings.a11y_sent_by_sender_at_date,
+ senderName,
+ dateSent,
+ )
Column(
modifier = Modifier
.fillMaxWidth()
+ .clearAndSetSemantics {
+ heading()
+ contentDescription = description
+ },
) {
Text(
- modifier = Modifier.semantics {
- heading()
- },
text = senderName,
style = ElementTheme.typography.fontBodyMdMedium,
color = ElementTheme.colors.textPrimary,
diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml
index 6fa5436f96..1c94927623 100644
--- a/libraries/ui-strings/src/main/res/values/localazy.xml
+++ b/libraries/ui-strings/src/main/res/values/localazy.xml
@@ -48,6 +48,7 @@
"Room avatar"
"Send files"
"Sender location"
+ "Sent by %1$s at %2$s"
"Time limited action required, you have one minute to verify"
"Settings, action required"
"Show password"