From c7fd0b1f887fef9dbbbf6b8a16468b954d134504 Mon Sep 17 00:00:00 2001 From: ifernandezdiaz Date: Thu, 16 Jul 2026 12:01:20 -0300 Subject: [PATCH] QA-2177: fix: Expose BlockedUriEntry testTag to accessibility tree The AddEditBlockedUriDialog used a raw Compose Dialog whose root never enabled testTagsAsResourceId, so the "BlockedUriEntry" testTag was not exported as a resource-id in the accessibility node tree. This made the field invisible to UIAutomator/Appium (and any resource-id-based automation), even though Compose UI tests using onNodeWithTag still passed. Add Modifier.semantics { testTagsAsResourceId = true } to the dialog's root Column, matching the pattern used by BitwardenScaffold and the other Bitwarden dialog wrappers (e.g. BitwardenTwoButtonDialog). Dialogs render in a separate composition window, so the scaffold's flag does not reach them and each dialog must enable it on its own root. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../settings/autofill/blockautofill/AddEditBlockedUriDialog.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/AddEditBlockedUriDialog.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/AddEditBlockedUriDialog.kt index f9d0714598..6c9d00e5ef 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/AddEditBlockedUriDialog.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/AddEditBlockedUriDialog.kt @@ -16,6 +16,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog @@ -50,6 +52,7 @@ fun AddEditBlockedUriDialog( val scrollState = rememberScrollState() Column( modifier = Modifier + .semantics { testTagsAsResourceId = true } .requiredHeightIn( max = configuration.maxDialogHeight, )