Focus issues with ScrollView iOS18

When using an app via external keyboard, FocusState and .focused used to work just fine until iOS17. Vertical-axis textfields were also accessible without any issues. But after iOS18 update, adding focused modifier removes elements out of focus order of external keyboard.

1 such example is -when a button using focused modifier and @FocusSate is inside a ScrollView and if this view is getting opened via NavigationLink, that button is not accessible via Bluetooth (external) keyboard.

TextEditor / Vertical-axis TextFields also seem to be impacted in external-keyboard-focus-order when added inside ScrollView.

Is this a known iOS18 issue with ScrollView / any tip to get this fixed ?

Sample code that can reproduce this issue:

struct ContentView: View {
    @State private var showBottomSheet: Bool = false
    @State private var goToNextView: Bool = false
    @FocusState private var focused: Bool
    @AccessibilityFocusState private var voFocused: Bool

    var body: some View {
        NavigationView {
            VStack {
                Text("Hello, world!")
                // This button works fine in Bluetooth keyboard in all versions
                Button("Trigger a bottomsheet") {
                    showBottomSheet = true
                }
                .focused($focused)
                .accessibilityFocused($voFocused)
                Button("Goto another view") {
                    goToNextView = true
                }
                NavigationLink(
                    destination: View2(),
                    isActive: $goToNextView
                ) { EmptyView() }
                    .accessibility(hidden: true)
            }
            .sheet(isPresented: $showBottomSheet,
                   onDismiss: {
                focused = true
                voFocused = true
            }, content: {
                VStack() {
                    Text("Hello World ! I'm in a bottomsheet")
                    Button("Close me") {
                        showBottomSheet = false
                    }
                }
            })
            .padding()
        }
    }
}

#Preview {
    ContentView()
}


struct View2: View {
    @FocusState private var focused: Bool
    @AccessibilityFocusState private var voFocused: Bool
    @State private var showBottomSheet: Bool = false
    
    var body: some View {
        ScrollView {
            VStack {
                Text("check")
                // In iOS18, this button doesn't get focused in Bluetooth / external keyboard
                // This issue occurs when these 3 combine in iOS 18 - a button using FocusState inside a view that has a ScrollView & it is opened via NavigationLink
                Button("Trigger a bottomsheet") {
                    showBottomSheet = true
                }
                .focused($focused)
                .accessibilityFocused($voFocused)
                Button("Test button") { }
            }
            .sheet(isPresented: $showBottomSheet,
                   onDismiss: {
                focused = true
                voFocused = true
            }, content: {
                VStack() {
                    Text("Hello World ! I'm in a bottomsheet")
                    Button("Close me") {
                        showBottomSheet = false
                    }
                }
            })
            .padding()
        }
    }
}
Focus issues with ScrollView iOS18
 
 
Q