From fccce078b264d718d6e727bbecde647b6e6a3814 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Thu, 17 Jun 2021 23:30:50 -0400 Subject: [PATCH] Fix VoiceOver focus staying in place after navigating --- Gemini-iOS/BrowserNavigationController.swift | 6 ++++++ Gemini-iOS/BrowserWebViewController.swift | 1 + Gemini-iOS/NavigationBarView.swift | 1 + 3 files changed, 8 insertions(+) diff --git a/Gemini-iOS/BrowserNavigationController.swift b/Gemini-iOS/BrowserNavigationController.swift index b32565d..0cc458a 100644 --- a/Gemini-iOS/BrowserNavigationController.swift +++ b/Gemini-iOS/BrowserNavigationController.swift @@ -128,11 +128,13 @@ class BrowserNavigationController: UIViewController { private func onNavigate(_ operation: NavigationManager.Operation) { let newVC: BrowserWebViewController + var postAccessibilityNotification = false switch operation { case .go: backBrowserVCs.append(currentBrowserVC) newVC = BrowserWebViewController(navigator: navigator, url: navigator.currentURL) + postAccessibilityNotification = true case .reload: currentBrowserVC.reload() @@ -163,6 +165,10 @@ class BrowserNavigationController: UIViewController { self.toolbarOffset = 0 } + if postAccessibilityNotification { + // this moves focus to the nav bar, which isn't ideal, but it's better than nothing + UIAccessibility.post(notification: .screenChanged, argument: nil) + } } private let startEdgeNavigationSwipeDistance: CGFloat = 75 diff --git a/Gemini-iOS/BrowserWebViewController.swift b/Gemini-iOS/BrowserWebViewController.swift index f293a96..e4374a5 100644 --- a/Gemini-iOS/BrowserWebViewController.swift +++ b/Gemini-iOS/BrowserWebViewController.swift @@ -151,6 +151,7 @@ class BrowserWebViewController: UIViewController { func reload() { loaded = false loadedFallback = false + document = nil loadDocument() } diff --git a/Gemini-iOS/NavigationBarView.swift b/Gemini-iOS/NavigationBarView.swift index 4b84a83..8030106 100644 --- a/Gemini-iOS/NavigationBarView.swift +++ b/Gemini-iOS/NavigationBarView.swift @@ -39,6 +39,7 @@ class NavigationBarView: UIView { textField = UITextField() textField.text = navigator.displayURL textField.borderStyle = .roundedRect + textField.textContentType = .URL textField.keyboardType = .URL textField.returnKeyType = .go textField.autocapitalizationType = .none