# A Text-to-Speech Mini Player in iOS 26's Bottom Accessory
Docking a text-to-speech player into iOS 26's tab bar with .tabViewBottomAccessory(isEnabled:), why that needs iOS 26.1, and the close button I almost got wrong.
Docking a text-to-speech player into iOS 26's tab bar with .tabViewBottomAccessory(isEnabled:), why that needs iOS 26.1, and the close button I almost got wrong.
A one-line iOS 26 TabView modifier that hides the tab bar as you scroll and brings it back, so the content leads, plus the manual .toolbar(.hidden) hacks it replaced.
How iOS 26's Tab(role: .search) folds search and the app menu into one tab in a SwiftUI reader, and the NavigationStack mistake that made search feel broken for weeks.
Where Apple's Liquid Glass actually earns its keep in a real iOS 26 reader, using .glassEffect() on floating SwiftUI buttons and a CSS backdrop-filter bridge for glass inside the WebView.
How to read scroll position in a SwiftUI ScrollView that hosts a WebView, turn it into reading progress, and jump back to your last position without a render loop.
Why a WebView in a SwiftUI ScrollView needs its content height reported from JavaScript, and how to measure it reliably without flicker.