From 874acab559106397f5c0e0768cfee639f9b589b9 Mon Sep 17 00:00:00 2001 From: Marten Rebane <54431068+martenrebane@users.noreply.github.com> Date: Wed, 24 Jan 2024 18:28:05 +0200 Subject: [PATCH] Fix --- .../CertificateDetailViewController.swift | 6 +- MoppApp/MoppApp/LocalizationKeys.swift | 5 + MoppApp/MoppApp/MenuViewController.swift | 20 ++ MoppApp/MoppApp/Settings.storyboard | 318 ++---------------- MoppApp/MoppApp/en.lproj/Localizable.strings | 5 + MoppApp/MoppApp/et.lproj/Localizable.strings | 5 + MoppApp/MoppApp/ru.lproj/Localizable.strings | 5 + 7 files changed, 66 insertions(+), 298 deletions(-) diff --git a/MoppApp/MoppApp/CertificateDetailViewController.swift b/MoppApp/MoppApp/CertificateDetailViewController.swift index 715a8e7a..8c04a596 100644 --- a/MoppApp/MoppApp/CertificateDetailViewController.swift +++ b/MoppApp/MoppApp/CertificateDetailViewController.swift @@ -79,7 +79,11 @@ class CertificateDetailViewController: MoppViewController { UIAccessibility.post(notification: .layoutChanged, argument: navigationItem.leftBarButtonItem) } } - + + @objc internal override func backAction() { + dismiss(animated: true) + } + func setCertificateDetails() -> Void { certificateSections.append(CertificateSection(header: L(.subjectName), certificateDetail: [ CertificateDetail(title: L(.countryOrRegion), value: certificateDetail?.x509Certificate?.subject(oid: .countryName)?[0] ?? ""), diff --git a/MoppApp/MoppApp/LocalizationKeys.swift b/MoppApp/MoppApp/LocalizationKeys.swift index fdd63719..ad168287 100644 --- a/MoppApp/MoppApp/LocalizationKeys.swift +++ b/MoppApp/MoppApp/LocalizationKeys.swift @@ -493,4 +493,9 @@ enum LocKey : String case voiceControlDisableDefaultTimestampingService = "voice-control-disable-default-timestamping-service"; case voiceControlEnableRoleAndAddress = "voice-control-enable-role-and-address"; case voiceControlDisableRoleAndAddress = "voice-control-disable-role-and-address"; + case voiceControlHelpButton = "voice-control-help-button"; + case voiceControlAccessibilityButton = "voice-control-accessibility-button"; + case voiceControlSettingsButton = "voice-control-settings-button"; + case voiceControlInfoButton = "voice-control-info-button"; + case voiceControlDiagnosticsButton = "voice-control-diagnostics-button"; } diff --git a/MoppApp/MoppApp/MenuViewController.swift b/MoppApp/MoppApp/MenuViewController.swift index 010046b4..2a0c5300 100644 --- a/MoppApp/MoppApp/MenuViewController.swift +++ b/MoppApp/MoppApp/MenuViewController.swift @@ -125,6 +125,10 @@ extension MenuViewController : UITableViewDataSource { } else { cell.accessibilityTraits = UIAccessibilityTraits.button } + + // Support Voice Control without setting the whole cell as VoiceOver element + cell.isAccessibilityElement = !UIAccessibility.isVoiceOverRunning + cell.accessibilityUserInputLabels = [getVoiceControlLabel(title: title)] return cell } } @@ -191,6 +195,22 @@ extension MenuViewController : UITableViewDelegate { } } + func getVoiceControlLabel(title: String) -> String { + if title == L(.menuHelp) { + return L(.voiceControlHelpButton) + } else if title == L(.menuAccessibility) { + return L(.voiceControlAccessibilityButton) + } else if title == L(.menuSettings) { + return L(.voiceControlSettingsButton) + } else if title == L(.menuAbout) { + return L(.voiceControlInfoButton) + } else if title == L(.menuDiagnostics) { + return L(.voiceControlDiagnosticsButton) + } + + return "" + } + } extension MenuViewController : MenuHeaderDelegate { diff --git a/MoppApp/MoppApp/Settings.storyboard b/MoppApp/MoppApp/Settings.storyboard index 11ecfbd5..299447aa 100644 --- a/MoppApp/MoppApp/Settings.storyboard +++ b/MoppApp/MoppApp/Settings.storyboard @@ -354,7 +354,7 @@