mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 15:22:39 +00:00
Accessibility: Make checkboxes accessible in terms of service screen.
This commit is contained in:
parent
c80828f09e
commit
3656028e91
3 changed files with 29 additions and 0 deletions
|
@ -58,6 +58,9 @@
|
|||
"sending" = "Sending";
|
||||
"close" = "Close";
|
||||
|
||||
// Accessibility
|
||||
"accessibility_checkbox_label" = "checkbox";
|
||||
|
||||
// Authentication
|
||||
"auth_login" = "Log in";
|
||||
"auth_register" = "Register";
|
||||
|
@ -826,6 +829,7 @@
|
|||
"service_terms_modal_title_identity_server" = "Contact discovery";
|
||||
"service_terms_modal_message_identity_server" = "Accept the terms of the identity server (%@) to discover contacts.";
|
||||
|
||||
"service_terms_modal_policy_checkbox_accessibility_hint" = "Check to accept %@";
|
||||
|
||||
// Deactivate account
|
||||
|
||||
|
|
|
@ -14,6 +14,10 @@ internal enum VectorL10n {
|
|||
internal static var accept: String {
|
||||
return VectorL10n.tr("Vector", "accept")
|
||||
}
|
||||
/// checkbox
|
||||
internal static var accessibilityCheckboxLabel: String {
|
||||
return VectorL10n.tr("Vector", "accessibility_checkbox_label")
|
||||
}
|
||||
/// Logout all accounts
|
||||
internal static var accountLogoutAll: String {
|
||||
return VectorL10n.tr("Vector", "account_logout_all")
|
||||
|
@ -2586,6 +2590,10 @@ internal enum VectorL10n {
|
|||
internal static func serviceTermsModalMessageIdentityServer(_ p1: String) -> String {
|
||||
return VectorL10n.tr("Vector", "service_terms_modal_message_identity_server", p1)
|
||||
}
|
||||
/// Check to accept %@
|
||||
internal static func serviceTermsModalPolicyCheckboxAccessibilityHint(_ p1: String) -> String {
|
||||
return VectorL10n.tr("Vector", "service_terms_modal_policy_checkbox_accessibility_hint", p1)
|
||||
}
|
||||
/// Terms Of Service
|
||||
internal static var serviceTermsModalTitle: String {
|
||||
return VectorL10n.tr("Vector", "service_terms_modal_title")
|
||||
|
|
|
@ -224,11 +224,23 @@ final class ServiceTermsModalScreenViewController: UIViewController {
|
|||
guard let policyIndex = sender.view?.tag else {
|
||||
return
|
||||
}
|
||||
|
||||
let isCheckBoxSelected: Bool
|
||||
|
||||
if self.checkedPolicies.contains(policyIndex) {
|
||||
self.checkedPolicies.remove(policyIndex)
|
||||
isCheckBoxSelected = false
|
||||
} else {
|
||||
checkedPolicies.insert(policyIndex)
|
||||
isCheckBoxSelected = true
|
||||
}
|
||||
|
||||
if let checkBoxImageView = sender.view as? UIImageView {
|
||||
if isCheckBoxSelected {
|
||||
checkBoxImageView.accessibilityTraits.insert(.selected)
|
||||
} else {
|
||||
checkBoxImageView.accessibilityTraits.remove(.selected)
|
||||
}
|
||||
}
|
||||
|
||||
self.refreshViews()
|
||||
|
@ -275,6 +287,11 @@ extension ServiceTermsModalScreenViewController: UITableViewDataSource {
|
|||
checkBox.isUserInteractionEnabled = true
|
||||
checkBox.tag = indexPath.row
|
||||
checkBox.addGestureRecognizer(gesture)
|
||||
|
||||
checkBox.isAccessibilityElement = true
|
||||
checkBox.accessibilityTraits = .button
|
||||
checkBox.accessibilityLabel = VectorL10n.accessibilityCheckboxLabel
|
||||
checkBox.accessibilityHint = VectorL10n.serviceTermsModalPolicyCheckboxAccessibilityHint(policy.name)
|
||||
}
|
||||
|
||||
return cell
|
||||
|
|
Loading…
Reference in a new issue