diff --git a/VDS/Components/Tilelet/Tilelet.swift b/VDS/Components/Tilelet/Tilelet.swift index 0da20709..615c0b40 100644 --- a/VDS/Components/Tilelet/Tilelet.swift +++ b/VDS/Components/Tilelet/Tilelet.swift @@ -414,7 +414,7 @@ open class Tilelet: TileContainerBase { /// Used to update any Accessibility properties. open override var accessibilityElements: [Any]? { get { - var views = [UIView]() + var views = [AnyObject]() // grab the available views in order if badgeModel != nil { @@ -422,9 +422,9 @@ open class Tilelet: TileContainerBase { } if titleModel != nil || subTitleModel != nil || eyebrowModel != nil { - views.append(titleLockup) + let titleLockupViews = gatherAccessibilityElements(from: titleLockup) + views.append(contentsOf: titleLockupViews) } - containerView.setAccessibilityLabel(for: views) // get the views to return diff --git a/VDS/Extensions/UIView+Accessibility.swift b/VDS/Extensions/UIView+Accessibility.swift index ee247175..153c517d 100644 --- a/VDS/Extensions/UIView+Accessibility.swift +++ b/VDS/Extensions/UIView+Accessibility.swift @@ -14,14 +14,14 @@ extension UIView { /// - views: Array of Views that you want to join the accessibilityLabel. /// - separator: Separator used between the accessibilityLabel for each UIView. /// - Returns: Joined String. - public func combineAccessibilityLabel(for views: [UIView], separator: String = ", ") -> String? { - let labels = views.map({($0.accessibilityLabel?.isEmpty ?? true) ? nil : $0.accessibilityLabel}).compactMap({$0}) + public func combineAccessibilityLabel(for views: [AnyObject], separator: String = ", ") -> String? { + let labels: [String] = views.map({($0.accessibilityLabel?.isEmpty ?? true) ? nil : $0.accessibilityLabel}).compactMap({$0}) return labels.joined(separator: separator) } /// AccessibilityLabel helper for joining the accessibilityLabel property of all views passed in. /// - Parameter views: Array of Views that you want to join the accessibilityLabel. - public func setAccessibilityLabel(for views: [UIView]) { + public func setAccessibilityLabel(for views: [AnyObject]) { accessibilityLabel = combineAccessibilityLabel(for: views) } @@ -50,8 +50,8 @@ extension UIView { return isIntersecting } - public func gatherAccessibilityElements(from view: UIView) -> [Any] { - var elements: [Any] = [] + public func gatherAccessibilityElements(from view: AnyObject) -> [AnyObject] { + var elements: [AnyObject] = [] for subview in view.subviews { if subview.isAccessibilityElement && subview.isVisibleOnScreen {