mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +00:00
Fix A11y tests (#5104)
* replace NavigationStack with ElementNavigationStack to allow the content to be rendered without a NavigationStack in a11y tests * fix a11y tests * update xcodeproject * swiftformat fix * use iOS 26.1 for CI * use a wrapper to solve the issue for a11y tests * ElementNavigationStack only uses the trick in DEBUG mode, and added a swiftlint rule to prevent the usage of NavigationStack
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// Copyright 2026 Element Creations Ltd.
|
||||
//
|
||||
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||
// Please see LICENSE files in the repository root for full details.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ElementNavigationStack<Content: View>: View {
|
||||
@ViewBuilder let content: Content
|
||||
|
||||
var body: some View {
|
||||
#if DEBUG
|
||||
if ProcessInfo.isRunningAccessibilityTests {
|
||||
// Wrap in VStack to safely apply .id() since applying .id() directly to NavigationStack crashes on iOS 26
|
||||
VStack(spacing: 0) {
|
||||
NavigationStack {
|
||||
content
|
||||
}
|
||||
}
|
||||
} else {
|
||||
NavigationStack {
|
||||
content
|
||||
}
|
||||
}
|
||||
#else
|
||||
NavigationStack {
|
||||
content
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -33,6 +33,7 @@ struct EditRoomAddressListRow: View {
|
||||
.font(.compound.bodyLG)
|
||||
.foregroundStyle(.compound.textPrimary)
|
||||
.padding(.horizontal, 8)
|
||||
.accessibilityLabel(L10n.a11yAddress)
|
||||
.accessibilityHint(L10n.a11yEditRoomAddressHint(fullAddress))
|
||||
Text(":\(serverName)")
|
||||
.font(.compound.bodyLG)
|
||||
|
||||
@@ -55,7 +55,7 @@ struct JoinCallButton: View {
|
||||
|
||||
struct JoinCallButton_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
NavigationStack {
|
||||
ElementNavigationStack {
|
||||
Color.clear
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .confirmationAction) {
|
||||
|
||||
@@ -71,7 +71,7 @@ struct ToolbarButton: View {
|
||||
|
||||
struct ToolbarButton_Previews: PreviewProvider, TestablePreview {
|
||||
static var previews: some View {
|
||||
NavigationStack {
|
||||
ElementNavigationStack {
|
||||
Color.clear
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .confirmationAction) {
|
||||
|
||||
Reference in New Issue
Block a user