From 7e89e58cd1186c7ecb9d4c50bfe55c8e731cca9c Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Wed, 25 Mar 2020 14:47:15 -0400 Subject: [PATCH] more accessibility stuff. --- MVMCoreUI/Atoms/Views/Label/Label.swift | 2 ++ .../Items/MoleculeTableViewCell.swift | 5 +++- .../ToggleMolecules/LabelToggleModel.swift | 24 ++++++++++++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/MVMCoreUI/Atoms/Views/Label/Label.swift b/MVMCoreUI/Atoms/Views/Label/Label.swift index c7e72204..a6a7cfe1 100644 --- a/MVMCoreUI/Atoms/Views/Label/Label.swift +++ b/MVMCoreUI/Atoms/Views/Label/Label.swift @@ -316,6 +316,7 @@ public typealias ActionBlock = () -> () text = labelModel.text hero = labelModel.hero Label.setLabel(self, withHTML: labelModel.html) + isAccessibilityElement = hasText let alignment = LabelAlignment(rawValue: labelModel.textAlignment ?? "") switch alignment { @@ -426,6 +427,7 @@ public typealias ActionBlock = () -> () continue } } + attributedText = attributedString originalAttributedString = attributedText } diff --git a/MVMCoreUI/Molecules/Items/MoleculeTableViewCell.swift b/MVMCoreUI/Molecules/Items/MoleculeTableViewCell.swift index 75f1f0d8..d04ff3b1 100644 --- a/MVMCoreUI/Molecules/Items/MoleculeTableViewCell.swift +++ b/MVMCoreUI/Molecules/Items/MoleculeTableViewCell.swift @@ -24,7 +24,10 @@ import UIKit (molecule as? ModelMoleculeViewProtocol)?.set(with: castModel.molecule, delegateObject, additionalData) } else if let moleculeView = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(castModel.molecule, delegateObject, false) { addMolecule(moleculeView) - accessibilityElements = [moleculeView] + + if ((moleculeView as? Label) != nil) { + accessibilityElements = [moleculeView] + } } super.set(with: model, delegateObject, additionalData) } diff --git a/MVMCoreUI/Molecules/LeftRightViews/ToggleMolecules/LabelToggleModel.swift b/MVMCoreUI/Molecules/LeftRightViews/ToggleMolecules/LabelToggleModel.swift index 16f292ed..64bc7e41 100644 --- a/MVMCoreUI/Molecules/LeftRightViews/ToggleMolecules/LabelToggleModel.swift +++ b/MVMCoreUI/Molecules/LeftRightViews/ToggleMolecules/LabelToggleModel.swift @@ -14,9 +14,31 @@ public class LabelToggleModel: MoleculeModelProtocol { public var backgroundColor: Color? public var label: LabelModel public var toggle: ToggleModel - + init(_ label: LabelModel, _ toggle: ToggleModel) { self.label = label self.toggle = toggle } + + private enum CodingKeys: String, CodingKey { + case moleculeName + case backgroundColor + case label + case toggle + } + + required public init(from decoder: Decoder) throws { + let typeContainer = try decoder.container(keyedBy: CodingKeys.self) + backgroundColor = try typeContainer.decodeIfPresent(Color.self, forKey:.backgroundColor) + label = try typeContainer.decode(LabelModel.self, forKey:.label) + toggle = try typeContainer.decode(ToggleModel.self, forKey:.toggle) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(moleculeName, forKey: .moleculeName) + try container.encodeIfPresent(backgroundColor, forKey: .backgroundColor) + try container.encode(label, forKey: .label) + try container.encode(toggle, forKey: .toggle) + } }