-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow new password input keyboard to be dismissed #17938
Conversation
Hi @twstokes, I was wondering if this change would be a good improvement to the app as-is. There are a number of potential solutions, but this seems like a quick win, whereas the others were all more challenging to implement and none was a clear winner. Before submitting this for review, I'd love to know where you think this is worth merging as-is given the high-priority of the issue. |
👋 Hey @guarani! Thanks for evaluating this and coming up with potential solutions! From my testing this certainly will allow the user to dismiss the keyboard in the event they want to keep a blank password. Since this is a high priority issue like you mentioned, I would feel good moving forward so that the user has at least one path to take. I did want to share some observations:
This is right on for Username, but I didn't have the same experience with Display Name. The new behavior allowed me to submit an empty value. My guess is that we don't allow empty display names to be saved because when I went to Account Settings -> My Profile the original still existed, unchanged. Do you think this is an issue?
This behavior feels more natural to me in a setting like Messages where you have a long scroll view and you want to open up the vertical space. Since the sign-up view fits (for most devices, I assume) vertically, my gut was to tap outside the keyboard to dismiss it. Some ideas for the future: I wonder if we can override this property (or do something from the |
Thanks for flagging this, I'd overlooked it. I went back to the current 19.2 beta and I can still set an empty
I agree with you here again, this screen isn't one that invites the user to scroll, so it might not be intuitive to most users that they can swipe down to close the keyboard.
Thanks for the suggestion, I'll try this one out and report back. I'm not submitting this for review yet because it feels like the current improvement (swipe down to close keyboard) won't make things significantly easier for users. |
I made a correction to a typo in my above comment. Instead of password, I meant "display name". I've struck out this but wanted to highlight it in a comment since it could have led to a different interpretation of my comment. I'm currently exploring the |
I've had success with a different approach based on the Documentation states that this property is This After unchecking the property in Interface Builder, the "done" button on the password field's keyboard is now enabled - regardless of whether the field is populated - and closes the keyboard when tapped ✅. In testing, this change doesn't appear to have any negative effects with regard to the password field. I think it makes sense to leave it Regarding the username field, I think this property has no effect (since tapping on that field navigates to the next screen). If that is the case, I think we should leave it with its default value ( I'll do a bit more testing to check for regressions, push the change, and submit this for review. |
d7a1008
to
06ecfa7
Compare
This change sets enablesReturnKeyAutomatically to false on the password field to allow users to dismiss the keyboard while the field is focused, even if the field is empty.
06ecfa7
to
2bd71b3
Compare
Hi @twstokes, this is now ready for review 🙇. |
Thanks @guarani for explaining your logic here - totally agree. I've tested these changes and they LGTM! 🚀 |
Thanks for the review, @twstokes! |
Addresses #17927
To test
a. Tap the Password field
b. Notice the keyboard "done" button is enabled and closed the keyboard when tapped (before this PR, the button was disabled)
c. Interact with the other fields and verify they look and behave correctly
Regression Notes
This change should only affect the Password field, but since it shares logic with the Display Name and Username fields, we should check for regressions there.
SignupTests
will help catch regressions related to setting a password.Writing an automated test here would be very challenging because the change involves the virtual keyboard which AFAIK is hard to control in tests.
PR submission checklist:
RELEASE-NOTES.txt
if necessary.