iOS 27 introduces the `accessibilityLinkedGroup` SwiftUI modifier, which connects multiple separate text elements so VoiceOver and Speak Screen can navigate across them fluidly—bridging paragraph or section boundaries as if they were one continuous reading surface.
• Eliminates the frustrating VoiceOver "stuck" behavior where users hit a wall at the end of a text view and cannot move to the next paragraph
• Enables seamless read-all experiences for paginated or multi-view text layouts without collapsing your custom layout into a single UITextView
• Complements the `causesPageTurn` trait and `accessibilityScroll` to deliver a full audiobook-quality continuous reading flow for Speak Screen users
Demonstrates two separate SwiftUI selectable Text views linked into one VoiceOver navigation group, so a user swiping by line moves seamlessly from the end of the first paragraph into the second.
import SwiftUI
struct LinkedParagraphReaderView: View {
@Namespace private var readingNamespace
let firstParagraph = "We started our morning in Lincoln Park, strolling through the trails and admiring the views of the Chicago skyline."
let secondParagraph = "At lunchtime, we walked along the Chicago River. The riverfront path gave us great views of the city's magnificent architecture."
var body: some View {
ScrollView {
VStack(alignment: .leading, spacing: 24) {
Text(firstParagraph)
.font(.body)
.textSelection(.enabled)
// Link this element into the shared reading group
.accessibilityLinkedGroup(id: "travelPage", in: readingNamespace)
Text(secondParagraph)
.font(.body)
.textSelection(.enabled)
// Same id + namespace connects it to the element above
.accessibilityLinkedGroup(id: "travelPage", in: readingNamespace)
}
.padding()
}
.navigationTitle("Chicago — Day 1")
}
}
#Preview {
NavigationStack {
LinkedParagraphReaderView()
}
}Each view in the linked group must use the same namespace and the same id value. The UIKit equivalent (accessibilityNextTextNavigationElement / accessibilityPreviousTextNavigationElement) has been available since iOS 18; the SwiftUI modifier is the iOS 27 addition. Don't forget to also adopt accessibilityScroll + causesPageTurn on the last element for full continuous-reading support.
None — works on all devices supporting iOS 27
More iOS 27 APIs land every week.
Get notified when new capabilities are published — no noise, just signal.