added accessibility Description

TODO: add translations
This commit is contained in:
davotoula
2025-08-23 17:12:23 +01:00
parent 03483c932c
commit b0aa2a8c31

View File

@@ -44,6 +44,11 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.semantics.Role
import androidx.compose.ui.semantics.onClick
import androidx.compose.ui.semantics.role
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.stateDescription
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -113,6 +118,13 @@ fun FeedFilterSpinner(
Amethyst.instance.locationManager.setLocationPermission(locationPermissionState.status.isGranted) Amethyst.instance.locationManager.setLocationPermission(locationPermissionState.status.isGranted)
} }
val accessibilityDescription =
if (selected != null) {
"Feed filter, $currentText selected"
} else {
"Feed filter, $selectAnOption"
}
Box( Box(
modifier = modifier, modifier = modifier,
contentAlignment = Alignment.Center, contentAlignment = Alignment.Center,
@@ -195,6 +207,13 @@ fun FeedFilterSpinner(
indication = null, indication = null,
) { ) {
optionsShowing = true optionsShowing = true
}.semantics {
role = Role.DropdownList
stateDescription = accessibilityDescription
onClick(label = "Open feed filter menu") {
optionsShowing = true
return@onClick true
}
}, },
) )
} }
@@ -202,6 +221,7 @@ fun FeedFilterSpinner(
if (optionsShowing) { if (optionsShowing) {
options.isNotEmpty().also { options.isNotEmpty().also {
SpinnerSelectionDialog( SpinnerSelectionDialog(
title = explainer,
options = options, options = options,
onDismiss = { optionsShowing = false }, onDismiss = { optionsShowing = false },
onSelect = { onSelect = {