From e7f57bd5b8f52f6332f2285531a0c46d2e0e9863 Mon Sep 17 00:00:00 2001 From: Alexender White <joshtech147@gmail.com> Date: Wed, 5 Feb 2025 12:07:12 -0500 Subject: [PATCH] accessibility: welcome + about screens Change-Id: I46d80a2242f872ca27daff48a76af5fa75c25218 --- Ring/AccessibilityIdentifiers.swift | 1 + Ring/Ring/About/AboutSwiftUIView.swift | 27 +++++++++++++++---- Ring/Ring/Constants/Generated/Strings.swift | 4 +++ Ring/Ring/Extensions/View+Helpers.swift | 20 ++++++++++++++ .../SwiftUI/Views/AccountLists.swift | 16 +++-------- .../Walkthrough/Views/WelcomeView.swift | 3 +++ .../Resources/en.lproj/Localizable.strings | 2 ++ 7 files changed, 56 insertions(+), 17 deletions(-) diff --git a/Ring/AccessibilityIdentifiers.swift b/Ring/AccessibilityIdentifiers.swift index 342ed209f..ab6f56d86 100644 --- a/Ring/AccessibilityIdentifiers.swift +++ b/Ring/AccessibilityIdentifiers.swift @@ -47,4 +47,5 @@ struct SmartListAccessibilityIdentifiers { static let contactPicker = "contactPicker" static let accountsListTitle = "accountsListTitle" static let closeAccountsList = "closeAccountsList" + static let closeAboutView = "closeAboutView" } diff --git a/Ring/Ring/About/AboutSwiftUIView.swift b/Ring/Ring/About/AboutSwiftUIView.swift index 57ae35a95..1719daafc 100644 --- a/Ring/Ring/About/AboutSwiftUIView.swift +++ b/Ring/Ring/About/AboutSwiftUIView.swift @@ -24,10 +24,25 @@ struct AboutSwiftUIView: View { let padding: CGFloat = 20 var body: some View { VStack(spacing: padding) { - Image("jami_gnupackage") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(height: 30) + ZStack { + HStack { + Spacer() // Push the close button to the right + CloseButton( + action: { [weak dismissHandler] in + dismissHandler?.dismissView() + }, + accessibilityIdentifier: SmartListAccessibilityIdentifiers.closeAboutView + ) + } + + Image("jami_gnupackage") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(height: 30) + .accessibilityLabel(L10n.Accessibility.aboutJamiTitle) + .frame(maxWidth: .infinity, alignment: .center) // This will center the image horizontally + } + ScrollView { VStack(alignment: .leading, spacing: padding) { VStack(alignment: .center) { @@ -67,6 +82,7 @@ struct AboutSwiftUIView: View { .cornerRadius(8) } } + .padding(.horizontal) HStack { Spacer() Button(action: { @@ -82,7 +98,8 @@ struct AboutSwiftUIView: View { Text(model.feedbackLabel) }) } + .padding(.horizontal) } - .padding() + .padding(.vertical) } } diff --git a/Ring/Ring/Constants/Generated/Strings.swift b/Ring/Ring/Constants/Generated/Strings.swift index 8c8cdc74a..3440e3a20 100644 --- a/Ring/Ring/Constants/Generated/Strings.swift +++ b/Ring/Ring/Constants/Generated/Strings.swift @@ -29,6 +29,8 @@ internal enum L10n { internal static let noWarranty2 = L10n.tr("Localizable", "aboutJami.noWarranty2", fallback: "version 3 or later for details.") } internal enum Accessibility { + /// About Jami + internal static let aboutJamiTitle = L10n.tr("Localizable", "accessibility.aboutJamiTitle", fallback: "About Jami") /// Close internal static let close = L10n.tr("Localizable", "accessibility.close", fallback: "Close") /// Add account @@ -39,6 +41,8 @@ internal enum L10n { } /// Switch account internal static let smartListSwitchAccounts = L10n.tr("Localizable", "accessibility.smartListSwitchAccounts", fallback: "Switch account") + /// Welcome to Jami + internal static let welcomeToJamiTitle = L10n.tr("Localizable", "accessibility.welcomeToJamiTitle", fallback: "Welcome to Jami") } internal enum Account { /// Account Status diff --git a/Ring/Ring/Extensions/View+Helpers.swift b/Ring/Ring/Extensions/View+Helpers.swift index 3b929bda4..35f2f9ed4 100644 --- a/Ring/Ring/Extensions/View+Helpers.swift +++ b/Ring/Ring/Extensions/View+Helpers.swift @@ -243,3 +243,23 @@ extension View { self.modifier(OptionalListSectionSpacing(spacing: spacing)) } } + +struct CloseButton: View { + let action: () -> Void + let accessibilityIdentifier: String + + var body: some View { + Button(action: { + action() + }, label: { + Image(systemName: "xmark") + .font(.system(size: 12, weight: .bold)) + .foregroundColor(.black) + .padding(10) // Increases tap area + .background(Circle().fill(Color.gray.opacity(0.4))) + .accessibilityIdentifier(accessibilityIdentifier) + .accessibilityLabel(L10n.Accessibility.close) + .padding() + }) + } +} diff --git a/Ring/Ring/Features/Conversations/SmartList/SwiftUI/Views/AccountLists.swift b/Ring/Ring/Features/Conversations/SmartList/SwiftUI/Views/AccountLists.swift index 6f1ec3c07..7ed2218fc 100644 --- a/Ring/Ring/Features/Conversations/SmartList/SwiftUI/Views/AccountLists.swift +++ b/Ring/Ring/Features/Conversations/SmartList/SwiftUI/Views/AccountLists.swift @@ -51,18 +51,10 @@ struct AccountLists: View { HStack { Spacer() // Pushes the button to the right - Button(action: { - accountSelectedCallback() - }, label: { - Image(systemName: "xmark") - .font(.system(size: 12, weight: .bold)) - .foregroundColor(.black) - .padding(10) // Increases tap area - .background(Circle().fill(Color.gray.opacity(0.4))) - .accessibilityIdentifier(SmartListAccessibilityIdentifiers.closeAccountsList) - .accessibilityLabel(L10n.Accessibility.close) - .padding() - }) + CloseButton( + action: accountSelectedCallback, + accessibilityIdentifier: SmartListAccessibilityIdentifiers.closeAccountsList + ) } } diff --git a/Ring/Ring/Features/Walkthrough/Views/WelcomeView.swift b/Ring/Ring/Features/Walkthrough/Views/WelcomeView.swift index d4c77d89c..8dbab5c56 100644 --- a/Ring/Ring/Features/Walkthrough/Views/WelcomeView.swift +++ b/Ring/Ring/Features/Walkthrough/Views/WelcomeView.swift @@ -215,6 +215,8 @@ struct HeaderView: View { .resizable() .aspectRatio(contentMode: .fit) .frame(height: 80) + .accessibilityLabel(L10n.Accessibility.welcomeToJamiTitle) + .accessibilityHidden(true) Text(L10n.Welcome.title) .font(.headline) .multilineTextAlignment(.center) @@ -347,6 +349,7 @@ extension View { .ignoresSafeArea() .scaledToFill() .accessibilityIdentifier(AccessibilityIdentifiers.welcomeWindow) + .accessibilityHidden(true) ) } } diff --git a/Ring/Ring/Resources/en.lproj/Localizable.strings b/Ring/Ring/Resources/en.lproj/Localizable.strings index 59eac7dd2..1b755352c 100644 --- a/Ring/Ring/Resources/en.lproj/Localizable.strings +++ b/Ring/Ring/Resources/en.lproj/Localizable.strings @@ -510,3 +510,5 @@ "accessibility.smartListSwitchAccounts" = "Switch account"; "accessibility.smartListConnectedAs" = "Your current account is %@"; "accessibility.smartListAddAccount" = "Add account"; +"accessibility.aboutJamiTitle" = "About Jami"; +"accessibility.welcomeToJamiTitle" = "Welcome to Jami"; -- GitLab