refactored accessibility elements
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
fb23a411b9
commit
5d1cdcfdff
@ -77,7 +77,7 @@ public class TooltipLabelAttribute: ActionLabelAttributeModel, TooltipLaunchable
|
|||||||
self.subscriber = subscriber
|
self.subscriber = subscriber
|
||||||
self.surface = surface
|
self.surface = surface
|
||||||
self.model = model
|
self.model = model
|
||||||
self.accessibleText = accessibleText
|
self.accessibleText = accessibleText ?? model.accessibleText
|
||||||
self.presenter = presenter
|
self.presenter = presenter
|
||||||
|
|
||||||
//create the tooltip click event
|
//create the tooltip click event
|
||||||
|
|||||||
@ -207,7 +207,7 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
|
|||||||
open override func setup() {
|
open override func setup() {
|
||||||
super.setup()
|
super.setup()
|
||||||
|
|
||||||
isAccessibilityElement = true
|
isAccessibilityElement = false
|
||||||
addSubview(stackView)
|
addSubview(stackView)
|
||||||
|
|
||||||
//create the wrapping view
|
//create the wrapping view
|
||||||
|
|||||||
@ -148,7 +148,6 @@ open class InputField: EntryFieldBase {
|
|||||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||||
open override func setup() {
|
open override func setup() {
|
||||||
super.setup()
|
super.setup()
|
||||||
isAccessibilityElement = false
|
|
||||||
|
|
||||||
minWidthConstraint = containerView.widthAnchor.constraint(greaterThanOrEqualToConstant: 0)
|
minWidthConstraint = containerView.widthAnchor.constraint(greaterThanOrEqualToConstant: 0)
|
||||||
minWidthConstraint?.isActive = true
|
minWidthConstraint?.isActive = true
|
||||||
@ -373,11 +372,29 @@ open class InputField: EntryFieldBase {
|
|||||||
open override func updateAccessibility() {
|
open override func updateAccessibility() {
|
||||||
super.updateAccessibility()
|
super.updateAccessibility()
|
||||||
textField.accessibilityLabel = showError ? "error" : nil
|
textField.accessibilityLabel = showError ? "error" : nil
|
||||||
if showError {
|
}
|
||||||
accessibilityElements = [titleLabel, textField, statusIcon, errorLabel, helperLabel]
|
|
||||||
} else {
|
open override var accessibilityElements: [Any]? {
|
||||||
accessibilityElements = [titleLabel, textField, helperLabel]
|
get {
|
||||||
|
var elements = [Any]()
|
||||||
|
elements.append(contentsOf: [titleLabel, textField])
|
||||||
|
if showError {
|
||||||
|
elements.append(statusIcon)
|
||||||
|
if let errorText, !errorText.isEmpty {
|
||||||
|
elements.append(errorLabel)
|
||||||
|
}
|
||||||
|
} else if showSuccess, let successText, !successText.isEmpty {
|
||||||
|
elements.append(successLabel)
|
||||||
|
}
|
||||||
|
|
||||||
|
if let helperText, !helperText.isEmpty {
|
||||||
|
elements.append(helperLabel)
|
||||||
|
}
|
||||||
|
|
||||||
|
return elements
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set { super.accessibilityElements = newValue }
|
||||||
}
|
}
|
||||||
|
|
||||||
open override var canBecomeFirstResponder: Bool { true }
|
open override var canBecomeFirstResponder: Bool { true }
|
||||||
|
|||||||
@ -161,7 +161,6 @@ open class TextArea: EntryFieldBase {
|
|||||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||||
open override func setup() {
|
open override func setup() {
|
||||||
super.setup()
|
super.setup()
|
||||||
isAccessibilityElement = false
|
|
||||||
containerStackView.pinToSuperView(.uniform(VDSFormControls.spaceInset))
|
containerStackView.pinToSuperView(.uniform(VDSFormControls.spaceInset))
|
||||||
minWidthConstraint = containerView.widthAnchor.constraint(greaterThanOrEqualToConstant: containerSize.width)
|
minWidthConstraint = containerView.widthAnchor.constraint(greaterThanOrEqualToConstant: containerSize.width)
|
||||||
minWidthConstraint?.isActive = true
|
minWidthConstraint?.isActive = true
|
||||||
@ -264,13 +263,31 @@ open class TextArea: EntryFieldBase {
|
|||||||
open override func updateAccessibility() {
|
open override func updateAccessibility() {
|
||||||
super.updateAccessibility()
|
super.updateAccessibility()
|
||||||
textView.accessibilityLabel = showError ? "error" : nil
|
textView.accessibilityLabel = showError ? "error" : nil
|
||||||
if showError {
|
|
||||||
accessibilityElements = [titleLabel, textView, statusIcon, errorLabel, helperLabel]
|
|
||||||
} else {
|
|
||||||
accessibilityElements = [titleLabel, textView, helperLabel]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open override var accessibilityElements: [Any]? {
|
||||||
|
get {
|
||||||
|
var elements = [Any]()
|
||||||
|
elements.append(contentsOf: [titleLabel, textView])
|
||||||
|
|
||||||
|
if showError {
|
||||||
|
elements.append(statusIcon)
|
||||||
|
if let errorText, !errorText.isEmpty {
|
||||||
|
elements.append(errorLabel)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if let helperText, !helperText.isEmpty {
|
||||||
|
elements.append(helperLabel)
|
||||||
|
}
|
||||||
|
|
||||||
|
return elements
|
||||||
|
}
|
||||||
|
|
||||||
|
set { super.accessibilityElements = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
open override var canBecomeFirstResponder: Bool { true }
|
open override var canBecomeFirstResponder: Bool { true }
|
||||||
|
|
||||||
open override func resignFirstResponder() -> Bool {
|
open override func resignFirstResponder() -> Bool {
|
||||||
|
|||||||
@ -17,16 +17,19 @@ extension Tooltip {
|
|||||||
public var title: String?
|
public var title: String?
|
||||||
public var content: String?
|
public var content: String?
|
||||||
public var contentView: UIView?
|
public var contentView: UIView?
|
||||||
|
public var accessibleText: String?
|
||||||
public var contentViewAlignment: UIStackView.Alignment?
|
public var contentViewAlignment: UIStackView.Alignment?
|
||||||
public init(closeButtonText: String = "Close",
|
public init(closeButtonText: String = "Close",
|
||||||
title: String? = nil,
|
title: String? = nil,
|
||||||
content: String? = nil,
|
content: String? = nil,
|
||||||
contentView: UIView? = nil,
|
contentView: UIView? = nil,
|
||||||
|
accessibleText: String? = "Tooltip",
|
||||||
contentViewAlignment: UIStackView.Alignment = .leading) {
|
contentViewAlignment: UIStackView.Alignment = .leading) {
|
||||||
self.closeButtonText = closeButtonText
|
self.closeButtonText = closeButtonText
|
||||||
self.title = title
|
self.title = title
|
||||||
self.content = content
|
self.content = content
|
||||||
self.contentView = contentView
|
self.contentView = contentView
|
||||||
|
self.accessibleText = accessibleText
|
||||||
self.contentViewAlignment = contentViewAlignment
|
self.contentViewAlignment = contentViewAlignment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user