updated for error and resign first responder

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-04-29 11:16:09 -05:00
parent 80233b6797
commit 07110ed5cc
4 changed files with 33 additions and 1 deletions

View File

@ -129,6 +129,7 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
open var errorLabel = Label().with {
$0.setContentCompressionResistancePriority(.required, for: .vertical)
$0.textStyle = .bodySmall
$0.accessibilityValue = "error"
}
open var helperLabel = Label().with {

View File

@ -151,7 +151,8 @@ open class InputField: EntryFieldBase, UITextFieldDelegate {
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
open override func setup() {
super.setup()
isAccessibilityElement = false
minWidthConstraint = containerView.widthAnchor.constraint(greaterThanOrEqualToConstant: 0)
minWidthConstraint?.isActive = true
@ -272,6 +273,25 @@ open class InputField: EntryFieldBase, UITextFieldDelegate {
}
}
/// Used to update any Accessibility properties.
open override func updateAccessibility() {
super.updateAccessibility()
textField.accessibilityLabel = showError ? "error" : nil
if showError {
accessibilityElements = [titleLabel, textField, icon, errorLabel, helperLabel]
} else {
accessibilityElements = [titleLabel, textField, helperLabel]
}
}
open override var canBecomeFirstResponder: Bool { true }
open override func resignFirstResponder() -> Bool {
if textField.isFirstResponder {
textField.resignFirstResponder()
}
return super.resignFirstResponder()
}
}
extension InputField.FieldType {

View File

@ -239,6 +239,7 @@ open class TextArea: EntryFieldBase {
/// Used to update any Accessibility properties.
open override func updateAccessibility() {
super.updateAccessibility()
textView.accessibilityLabel = showError ? "error" : nil
if showError {
accessibilityElements = [titleLabel, textView, icon, errorLabel, helperLabel]
} else {
@ -246,6 +247,15 @@ open class TextArea: EntryFieldBase {
}
}
open override var canBecomeFirstResponder: Bool { true }
open override func resignFirstResponder() -> Bool {
if textView.isFirstResponder {
textView.resignFirstResponder()
}
return super.resignFirstResponder()
}
//--------------------------------------------------
// MARK: - Private Methods
//--------------------------------------------------

View File

@ -147,5 +147,6 @@ open class TextView: UITextView, ViewProtocol {
attributedText = nil
}
}
}