Skip to content

Commit 7141932

Browse files
author
Alex Wall
committed
Implementing generic Accessibility labels and voice over for the various HUD content types
1 parent fadb681 commit 7141932

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

PKHUD/HUD.swift

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public final class HUD {
4444
// MARK: Public methods, PKHUD based
4545
public static func show(_ content: HUDContentType, onView view: UIView? = nil) {
4646
PKHUD.sharedHUD.contentView = contentView(content)
47+
PKHUD.sharedHUD.contentView.setAccessibilityProperties(for: content)
4748
PKHUD.sharedHUD.show(onView: view)
4849
}
4950

@@ -102,3 +103,30 @@ public final class HUD {
102103
}
103104
}
104105
}
106+
107+
fileprivate extension UIView {
108+
fileprivate func setAccessibilityProperties(for content: HUDContentType) {
109+
self.accessibilityLabel = "Please wait."
110+
switch content {
111+
case .success:
112+
self.accessibilityLabel = "Success!"
113+
case .error:
114+
self.accessibilityLabel = "Error!"
115+
case .image(_),
116+
.rotatingImage(_):
117+
self.accessibilityLabel = "Image"
118+
case .label(let title):
119+
guard let label = title else { break }
120+
self.accessibilityLabel = label
121+
case .labeledSuccess(let title, let subtitle),
122+
.labeledError(let title, let subtitle),
123+
.labeledProgress(let title, let subtitle),
124+
.labeledImage(_, let title, let subtitle),
125+
.labeledRotatingImage(_, let title, let subtitle):
126+
guard title != nil || subtitle != nil else { break }
127+
self.accessibilityLabel = (title ?? "") + "\n" + (subtitle ?? "")
128+
default:
129+
self.accessibilityLabel = "Please wait."
130+
}
131+
}
132+
}

PKHUD/PKHUD.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ open class PKHUD: NSObject {
132132
} else {
133133
showContent()
134134
}
135+
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.container.frameView.content)
135136
}
136137

137138
func showContent() {

0 commit comments

Comments
 (0)