// // Accessable.swift // VDS // // Created by Matt Bruce on 7/26/22. // import Foundation import UIKit public protocol Accessable { var accessibilityHintEnabled: String? { get set } var accessibilityHintDisabled: String? { get set } var accessibilityValueEnabled: String? { get set } var accessibilityValueDisabled: String? { get set } var accessibilityLabelEnabled: String? { get set } var accessibilityLabelDisabled: String? { get set } } //Configurations to set within the UIControl extension ModelHandlerable where Self: UIView { private var accessableModel: Accessable? { guard let model = self.model as? Accessable else { return nil } return model } public func setAccessibilityHint(_ enabled: Bool = true) { if let value = accessableModel?.accessibilityHintEnabled, enabled { accessibilityHint = value } else if let value = accessableModel?.accessibilityHintDisabled, !enabled { accessibilityHint = value } } public func setAccessibilityValue(_ enabled: Bool = true) { if let value = accessableModel?.accessibilityValueEnabled, enabled { accessibilityValue = value } else if let value = accessableModel?.accessibilityValueDisabled, !enabled { accessibilityValue = value } } public func setAccessibilityLabel(_ enabled: Bool = true) { if let value = accessableModel?.accessibilityLabelEnabled, enabled { accessibilityLabel = value } else if let value = accessableModel?.accessibilityLabelDisabled, !enabled { accessibilityLabel = value } } }