diff --git a/Sources/SkipUI/SkipUI/Commands/Search.swift b/Sources/SkipUI/SkipUI/Commands/Search.swift index bb238111..cfab3cce 100644 --- a/Sources/SkipUI/SkipUI/Commands/Search.swift +++ b/Sources/SkipUI/SkipUI/Commands/Search.swift @@ -29,7 +29,10 @@ import androidx.compose.ui.input.nestedscroll.NestedScrollConnection import androidx.compose.ui.input.nestedscroll.NestedScrollSource import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalFocusManager +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.unit.dp import kotlinx.coroutines.launch @@ -130,7 +133,7 @@ let searchFieldHeight = 56.0 let isFocused = remember { mutableStateOf(false) } OutlinedTextField(value: state.text.wrappedValue, onValueChange: { state.text.wrappedValue = $0 - }, modifier: Modifier.weight(Float(1.0)).focusRequester(focusRequester).onFocusChanged { + }, modifier: Modifier.weight(Float(1.0)).semantics { testTagsAsResourceId = true }.testTag("skip_ui_automation_search_field").focusRequester(focusRequester).onFocusChanged { if $0.isFocused { state.isSearching.value = true } diff --git a/Sources/SkipUI/SkipUI/Containers/TabView.swift b/Sources/SkipUI/SkipUI/Containers/TabView.swift index 52b3d6c0..09826cda 100644 --- a/Sources/SkipUI/SkipUI/Containers/TabView.swift +++ b/Sources/SkipUI/SkipUI/Containers/TabView.swift @@ -55,6 +55,9 @@ import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.geometry.Rect import androidx.compose.ui.layout.boundsInWindow import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.navigation.NavHostController @@ -257,6 +260,7 @@ public struct TabView : View, Renderable { bottomBarTopPx.value = bounds.top bottomBarHeightPx.value = bounds.bottom - bounds.top } + .semantics { testTagsAsResourceId = true }.testTag("skip_ui_automation_tab_bar") let tint = EnvironmentValues.shared._tint let hasColorScheme = reducedTabBarPreferences.colorScheme != nil let isSystemBackground = reducedTabBarPreferences.isSystemBackground == true @@ -336,7 +340,7 @@ public struct TabView : View, Renderable { if let updateOptions = EnvironmentValues.shared._material3NavigationBar { options = updateOptions(options) } - NavigationBar(modifier: options.modifier, containerColor: options.containerColor, contentColor: options.contentColor, tonalElevation: options.tonalElevation) { + NavigationBar(modifier: options.modifier.semantics { testTagsAsResourceId = true }.testTag("skip_ui_automation_tab_bar"), containerColor: options.containerColor, contentColor: options.contentColor, tonalElevation: options.tonalElevation) { for tabIndex in 0..