Addressed review comments

This commit is contained in:
Keerthy 2023-10-13 23:31:18 +05:30
parent a3d3b1e635
commit c972597a11
17 changed files with 27 additions and 19 deletions

View File

@ -74,6 +74,8 @@ open class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupWat
} }
} }
public var accessibilityTraits: UIAccessibilityTraits? public var accessibilityTraits: UIAccessibilityTraits?
public var disabledAccessibilityTraits: UIAccessibilityTraits?
public var isAccessibilityElement: Bool?
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Methods // MARK: - Methods
@ -197,6 +199,8 @@ open class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupWat
case disabledBorderColor case disabledBorderColor
case width case width
case accessibilityTraits case accessibilityTraits
case disabledAccessibilityTraits
case isAccessibilityElement
} }
//-------------------------------------------------- //--------------------------------------------------
@ -266,6 +270,8 @@ open class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupWat
backgroundColor = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor) backgroundColor = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor)
width = try typeContainer.decodeIfPresent(CGFloat.self, forKey: .width) width = try typeContainer.decodeIfPresent(CGFloat.self, forKey: .width)
accessibilityTraits = try typeContainer.decodeIfPresent(UIAccessibilityTraits.self, forKey: .accessibilityTraits) accessibilityTraits = try typeContainer.decodeIfPresent(UIAccessibilityTraits.self, forKey: .accessibilityTraits)
disabledAccessibilityTraits = try typeContainer.decodeIfPresent(UIAccessibilityTraits.self, forKey: .disabledAccessibilityTraits)
isAccessibilityElement = try typeContainer.decodeIfPresent(Bool.self, forKey: .isAccessibilityElement)
} }
open func encode(to encoder: Encoder) throws { open func encode(to encoder: Encoder) throws {
@ -290,5 +296,7 @@ open class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupWat
try container.encodeIfPresent(groupName, forKey: .groupName) try container.encodeIfPresent(groupName, forKey: .groupName)
try container.encodeIfPresent(width, forKey: .width) try container.encodeIfPresent(width, forKey: .width)
try container.encodeIfPresent(accessibilityTraits, forKey: .accessibilityTraits) try container.encodeIfPresent(accessibilityTraits, forKey: .accessibilityTraits)
try container.encodeIfPresent(disabledAccessibilityTraits, forKey: .disabledAccessibilityTraits)
try container.encodeIfPresent(isAccessibilityElement, forKey: .isAccessibilityElement)
} }
} }

View File

@ -60,7 +60,7 @@ open class ImageButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGro
image = try typeContainer.decodeIfPresent(ImageViewModel.self, forKey: .image) image = try typeContainer.decodeIfPresent(ImageViewModel.self, forKey: .image)
accessibilityText = try typeContainer.decodeIfPresent(String.self, forKey: .accessibilityText) accessibilityText = try typeContainer.decodeIfPresent(String.self, forKey: .accessibilityText)
action = try typeContainer.decodeModel(codingKey: .action) action = try typeContainer.decodeModel(codingKey: .action)
accessibilityTraits = try typeContainer.decodeIfPresent(UIAccessibilityTraits.self, forKey: .accessibilityTraits) accessibilityTraits = try typeContainer.decodeIfPresent(UIAccessibilityTraits.self, forKey: .accessibilityTraits) ?? .button
if let enabled = try typeContainer.decodeIfPresent(Bool.self, forKey: .enabled) { if let enabled = try typeContainer.decodeIfPresent(Bool.self, forKey: .enabled) {
self.enabled = enabled self.enabled = enabled
} }

View File

@ -101,7 +101,7 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol {
#if DEBUG #if DEBUG
// Useful to detect with isHittable when performing UI testing. // Useful to detect with isHittable when performing UI testing.
isAccessibilityElement = isEnabled isAccessibilityElement = model?.isAccessibilityElement ?? isEnabled
#endif #endif
if isEnabled { if isEnabled {
@ -134,6 +134,7 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol {
case .standard: case .standard:
verticalPadding = Padding.Three verticalPadding = Padding.Three
horizontalPadding = Padding.Five horizontalPadding = Padding.Five
break break
case .small: case .small:
verticalPadding = Padding.Two verticalPadding = Padding.Two
@ -173,9 +174,8 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol {
} }
FormValidator.setupValidation(for: model, delegate: delegateObject?.formHolderDelegate) FormValidator.setupValidation(for: model, delegate: delegateObject?.formHolderDelegate)
if let traits = model.accessibilityTraits { accessibilityTraits = isEnabled ? (model.accessibilityTraits ?? .button) : (model.disabledAccessibilityTraits ?? .none)
accessibilityTraits = traits
}
} }
open override class func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? { open override class func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? {

View File

@ -91,6 +91,6 @@
} }
accessibilityLabel = message accessibilityLabel = message
accessibilityTraits = (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
} }
} }

View File

@ -99,7 +99,7 @@
func updateAccessibilityLabel() { func updateAccessibilityLabel() {
let linkShowing = eyebrowHeadlineBodyLink.link.titleLabel?.text?.count ?? 0 > 0 let linkShowing = eyebrowHeadlineBodyLink.link.titleLabel?.text?.count ?? 0 > 0
isAccessibilityElement = !linkShowing isAccessibilityElement = !linkShowing
accessibilityTraits = (isAccessibilityElement && accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
if !linkShowing { if !linkShowing {
// Make whole cell focusable if no link. // Make whole cell focusable if no link.

View File

@ -109,6 +109,6 @@
} }
accessibilityLabel = message accessibilityLabel = message
accessibilityTraits = (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
} }
} }

View File

@ -87,7 +87,7 @@
let linkShowing = eyebrowHeadlineBodyLink.link.titleLabel?.text?.count ?? 0 > 0 let linkShowing = eyebrowHeadlineBodyLink.link.titleLabel?.text?.count ?? 0 > 0
isAccessibilityElement = !linkShowing isAccessibilityElement = !linkShowing
accessibilityTraits = (isAccessibilityElement && accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
if !linkShowing { if !linkShowing {
// Make whole cell focusable if no link. // Make whole cell focusable if no link.

View File

@ -89,7 +89,7 @@
} }
accessibilityLabel = message accessibilityLabel = message
accessibilityTraits = (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
} }
} }

View File

@ -131,6 +131,6 @@
} }
accessibilityLabel = message accessibilityLabel = message
accessibilityTraits = (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
} }
} }

View File

@ -95,7 +95,7 @@ import Foundation
// Ensures voice over does not read "selected" after user triggers action on cell. // Ensures voice over does not read "selected" after user triggers action on cell.
override public var accessibilityTraits: UIAccessibilityTraits { override public var accessibilityTraits: UIAccessibilityTraits {
get { get {
return (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none return listItemModel?.accessibilityTraits ?? .button
} }
set {} set {}
} }

View File

@ -46,7 +46,7 @@ import Foundation
/// Ensures voice over does not read "selected" after user triggers action on cell. /// Ensures voice over does not read "selected" after user triggers action on cell.
override public var accessibilityTraits: UIAccessibilityTraits { override public var accessibilityTraits: UIAccessibilityTraits {
get { get {
return (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none return listItemModel?.accessibilityTraits ?? .button
} }
set {} set {}
} }

View File

@ -91,6 +91,6 @@
} }
accessibilityLabel = message accessibilityLabel = message
accessibilityTraits = (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
} }
} }

View File

@ -83,6 +83,6 @@
} }
accessibilityLabel = message accessibilityLabel = message
accessibilityTraits = (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
} }
} }

View File

@ -100,7 +100,7 @@
let linkShowing = eyebrowHeadlineBodyLink.link.titleLabel?.text?.count ?? 0 > 0 let linkShowing = eyebrowHeadlineBodyLink.link.titleLabel?.text?.count ?? 0 > 0
isAccessibilityElement = !linkShowing isAccessibilityElement = !linkShowing
accessibilityTraits = (isAccessibilityElement && accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
if !linkShowing { if !linkShowing {
// Make whole cell focusable if no link. // Make whole cell focusable if no link.

View File

@ -98,6 +98,6 @@
} }
accessibilityLabel = message accessibilityLabel = message
accessibilityTraits = (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
} }
} }

View File

@ -97,7 +97,7 @@
let linkShowing = eyebrowHeadlineBodyLink.link.titleLabel?.text?.count ?? 0 > 0 let linkShowing = eyebrowHeadlineBodyLink.link.titleLabel?.text?.count ?? 0 > 0
isAccessibilityElement = !linkShowing isAccessibilityElement = !linkShowing
accessibilityTraits = (isAccessibilityElement && accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
if !linkShowing { if !linkShowing {
// Make whole cell focusable if no link. // Make whole cell focusable if no link.

View File

@ -95,6 +95,6 @@
} }
accessibilityLabel = message accessibilityLabel = message
accessibilityTraits = (accessoryView != nil) ? (listItemModel?.accessibilityTraits ?? .button) : .none accessibilityTraits = listItemModel?.accessibilityTraits ?? .button
} }
} }