From 756ccb7eafc83b5bb54b5bbeb2e725d1b338ef2a Mon Sep 17 00:00:00 2001 From: Simona Milanovic Date: Thu, 26 Jun 2025 11:35:06 +0100 Subject: [PATCH 1/3] Add a11y improvements --- .../androidify/camera/CameraCaptureButton.kt | 12 ++++++++++++ feature/camera/src/main/res/values/strings.xml | 2 ++ .../android/developers/androidify/home/HomeScreen.kt | 4 ++-- feature/home/src/main/res/values/strings.xml | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/feature/camera/src/main/java/com/android/developers/androidify/camera/CameraCaptureButton.kt b/feature/camera/src/main/java/com/android/developers/androidify/camera/CameraCaptureButton.kt index 23280d9d..c49bb074 100644 --- a/feature/camera/src/main/java/com/android/developers/androidify/camera/CameraCaptureButton.kt +++ b/feature/camera/src/main/java/com/android/developers/androidify/camera/CameraCaptureButton.kt @@ -40,6 +40,8 @@ import androidx.compose.ui.graphics.drawscope.Stroke import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.android.developers.androidify.theme.AndroidifyTheme @@ -78,6 +80,13 @@ internal fun CameraCaptureButton( val disabledColor = MaterialTheme.colorScheme.surfaceContainer val interactionSource = remember { MutableInteractionSource() } val animationSpec = MaterialTheme.motionScheme.defaultSpatialSpec() + + val semanticsDescription = if (enabled) { + stringResource(R.string.capture_image_button_enabled_content_description) + } else { + stringResource(R.string.capture_image_button_disabled_content_description) + } + Spacer( modifier .indication(interactionSource, ScaleIndicationNodeFactory(animationSpec)) @@ -90,6 +99,9 @@ internal fun CameraCaptureButton( role = Role.Button, onClickLabel = stringResource(R.string.cd_capture_button), ) + .semantics { + contentDescription = semanticsDescription + } .size(size) .drawWithCache { val outerPath = path.copy().apply { diff --git a/feature/camera/src/main/res/values/strings.xml b/feature/camera/src/main/res/values/strings.xml index 3518e9cb..a499b45d 100644 --- a/feature/camera/src/main/res/values/strings.xml +++ b/feature/camera/src/main/res/values/strings.xml @@ -25,6 +25,8 @@ Flip camera direction Enable Rear Camera Use guides to frame yourself for the perfect Bot + Capture image + Image capture disabled. Make sure your face is clearly visible in the frame. Great shot! diff --git a/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt b/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt index 3de5c427..2993cce7 100644 --- a/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt +++ b/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt @@ -301,7 +301,7 @@ private fun VideoPlayerRotatedCard( modifier: Modifier = Modifier, ) { val aspectRatio = 280f / 380f - val videoInstructionText = stringResource(R.string.instruction_video_transcript) + val videoInstructionText = stringResource(R.string.video_card_content_description) Box( modifier = modifier .focusable() @@ -457,7 +457,7 @@ private fun DancingBot( AsyncImage( model = dancingBotLink, modifier = modifier, - contentDescription = null, + contentDescription = stringResource(R.string.dancing_android_bot), ) } diff --git a/feature/home/src/main/res/values/strings.xml b/feature/home/src/main/res/values/strings.xml index cdb99eed..1b3efafc 100644 --- a/feature/home/src/main/res/values/strings.xml +++ b/feature/home/src/main/res/values/strings.xml @@ -37,4 +37,6 @@ Terms Privacy Licenses + A video showcasing the creation of an Android bot. + A dancing Android bot. From 0ecc24e43ca53994d254de81d8b579f7baeba168 Mon Sep 17 00:00:00 2001 From: Simona Milanovic Date: Thu, 26 Jun 2025 12:29:39 +0100 Subject: [PATCH 2/3] Revert the video semantics desc change --- .../java/com/android/developers/androidify/home/HomeScreen.kt | 2 +- feature/home/src/main/res/values/strings.xml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt b/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt index 2993cce7..f5175b1b 100644 --- a/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt +++ b/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt @@ -301,7 +301,7 @@ private fun VideoPlayerRotatedCard( modifier: Modifier = Modifier, ) { val aspectRatio = 280f / 380f - val videoInstructionText = stringResource(R.string.video_card_content_description) + val videoInstructionText = stringResource(R.string.instruction_video_transcript) Box( modifier = modifier .focusable() diff --git a/feature/home/src/main/res/values/strings.xml b/feature/home/src/main/res/values/strings.xml index 1b3efafc..5197646c 100644 --- a/feature/home/src/main/res/values/strings.xml +++ b/feature/home/src/main/res/values/strings.xml @@ -37,6 +37,5 @@ Terms Privacy Licenses - A video showcasing the creation of an Android bot. A dancing Android bot. From 4f9c6d4d9b63222471bf8de6badb2443b1d6b564 Mon Sep 17 00:00:00 2001 From: Simona Milanovic Date: Thu, 26 Jun 2025 14:11:32 +0100 Subject: [PATCH 3/3] Revert the bot image desc change --- .../java/com/android/developers/androidify/home/HomeScreen.kt | 2 +- feature/home/src/main/res/values/strings.xml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt b/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt index f5175b1b..3de5c427 100644 --- a/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt +++ b/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt @@ -457,7 +457,7 @@ private fun DancingBot( AsyncImage( model = dancingBotLink, modifier = modifier, - contentDescription = stringResource(R.string.dancing_android_bot), + contentDescription = null, ) } diff --git a/feature/home/src/main/res/values/strings.xml b/feature/home/src/main/res/values/strings.xml index 5197646c..cdb99eed 100644 --- a/feature/home/src/main/res/values/strings.xml +++ b/feature/home/src/main/res/values/strings.xml @@ -37,5 +37,4 @@ Terms Privacy Licenses - A dancing Android bot.