diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/components/FormattingOption.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/components/FormattingOption.kt
index db133a9a09..6afec35dfe 100644
--- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/components/FormattingOption.kt
+++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/components/FormattingOption.kt
@@ -23,14 +23,17 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.clearAndSetSemantics
import androidx.compose.ui.semantics.contentDescription
+import androidx.compose.ui.semantics.stateDescription
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Icon
+import io.element.android.libraries.ui.strings.CommonStrings
@Composable
internal fun FormattingOption(
@@ -52,6 +55,8 @@ internal fun FormattingOption(
FormattingOptionState.Default -> ElementTheme.colors.iconSecondary
FormattingOptionState.Disabled -> ElementTheme.colors.iconDisabled
}
+ val activeStateDescription = stringResource(CommonStrings.a11y_active)
+ val inactiveStateDescription = stringResource(CommonStrings.a11y_inactive)
Box(
modifier = modifier
.clickable(
@@ -77,6 +82,13 @@ internal fun FormattingOption(
)
.clearAndSetSemantics {
this.contentDescription = contentDescription
+ if (toggleable) {
+ this.stateDescription = if (state == FormattingOptionState.Selected) {
+ activeStateDescription
+ } else {
+ inactiveStateDescription
+ }
+ }
}
) {
Box(
diff --git a/libraries/ui-strings/src/main/res/values/temporary.xml b/libraries/ui-strings/src/main/res/values/temporary.xml
index a192e2c9df..c0573cc6c2 100644
--- a/libraries/ui-strings/src/main/res/values/temporary.xml
+++ b/libraries/ui-strings/src/main/res/values/temporary.xml
@@ -10,4 +10,6 @@
"Jump to first unread message"
Allow access to local network
Your homeserver is on your local network. To connect, Element needs permission to reach other devices on this network.
+ Active
+ Inactive