From d65df06934ac1726ae6bba899af3f34859b52f60 Mon Sep 17 00:00:00 2001 From: Keerthy Date: Wed, 22 Nov 2023 18:07:13 +0530 Subject: [PATCH 1/3] Updated textView to have label text for accessibility behavior --- .../Atoms/FormFields/TextFields/TextViewEntryField.swift | 7 ++++++- MVMCoreUI/BaseClasses/TextView.swift | 1 - .../SupportingFiles/Strings/en.lproj/Localizable.strings | 1 + .../Strings/es-MX.lproj/Localizable.strings | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextViewEntryField.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextViewEntryField.swift index 3221f043..e92e7127 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextViewEntryField.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextViewEntryField.swift @@ -281,6 +281,11 @@ class TextViewEntryField: EntryField, UITextViewDelegate, ObservingTextFieldDele if model.hideBorders { adjustMarginConstraints(constant: 0) } - + setAccessibilityString(model.title) + } + + override func setAccessibilityString(_ accessibilityString: String?) { + let accessibilityString = accessibilityString ?? "" + textView.accessibilityLabel = "\(String(describing: accessibilityString)) \(self.textView.isEnabled ? "" : MVMCoreUIUtility.hardcodedString(withKey: "textfield_disabled_state") ?? "")" } } diff --git a/MVMCoreUI/BaseClasses/TextView.swift b/MVMCoreUI/BaseClasses/TextView.swift index 8d09ca35..5e4f1c07 100644 --- a/MVMCoreUI/BaseClasses/TextView.swift +++ b/MVMCoreUI/BaseClasses/TextView.swift @@ -98,7 +98,6 @@ import UIKit smartInsertDeleteType = .no inputAccessoryView = nil isAccessibilityElement = true - accessibilityTraits = .staticText font = fontStyle.getFont() keyboardType = .default isEditable = true diff --git a/MVMCoreUI/SupportingFiles/Strings/en.lproj/Localizable.strings b/MVMCoreUI/SupportingFiles/Strings/en.lproj/Localizable.strings index 0b736bf9..05cadbf5 100644 --- a/MVMCoreUI/SupportingFiles/Strings/en.lproj/Localizable.strings +++ b/MVMCoreUI/SupportingFiles/Strings/en.lproj/Localizable.strings @@ -27,6 +27,7 @@ // MARK: Textfield "textfield_today_string" = "Today"; "textfield_error_message" = "%@.\n The error message.\n %@"; +"textView_error_message" = "%@.\n The error message.\n %@"; "textfield_picker_item" = " picker item"; "textfield_regular" = " regular"; "textfield_disabled_state" = "disabled"; diff --git a/MVMCoreUI/SupportingFiles/Strings/es-MX.lproj/Localizable.strings b/MVMCoreUI/SupportingFiles/Strings/es-MX.lproj/Localizable.strings index b279ccdb..60cc1677 100644 --- a/MVMCoreUI/SupportingFiles/Strings/es-MX.lproj/Localizable.strings +++ b/MVMCoreUI/SupportingFiles/Strings/es-MX.lproj/Localizable.strings @@ -23,6 +23,7 @@ // Textfield "textfield_today_string" = "Hoy"; "textfield_error_message" = "%@.\n El mensaje de error.\n %@"; +"textView_error_message" = "%@.\n El mensaje de error.\n %@"; "textfield_picker_item" = " artículo de selector"; "textfield_regular" = " regular"; "textfield_disabled_state" = "inactivo"; From d1ee6e7f3ae2323ada0f1d630c75f51397c6e40c Mon Sep 17 00:00:00 2001 From: Keerthy Date: Wed, 24 Jan 2024 16:18:35 +0530 Subject: [PATCH 2/3] Addressed code review comments --- .../TextFields/TextViewEntryField.swift | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextViewEntryField.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextViewEntryField.swift index e92e7127..46e4e233 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextViewEntryField.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextViewEntryField.swift @@ -161,7 +161,7 @@ class TextViewEntryField: EntryField, UITextViewDelegate, ObservingTextFieldDele bottomConstraint?.isActive = true heightConstraint = textView.heightAnchor.constraint(equalToConstant: 0) - accessibilityElements = [titleLabel, textView, feedbackLabel] + accessibilityElements = [textView] } open override func updateView(_ size: CGFloat) { @@ -281,11 +281,25 @@ class TextViewEntryField: EntryField, UITextViewDelegate, ObservingTextFieldDele if model.hideBorders { adjustMarginConstraints(constant: 0) } - setAccessibilityString(model.title) + updateAccessibility(model: model) } - override func setAccessibilityString(_ accessibilityString: String?) { - let accessibilityString = accessibilityString ?? "" - textView.accessibilityLabel = "\(String(describing: accessibilityString)) \(self.textView.isEnabled ? "" : MVMCoreUIUtility.hardcodedString(withKey: "textfield_disabled_state") ?? "")" + func updateAccessibility(model: TextViewEntryFieldModel) { + + var message = "" + + if let titleText = model.accessibilityText ?? model.title { + message += "\(titleText) \( model.enabled ? String(format: (MVMCoreUIUtility.hardcodedString(withKey: "textfield_optional")) ?? "") : "" ) \(self.textView.isEnabled ? "" : MVMCoreUIUtility.hardcodedString(withKey: "textfield_disabled_state") ?? "")" + } + + if let feedback = model.feedback { + message += ", " + feedback + } + + if let errorMessage = errorLabel.text { + message += ", " + errorMessage + } + + textView.accessibilityLabel = message } } From 648bfdc76bd6d7f21e16db160b0896abf94f560c Mon Sep 17 00:00:00 2001 From: Keerthy Date: Wed, 24 Jan 2024 21:41:46 +0530 Subject: [PATCH 3/3] Missed file --- MVMCoreUI/SupportingFiles/Strings/es.lproj/Localizable.strings | 1 + 1 file changed, 1 insertion(+) diff --git a/MVMCoreUI/SupportingFiles/Strings/es.lproj/Localizable.strings b/MVMCoreUI/SupportingFiles/Strings/es.lproj/Localizable.strings index 7eb53fa7..24a6d8db 100644 --- a/MVMCoreUI/SupportingFiles/Strings/es.lproj/Localizable.strings +++ b/MVMCoreUI/SupportingFiles/Strings/es.lproj/Localizable.strings @@ -23,6 +23,7 @@ // Textfield "textfield_today_string" = "Hoy"; "textfield_error_message" = "%@.\n El mensaje de error.\n %@"; +"textView_error_message" = "%@.\n El mensaje de error.\n %@"; "textfield_picker_item" = " artículo de selector"; "textfield_regular" = " regular"; "textfield_disabled_state" = "inactivo";