CXTDT-518373 - Accessibility on Loader
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
931a697f5c
commit
b535fe5323
@ -120,11 +120,12 @@ open class Loader: View {
|
|||||||
|
|
||||||
// setup timer for post
|
// setup timer for post
|
||||||
loadingTimer = Timer.scheduledTimer(withTimeInterval: 60, repeats: true) { [weak self] _ in
|
loadingTimer = Timer.scheduledTimer(withTimeInterval: 60, repeats: true) { [weak self] _ in
|
||||||
self?.accessibilityLabel = "Still Loading"
|
guard let self, self.isActive, self.isVisibleOnScreen else { return }
|
||||||
|
self.accessibilityLabel = "Still Loading"
|
||||||
UIAccessibility.post(notification: .announcement, argument: "Still Loading")
|
UIAccessibility.post(notification: .announcement, argument: "Still Loading")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func stopAnimating() {
|
private func stopAnimating() {
|
||||||
isAccessibilityElement = false
|
isAccessibilityElement = false
|
||||||
icon.isHidden = true
|
icon.isHidden = true
|
||||||
@ -132,7 +133,7 @@ open class Loader: View {
|
|||||||
loadingTimer?.invalidate()
|
loadingTimer?.invalidate()
|
||||||
loadingTimer = nil
|
loadingTimer = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
deinit {
|
deinit {
|
||||||
stopAnimating()
|
stopAnimating()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,4 +24,30 @@ extension UIView {
|
|||||||
public func setAccessibilityLabel(for views: [UIView]) {
|
public func setAccessibilityLabel(for views: [UIView]) {
|
||||||
accessibilityLabel = combineAccessibilityLabel(for: views)
|
accessibilityLabel = combineAccessibilityLabel(for: views)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Will tell if the view is actually visibile on screen, also it will check the hierarchy above this view.
|
||||||
|
public var isVisibleOnScreen: Bool {
|
||||||
|
// Ensure the view has a window, meaning it's part of the view hierarchy
|
||||||
|
guard let window = self.window, !self.isHidden, self.alpha > 0 else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the view's frame intersects with the window's bounds
|
||||||
|
let viewFrameInWindow = self.convert(self.bounds, to: window)
|
||||||
|
var isIntersecting = viewFrameInWindow.intersects(window.bounds)
|
||||||
|
|
||||||
|
// Check parent views for visibility
|
||||||
|
var currentView: UIView? = self
|
||||||
|
while let view = currentView, isIntersecting {
|
||||||
|
// If any parent has a constraint making it effectively invisible, set isIntersecting to false
|
||||||
|
if view.bounds.size.width == 0 || view.bounds.size.height == 0 {
|
||||||
|
isIntersecting = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
currentView = view.superview
|
||||||
|
}
|
||||||
|
|
||||||
|
return isIntersecting
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,7 @@
|
|||||||
|
1.0.54
|
||||||
|
----------------
|
||||||
|
- CXTDT-518373 Accessibility Voiceover is reading “Still Loading” after waiting for a short time in all the screens.
|
||||||
|
|
||||||
1.0.53
|
1.0.53
|
||||||
----------------
|
----------------
|
||||||
- ONEAPP-4683 - Updated to accesibilityValue for the tabs position.
|
- ONEAPP-4683 - Updated to accesibilityValue for the tabs position.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user