For #27129 - Fix accessibility for default wallpaper thumbnail
This commit is contained in:
parent
69849cafa4
commit
31e9f69aae
|
@ -40,6 +40,8 @@ import androidx.compose.ui.graphics.asImageBitmap
|
|||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.semantics.contentDescription
|
||||
import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.text.style.TextDecoration
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
@ -257,6 +259,21 @@ private fun WallpaperThumbnailItem(
|
|||
// Completely avoid drawing the item if a bitmap cannot be loaded and is required
|
||||
if (bitmap == null && wallpaper != defaultWallpaper) return
|
||||
|
||||
val description = stringResource(
|
||||
R.string.wallpapers_item_name_content_description,
|
||||
wallpaper.name,
|
||||
)
|
||||
|
||||
// For the default wallpaper to be accessible, we should set the content description for
|
||||
// the Surface instead of the thumbnail image
|
||||
val contentDescriptionModifier = if (bitmap == null) {
|
||||
Modifier.semantics {
|
||||
contentDescription = description
|
||||
}
|
||||
} else {
|
||||
Modifier
|
||||
}
|
||||
|
||||
Surface(
|
||||
elevation = 4.dp,
|
||||
shape = thumbnailShape,
|
||||
|
@ -265,16 +282,14 @@ private fun WallpaperThumbnailItem(
|
|||
.fillMaxWidth()
|
||||
.aspectRatio(aspectRatio)
|
||||
.then(border)
|
||||
.clickable { onSelect(wallpaper) },
|
||||
.clickable { onSelect(wallpaper) }
|
||||
.then(contentDescriptionModifier),
|
||||
) {
|
||||
bitmap?.let {
|
||||
Image(
|
||||
bitmap = it.asImageBitmap(),
|
||||
contentScale = ContentScale.FillBounds,
|
||||
contentDescription = stringResource(
|
||||
R.string.wallpapers_item_name_content_description,
|
||||
wallpaper.name,
|
||||
),
|
||||
contentDescription = description,
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
alpha = if (isLoading) loadingOpacity else 1.0f,
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue