From 16d37e1c45aefc75cfecb797128efab2cee1a5f6 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Fri, 28 Jul 2023 14:29:43 -0500 Subject: [PATCH] ONEAPP-5104 - Button Disabled Accessibility iOS Signed-off-by: Matt Bruce --- VDS/Classes/SelectorBase.swift | 11 ++++++----- VDS/Classes/SelectorGroupHandlerBase.swift | 14 +++++++------- VDS/Classes/SelectorItemBase.swift | 12 +++++++----- VDS/Components/Buttons/Button/ButtonBase.swift | 6 +++--- VDS/Components/RadioBox/RadioBoxItem.swift | 10 +++++----- VDS/Components/Toggle/Toggle.swift | 10 +++++----- VDS/Components/Toggle/ToggleView.swift | 10 +++++----- VDS/Components/Tooltip/Tooltip.swift | 6 +++--- 8 files changed, 41 insertions(+), 38 deletions(-) diff --git a/VDS/Classes/SelectorBase.swift b/VDS/Classes/SelectorBase.swift index a6d6a7f5..ffd94ccd 100644 --- a/VDS/Classes/SelectorBase.swift +++ b/VDS/Classes/SelectorBase.swift @@ -90,16 +90,17 @@ open class SelectorBase: Control, SelectorControlable { open override func updateAccessibilityLabel() { accessibilityValue = isSelected ? "1" : "0" - if !accessibilityTraits.contains(.selected) && isSelected { + if isSelected { accessibilityTraits.insert(.selected) - } else if accessibilityTraits.contains(.selected) && !isSelected{ + } else { accessibilityTraits.remove(.selected) } - if !accessibilityTraits.contains(.notEnabled) && !isEnabled { - accessibilityTraits.insert(.notEnabled) - } else if accessibilityTraits.contains(.notEnabled) && !isEnabled { + if isEnabled { accessibilityTraits.remove(.notEnabled) + } else { + accessibilityTraits.insert(.notEnabled) } + accessibilityLabel = isSelected ? "Selected" : "Not Selected" } } diff --git a/VDS/Classes/SelectorGroupHandlerBase.swift b/VDS/Classes/SelectorGroupHandlerBase.swift index 76a6fc74..d5669538 100644 --- a/VDS/Classes/SelectorGroupHandlerBase.swift +++ b/VDS/Classes/SelectorGroupHandlerBase.swift @@ -69,18 +69,18 @@ open class SelectorGroupHandlerBase: Control, Changeable { selectorViews.forEach{ $0.reset() } } - open override func updateAccessibilityLabel() { - if !accessibilityTraits.contains(.selected) && isSelected { + open override func updateAccessibilityLabel() { + if isSelected { accessibilityTraits.insert(.selected) - } else if accessibilityTraits.contains(.selected) && !isSelected{ + } else { accessibilityTraits.remove(.selected) } - if !accessibilityTraits.contains(.notEnabled) && !isEnabled { - accessibilityTraits.insert(.notEnabled) - } else if accessibilityTraits.contains(.notEnabled) && !isEnabled { + if isEnabled { accessibilityTraits.remove(.notEnabled) - } + } else { + accessibilityTraits.insert(.notEnabled) + } setAccessibilityLabel(for: selectorViews) } } diff --git a/VDS/Classes/SelectorItemBase.swift b/VDS/Classes/SelectorItemBase.swift index b9f659bd..c98102fd 100644 --- a/VDS/Classes/SelectorItemBase.swift +++ b/VDS/Classes/SelectorItemBase.swift @@ -272,17 +272,19 @@ open class SelectorItemBase: Control, Errorable, open override func updateAccessibilityLabel() { accessibilityValue = isSelected ? "1" : "0" - if !accessibilityTraits.contains(.selected) && isSelected { + if isSelected { accessibilityTraits.insert(.selected) - } else if accessibilityTraits.contains(.selected) && !isSelected{ + } else { accessibilityTraits.remove(.selected) } - if !accessibilityTraits.contains(.notEnabled) && !isEnabled { - accessibilityTraits.insert(.notEnabled) - } else if accessibilityTraits.contains(.notEnabled) && !isEnabled { + if isEnabled { accessibilityTraits.remove(.notEnabled) + } else { + accessibilityTraits.insert(.notEnabled) } setAccessibilityLabel(for: [label, childLabel, errorLabel]) + + accessibilityLabel = "\(isSelected ? "Selected" : "Not Selected"), \(accessibilityLabel ?? "")" } } diff --git a/VDS/Components/Buttons/Button/ButtonBase.swift b/VDS/Components/Buttons/Button/ButtonBase.swift index 054c10b3..ea01479d 100644 --- a/VDS/Components/Buttons/Button/ButtonBase.swift +++ b/VDS/Components/Buttons/Button/ButtonBase.swift @@ -162,10 +162,10 @@ open class ButtonBase: UIButton, Buttonable, Handlerable, ViewProtocol, Resettab } open func updateAccessibilityLabel() { - if !accessibilityTraits.contains(.notEnabled) && !isEnabled { - accessibilityTraits.insert(.notEnabled) - } else if accessibilityTraits.contains(.notEnabled) && !isEnabled { + if isEnabled { accessibilityTraits.remove(.notEnabled) + } else { + accessibilityTraits.insert(.notEnabled) } } diff --git a/VDS/Components/RadioBox/RadioBoxItem.swift b/VDS/Components/RadioBox/RadioBoxItem.swift index 74e2f574..9f674099 100644 --- a/VDS/Components/RadioBox/RadioBoxItem.swift +++ b/VDS/Components/RadioBox/RadioBoxItem.swift @@ -250,16 +250,16 @@ open class RadioBoxItem: Control, Changeable { open override func updateAccessibilityLabel() { accessibilityValue = isSelected ? "1" : "0" - if !accessibilityTraits.contains(.selected) && isSelected { + if isSelected { accessibilityTraits.insert(.selected) - } else if accessibilityTraits.contains(.selected) && !isSelected{ + } else { accessibilityTraits.remove(.selected) } - if !accessibilityTraits.contains(.notEnabled) && !isEnabled { - accessibilityTraits.insert(.notEnabled) - } else if accessibilityTraits.contains(.notEnabled) && !isEnabled { + if isEnabled { accessibilityTraits.remove(.notEnabled) + } else { + accessibilityTraits.insert(.notEnabled) } if accessibilityLabel == nil { setAccessibilityLabel(for: [textLabel, subTextLabel, subTextRightLabel]) diff --git a/VDS/Components/Toggle/Toggle.swift b/VDS/Components/Toggle/Toggle.swift index 1d9b77b0..30459205 100644 --- a/VDS/Components/Toggle/Toggle.swift +++ b/VDS/Components/Toggle/Toggle.swift @@ -242,16 +242,16 @@ open class Toggle: Control, Changeable { open override func updateAccessibilityLabel() { accessibilityValue = isSelected ? "1" : "0" - if !accessibilityTraits.contains(.selected) && isSelected { + if isSelected { accessibilityTraits.insert(.selected) - } else if accessibilityTraits.contains(.selected) && !isSelected{ + } else { accessibilityTraits.remove(.selected) } - if !accessibilityTraits.contains(.notEnabled) && !isEnabled { - accessibilityTraits.insert(.notEnabled) - } else if accessibilityTraits.contains(.notEnabled) && !isEnabled{ + if isEnabled { accessibilityTraits.remove(.notEnabled) + } else { + accessibilityTraits.insert(.notEnabled) } setAccessibilityLabel(for: [label]) } diff --git a/VDS/Components/Toggle/ToggleView.swift b/VDS/Components/Toggle/ToggleView.swift index db07e66d..1608bb6c 100644 --- a/VDS/Components/Toggle/ToggleView.swift +++ b/VDS/Components/Toggle/ToggleView.swift @@ -205,16 +205,16 @@ open class ToggleView: Control, Changeable { open override func updateAccessibilityLabel() { accessibilityLabel = "Toggle" accessibilityValue = isSelected ? "1" : "0" - if !accessibilityTraits.contains(.selected) && isSelected { + if isSelected { accessibilityTraits.insert(.selected) - } else if accessibilityTraits.contains(.selected) && !isSelected{ + } else { accessibilityTraits.remove(.selected) } - if !accessibilityTraits.contains(.notEnabled) && !isEnabled { - accessibilityTraits.insert(.notEnabled) - } else if accessibilityTraits.contains(.notEnabled) && !isEnabled{ + if isEnabled { accessibilityTraits.remove(.notEnabled) + } else { + accessibilityTraits.insert(.notEnabled) } } } diff --git a/VDS/Components/Tooltip/Tooltip.swift b/VDS/Components/Tooltip/Tooltip.swift index 585ab355..9c55747f 100644 --- a/VDS/Components/Tooltip/Tooltip.swift +++ b/VDS/Components/Tooltip/Tooltip.swift @@ -167,10 +167,10 @@ open class Tooltip: Control, TooltipLaunchable { } open override func updateAccessibilityLabel() { - if !accessibilityTraits.contains(.notEnabled) && !isEnabled { - accessibilityTraits.insert(.notEnabled) - } else if accessibilityTraits.contains(.notEnabled) && !isEnabled { + if isEnabled { accessibilityTraits.remove(.notEnabled) + } else { + accessibilityTraits.insert(.notEnabled) } var label = title if label == nil {