From 71a72d25811510bdb035488aae94df9e78e9fbbd Mon Sep 17 00:00:00 2001 From: Marcus Kida Date: Wed, 15 Mar 2023 14:52:49 +0100 Subject: [PATCH] IOS-97: Improve labelling of username field on Create Account screen (#970) --- .../Scene/Onboarding/Register/MastodonRegisterView.swift | 3 +++ .../Onboarding/Register/MastodonRegisterViewModel.swift | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/Mastodon/Scene/Onboarding/Register/MastodonRegisterView.swift b/Mastodon/Scene/Onboarding/Register/MastodonRegisterView.swift index 84942fe90..a1a61162a 100644 --- a/Mastodon/Scene/Onboarding/Register/MastodonRegisterView.swift +++ b/Mastodon/Scene/Onboarding/Register/MastodonRegisterView.swift @@ -27,16 +27,19 @@ struct MastodonRegisterView: View { .modifier(FormTextFieldModifier(validateState: viewModel.displayNameValidateState)) HStack { Text("@") + .accessibilityHidden(true) TextField(L10n.Scene.Register.Input.Username.placeholder.localizedCapitalized, text: $viewModel.username) .textContentType(.username) .autocapitalization(.none) .disableAutocorrection(true) .keyboardType(.asciiCapable) + .accessibilityLabel(viewModel.accessibilityLabelUsernameField) Text("@\(viewModel.domain)") .lineLimit(1) .truncationMode(.middle) .measureWidth { usernameRightViewWidth = $0 } .frame(width: min(300.0, usernameRightViewWidth), alignment: .trailing) + .accessibilityHidden(true) } .modifier(FormTextFieldModifier(validateState: viewModel.usernameValidateState)) .environment(\.layoutDirection, .leftToRight) // force LTR diff --git a/Mastodon/Scene/Onboarding/Register/MastodonRegisterViewModel.swift b/Mastodon/Scene/Onboarding/Register/MastodonRegisterViewModel.swift index a165716c2..684d4c68c 100644 --- a/Mastodon/Scene/Onboarding/Register/MastodonRegisterViewModel.swift +++ b/Mastodon/Scene/Onboarding/Register/MastodonRegisterViewModel.swift @@ -285,3 +285,10 @@ extension MastodonRegisterViewModel { return attributeString } } + +extension MastodonRegisterViewModel { + var accessibilityLabelUsernameField: String { + let username = username.isEmpty ? L10n.Scene.Register.Input.Username.placeholder : username + return "@\(username)@\(domain)" + } +}