iOS 26: Enabling "Reduce Transparency" causes a persistent white bar where the tab bar was hidden, blocking user interaction

Hi everyone,

We're experiencing a bug on iOS 26 that only occurs when the user has Reduce Transparency enabled in Accessibility settings.

App structure:

Our app uses a TabView with a standard tab bar. Inside each tab, we use a NavigationStack. The tab bar is visible on root-level screens, and hidden on all pushed destinations using:

.toolbar(.hidden, for: .tabBar)

The problem:

On iOS 26 with Reduce Transparency off (Liquid Glass active) — everything works correctly. The tab bar hides as expected.

On iOS 26 with Reduce Transparency on — a white bar appears at the bottom of the screen in every place where the tab bar is hidden.

This white bar:

Overlaps content at the bottom of the screen. Blocks scroll, tap, and all user interactions in that area.

We also tried:

  • .toolbarBackground(.hidden, for: .tabBar)
  • Removing all custom UITabBarAppearance configuration

The only workaround we found is setting UIDesignRequiresCompatibility = YES in Info.plist, which reverts the entire app to the pre-iOS 26 design — not a viable long-term solution.

What can we do? Thanks in advance.

Are you able to share a code snippet that reproduces the issue?

I want to make sure there's no differences between our projects when following the steps to reproduce.

To help us get ahead start on this issue, share this code in a bug report filed through Feedback Assistant. Be sure to include a minimal Xcode project that's builds, runs and demonstrates the issue. Include steps to reproduce, affected platforms/versions and any other relevant info needed.

Once you have filed, share the feedback number in this thread, I will make sure that report is seen by the relevant engineering team.

 Travis

@DTS Engineer

Sure! Please try this code with the "Settings → Accessibility → Display & Text Size → Reduce Transparency" option enabled.

Feedback ID: FB22913365

import SwiftUI

struct ContentView: View {
    @State var tab = 0
    
    var body: some View {
        TabView(selection: $tab) {
            TabContentView()
                .tabItem {
                    Label("One", image: "")
                }
                .tag(0)
            
            TabContentView()
                .tabItem {
                    Label("Two", image: "")
                }
                .tag(1)
        }
    }
}

struct TabContentView: View {
    @State var path = [Int]()
    
    var body: some View {
        NavigationStack(path: $path) {
            NavigationStackFirstView(onNext: { path.append(0) })
                .navigationDestination(for: Int.self) { destination in
                    Group {
                        switch destination {
                        case 0:
                            NavigationStackSecondView()
                        default:
                            EmptyView()
                        }
                    }
                    .toolbar(.hidden, for: .tabBar)
                }
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }
}

struct NavigationStackFirstView: View {
    let onNext: () -> Void
    
    var body: some View {
        VStack {
            Text("View with tabbar")
                .font(.system(size: 24))
                .padding()
            
            Button("Go to view without tabbar") {
                onNext()
            }
        }
        .frame(maxWidth: .infinity, maxHeight: .infinity)
        .background(Color.pastelGray0)
    }
}

struct NavigationStackSecondView: View {
    var body: some View {
        ScrollView {
            VStack(spacing: 0) {
                ForEach(0..<25) { index in
                    Text("Line \(index)")
                        .padding()
                        .frame(maxWidth: .infinity)
                        .background(index.isMultiple(of: 2) ? Color.pastelGray2 : Color.pastelGray3)
                }
            }
            .padding(.vertical)
        }
        .frame(maxWidth: .infinity, maxHeight: .infinity)
        .background(Color.pastelGray1)
    }
}

extension Color {
    static let pastelGray0 = Color(red: 0.88, green: 0.88, blue: 0.90)
    static let pastelGray1 = Color(red: 0.82, green: 0.83, blue: 0.85)
    static let pastelGray2 = Color(red: 0.75, green: 0.76, blue: 0.78)
    static let pastelGray3 = Color(red: 0.68, green: 0.69, blue: 0.71)
}
iOS 26: Enabling "Reduce Transparency" causes a persistent white bar where the tab bar was hidden, blocking user interaction
 
 
Q