diff --git a/VDS/Components/Badge/Badge.swift b/VDS/Components/Badge/Badge.swift index 1f3fe2b2..69d41b6a 100644 --- a/VDS/Components/Badge/Badge.swift +++ b/VDS/Components/Badge/Badge.swift @@ -178,7 +178,7 @@ open class BadgeBase: View { maxWidthConstraint?.isActive = false } label.set(with: viewModel.label) - setAccessibilityLabel(!viewModel.disabled) + setAccessibilityLabel() } } diff --git a/VDS/Components/Checkbox/Checkbox.swift b/VDS/Components/Checkbox/Checkbox.swift index 46e6d034..caf2dd8a 100644 --- a/VDS/Components/Checkbox/Checkbox.swift +++ b/VDS/Components/Checkbox/Checkbox.swift @@ -234,7 +234,7 @@ open class CheckboxBase: Control { updateLabels(viewModel) updateSelector(viewModel) - setAccessibilityHint(enabled) + setAccessibilityHint() setAccessibilityValue(viewModel.selected) setAccessibilityLabel(viewModel.selected) setNeedsLayout() diff --git a/VDS/Components/RadioBox/RadioBox.swift b/VDS/Components/RadioBox/RadioBox.swift index 6b860403..4d71159d 100644 --- a/VDS/Components/RadioBox/RadioBox.swift +++ b/VDS/Components/RadioBox/RadioBox.swift @@ -211,7 +211,7 @@ open class RadioBoxBase: Control { updateLabels(viewModel) updateSelector(viewModel) - setAccessibilityHint(enabled) + setAccessibilityHint() setAccessibilityValue(viewModel.selected) setAccessibilityLabel(viewModel.selected) setNeedsLayout() diff --git a/VDS/Components/RadioButton/RadioButton.swift b/VDS/Components/RadioButton/RadioButton.swift index be4a6967..cb2081c9 100644 --- a/VDS/Components/RadioButton/RadioButton.swift +++ b/VDS/Components/RadioButton/RadioButton.swift @@ -244,7 +244,7 @@ open class RadioButtonBase: Control { updateLabels(viewModel) updateSelector(viewModel) - setAccessibilityHint(enabled) + setAccessibilityHint() setAccessibilityValue(viewModel.selected) setAccessibilityLabel(viewModel.selected) setNeedsLayout() diff --git a/VDS/Components/RadioSwatch/RadioSwatch.swift b/VDS/Components/RadioSwatch/RadioSwatch.swift index 235b28bd..1d0e4164 100644 --- a/VDS/Components/RadioSwatch/RadioSwatch.swift +++ b/VDS/Components/RadioSwatch/RadioSwatch.swift @@ -144,7 +144,7 @@ open class RadioSwatchBase: Control { let enabled = !viewModel.disabled updateSelector(viewModel) - setAccessibilityHint(enabled) + setAccessibilityHint() setAccessibilityValue(viewModel.selected) setAccessibilityLabel(viewModel.selected) setNeedsLayout() diff --git a/VDS/Components/Toggle/Toggle.swift b/VDS/Components/Toggle/Toggle.swift index b66d4eef..27d19634 100644 --- a/VDS/Components/Toggle/Toggle.swift +++ b/VDS/Components/Toggle/Toggle.swift @@ -333,7 +333,7 @@ open class ToggleBase: Control { label.set(with: viewModel.label) updateLabel(viewModel) updateToggle(viewModel) - setAccessibilityHint(!viewModel.disabled) + setAccessibilityHint() setAccessibilityValue(viewModel.on) setAccessibilityLabel(viewModel.on) backgroundColor = viewModel.surface.color diff --git a/VDS/Protocols/Accessable.swift b/VDS/Protocols/Accessable.swift index 35afd6e6..fd9ad370 100644 --- a/VDS/Protocols/Accessable.swift +++ b/VDS/Protocols/Accessable.swift @@ -26,26 +26,29 @@ extension ModelHandlerable where Self: UIView { return model } - public func setAccessibilityHint(_ enabled: Bool = true) { - if let value = accessableModel?.accessibilityHintEnabled, enabled { + public func setAccessibilityHint(_ override: Bool? = nil) { + let check = override ?? !model.disabled + if let value = accessableModel?.accessibilityHintEnabled, check { accessibilityHint = value - } else if let value = accessableModel?.accessibilityHintDisabled, !enabled { + } else if let value = accessableModel?.accessibilityHintDisabled, !check { accessibilityHint = value } } - public func setAccessibilityValue(_ enabled: Bool = true) { - if let value = accessableModel?.accessibilityValueEnabled, enabled { + public func setAccessibilityValue(_ override: Bool? = nil) { + let check = override ?? !model.disabled + if let value = accessableModel?.accessibilityValueEnabled, check { accessibilityValue = value - } else if let value = accessableModel?.accessibilityValueDisabled, !enabled { + } else if let value = accessableModel?.accessibilityValueDisabled, !check { accessibilityValue = value } } - public func setAccessibilityLabel(_ enabled: Bool = true) { - if let value = accessableModel?.accessibilityLabelEnabled, enabled { + public func setAccessibilityLabel(_ override: Bool? = nil) { + let check = override ?? !model.disabled + if let value = accessableModel?.accessibilityLabelEnabled, check { accessibilityLabel = value - } else if let value = accessableModel?.accessibilityLabelDisabled, !enabled { + } else if let value = accessableModel?.accessibilityLabelDisabled, !check { accessibilityLabel = value } }