2

I am having problems with custom keyboards in android.

Currently the username is being input with a capital letter if the user is using a custom keyboard.

In my mind the users don't notice the capital letter on their username and thus I am getting a lot of forgotten username straight after their registration.

Is it better to just force all usernames to be lowercase?

3
  • I'm just curious, but does the auto-capitalization happen in the password field as well?
    – CJF
    May 9, 2014 at 6:43
  • sadly the bug is applied to all input fields. May 9, 2014 at 6:51
  • Website, Android app, or both?
    – MonkeyZeus
    May 9, 2014 at 19:00

3 Answers 3

3

I would say, from a development standpoint, you should set the usernames to lowercase before storage and before comparison. The user can continue to believe that the username is whatever case they thought it was. In your interface, you can show their username as lowercase, and the user will be able to understand.

3
  • 1
    I was about to say the same thing. It's a field parsing problem not a UX one. May 9, 2014 at 14:09
  • Yes and no, the UX part is if I should show to the user that they cannot use Uppercases in the username. But indeed, the solution for me, in this particular case, is programming. May 9, 2014 at 14:40
  • I disagree; as per Pasha S, users may want their username to be displayed with particular capitalisation, so storing their username in lowercase would be unhelpful. In practice, you should be able to use a collation to easily do a case-insensitive comparison between the string entered by the user and the stored username. Jan 27, 2016 at 10:42
3

As a programmer: Technically there is no difference between lowercase or uppercase. In other words: "Name" and "name" don't make a difference when finding a user. Unless you force it to be case-sensitive. But I wouldn't do that.

Even if you can't search your data case-insensitive, you can always lowercase the username before starting the search.

If you'd like the username to be shown in your view with a capital letter you can do this by code aswell.

So I'd say; don't force them to use lowercase, you can choose how to show it to them programmatically.

7
  • Sadly it does when using a unix system :( But thanks for the ideas May 9, 2014 at 6:37
  • I'm pretty sure you can lowercase any given string(name in this case) in any programming language. Just lowercase the string before searching for it.
    – SlaKrop
    May 9, 2014 at 6:38
  • argh, interesting idea :) You are right, I'll stringToLowerCase when logging in as well. May 9, 2014 at 6:51
  • 3
    Case definitely matters and technically there IS a difference. N is not the same as n, that's why each has a different value when written to storage or to a file. Some databases/OS come preconfigured to be case insensitive but some might not. Passwords are always case sensitive for example. May 9, 2014 at 13:39
  • 1
    I would vouch to ALWAYS store usernames in lowercase or uppercase. Make a decision and stick to it. Here is why: If you run a query like select * from users where username=LOWER('MonkeyZeus') then any DB indexes which you had on that field go out the window and performance suffers. Your app should convert the data to lower/upper case before creating a SQL statement from it. You can create a non-searchable vanity_username field and return that if you wish but the field which is searched against should be maintain either lower or upper case.
    – MonkeyZeus
    May 9, 2014 at 19:05
3

No, it's not ok to alter someone's username. Because some people are very meticulous about how their usernames should look like. Of course, other people are completely unaware about letter cases, and it is these people that keep "forgetting" what their username was.

I believe the most reasonable approach would be to store the usernames exactly as they were entered, whereas when searching for a given user the search should be case-insensitive. This is how file names in Windows work: you can have "File.txt", or "file.TXT", but not both.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.