diff --git a/VDS/BaseClasses/Selector/SelectorItemBase.swift b/VDS/BaseClasses/Selector/SelectorItemBase.swift index cee8d9c2..24e949e7 100644 --- a/VDS/BaseClasses/Selector/SelectorItemBase.swift +++ b/VDS/BaseClasses/Selector/SelectorItemBase.swift @@ -149,14 +149,13 @@ open class SelectorItemBase: Control, Errorable, open var accessibilityLabelText: String { var accessibilityLabels = [String]() - accessibilityLabels.append("\(Selector.self)") - if let text = labelText { + if let text = labelText, !text.isEmpty { accessibilityLabels.append(text) } - if let text = childText { + if let text = childText, !text.isEmpty { accessibilityLabels.append(text) } @@ -164,7 +163,7 @@ open class SelectorItemBase: Control, Errorable, accessibilityLabels.append("dimmed") } - if let errorText, showError { + if let errorText, showError, !errorText.isEmpty { accessibilityLabels.append("error, \(errorText)") } @@ -177,9 +176,7 @@ open class SelectorItemBase: Control, Errorable, /// Executed on initialization for this View. open override func initialSetup() { super.initialSetup() - onClick = { control in - control.toggle() - } + } /// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations. @@ -190,7 +187,6 @@ open class SelectorItemBase: Control, Errorable, selectorView.shouldUpdateAccessibility = false isAccessibilityElement = false - accessibilityElements = [selectorView, label, childLabel, errorLabel] addSubview(mainStackView) mainStackView.isUserInteractionEnabled = false @@ -211,6 +207,7 @@ open class SelectorItemBase: Control, Errorable, open override func updateView() { super.updateView() updateLabels() + selectorView.isUserInteractionEnabled = true selectorView.showError = showError selectorView.isSelected = isSelected selectorView.isHighlighted = isHighlighted @@ -224,7 +221,30 @@ open class SelectorItemBase: Control, Errorable, selectorView.accessibilityLabel = accessibilityLabelText selectorView.accessibilityHint = !isEnabled ? "" : "Double tap to activate." accessibilityValue = accessibilityValueText - + } + + open override var accessibilityElements: [Any]? { + get { + var elements = [Any]() + + elements.append(selectorView) + + if let text = labelText, !text.isEmpty { + elements.append(label) + } + + if let text = childText, !text.isEmpty { + elements.append(childLabel) + } + + if let errorText, showError, !errorText.isEmpty { + elements.append(errorLabel) + } + return elements + } + set { + super.accessibilityElements = newValue + } } /// Resets to default settings.