Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

Is it appropriate to add auto capitalization on input fields where the user has to add first or last name text?

share|improve this question
1  
+1 definitely an interesting question! –  AndroidHustle Oct 9 '12 at 8:16
    
Duplicate: ux.stackexchange.com/q/23048/95? –  Jørn E. Angeltveit Oct 9 '12 at 10:13
18  
An interesting read: Falsehoods Programmers Believe About Names –  Marco Oct 9 '12 at 10:37
1  
Why force anyone to capitalize anyway? What's the harm in having lower case letters? –  Ken Liu Oct 10 '12 at 2:13
4  
The most common surname in the world is 王 - how would you capitalise that? –  Keith Oct 11 '12 at 9:47

7 Answers 7

up vote 70 down vote accepted

Auto capitalization is impossible. What algoritm would you use to auto capitalize when a lady enters "cléopatra diane de mérode" as her name? You would probably end up with things like:

  • Cléopatra Diane De Mérode
  • Cléopatra diane De mérode

The only correct spelling however is "Cléopatra Diane de Mérode" (wikipedia). As you can see, capitalization of names can be a tricky thing.

If the user would enter her name with correct capitalization, you would probably turn the correct name into something incorrect. Auto correction can easily turn into auto incorrection.

This name was just an example to prove a fact. In reality, many names have strange capitalization.

share|improve this answer
21  
+1 for: "Auto correction can easily turn into auto incorrection", I liked that comment. –  AndroidHustle Oct 9 '12 at 8:35
5  
In all fairness, the naive algorithm is 90% correct and with a trivial bit of work you go up to 99.x%. For instance, "dIANE" can be turned into Diane. For every dIANE who considers this wrong, there will be thousands of Diane's that appreciate it. –  MSalters Oct 9 '12 at 9:04
11  
See also surnames like McRae or MacLeish –  Keith Oct 9 '12 at 10:24
4  
In addition to providing an easy way to undo autocapitalization when you get it wrong, you log the failures. Degrading the UX for 99% of users to cater to the 1% is bad; but so is not being able to identify the long tail and working to reduce it. –  Dan Neely Oct 9 '12 at 13:53
7  
I guess the question may be how much cost is provided by both options. If you don't autocorrect the only people annoyed would be those who care about capitalization enough to be annoyed but not sufficiently to enter it correctly or correct it afterwards. In second case you annoy everyone who have non-standard name (and you need to code it). I would argue that there are more latter people then former. –  Maciej Piechotka Oct 9 '12 at 18:43

I would suggest no.

Treat a person's name - in terms of capitalization, spelling, punctuation and spacing - exactly as the person does. [1]

There are a variety of cultures with names that does not use capitalization in all parts of their names.

It's true that most traditional English, American, north/central European names are written with capitalization of the first letter in all parts of their name.

However, in Eg. Latin and Dutch cultures it's very common with names that are written as

  • Suzanna de la Cruz
  • Nick van de Kamp
  • Vincent de Paul
  • João da Silva

If there is an auto capitalization for the input when the user fills in names such as these it could easily confuse and frustrate the user. Maybe even put her off enough to abandon the service.

Conclusion, it may be convenient for most western civilization users, but a bad experience for a considerable part as well. Let the users have full control of how their name is written.

share|improve this answer
3  
+1. Good reference. –  Bart Gijssens Oct 9 '12 at 8:31
    
It's possible to deal with autocapitalization, provided you know who's your audience... –  woliveirajr Oct 9 '12 at 12:00
2  
It's a good point, but I think you have to come to some compromise. For example, letting users enter whatever they want and having this pushed to the backend is a bad idea. You don't want a Bobby Tables incident: xkcd.com/327 –  shrodes Oct 11 '12 at 5:45
    
@shrodes haha, yea, that's a classic. Of course you still have to have a security feature that protects the system from any malicious user. –  AndroidHustle Oct 11 '12 at 10:58
    
You have to keep context in mind here. I work in race timing, where we have to publish a professional looking set of results using information obtained from twelve-year-olds. If i don't run some auto-correction on user's name inputs, my output is going to be full of things like "MaXiMiLliAn" and "rosanna <3", which isn't acceptable. You can't always trust users to accurately enter their own names. –  notatoad Oct 14 '12 at 20:20

Yes, it's good to suggest the autocapitalization, letting the user change something if that gone wrong.

Just be sure to define who your audience is: there are several algorithms to deal with particles like "de, da, e" in Brazilian Portuguese, for example: Lula da Silva, Pedro Bento e Silva, etc.

Similar rules can be used for "van, de, la" etc., and even for "MacRae".

References on how to deal with autocapitalization:

http://btb.termiumplus.gc.ca/tcdnstyl-chap?lang=fra&lettr=chapsect4&info0=4.03
http://forums.zotero.org/discussion/22585/proper-capitalization-of-personal-names/

share|improve this answer
1  
Down voting other answers just to try and bump your own answer is not a strategy that will make you popular in this community, just so you know. –  AndroidHustle Oct 9 '12 at 11:57
4  
but down voting answers that I disagree and, in my opinion, over-simplify the question, is possible, no? –  woliveirajr Oct 9 '12 at 12:05
11  
I guess we have different approaches to that then. I see to downvote answers/questions that are clearly lacking in information or in other ways are pure speculations. I don't simply downvote because I'm of another opinion. I feel the solution you provide here is bad, it will make the user feel that the system is controlling the input. And there is no way for the system to distinguish a user who wants a word in their name written with a capital letter from a user with the same word to be written without a capital letter. This is simply a bad UX approach. –  AndroidHustle Oct 9 '12 at 12:32
1  
I saw what you did there, appreciated. –  AndroidHustle Oct 9 '12 at 17:24

As others have mentioned, Dutch names like mine, even after they've been mangled into something English-like, can still have strange capitalization. If you tried to change my name to "Teneyck" after I entered it, you'd just irritate me.

If your clients are unwilling to spell their own names correctly, it's not your job to correct them.

share|improve this answer
    
+1 good answer. –  AndroidHustle Oct 9 '12 at 14:02
4  
+1 for your last sentence. It's amazing how many people give their names and addresses to ecommerce sites entirely in lowercase, but as far as I'm concerned, that's their problem. –  TRiG Oct 9 '12 at 16:03
1  
Of course the strange capitalization is the direct result of the mangling. The original Dutch surname would have a space before the E, i.e. "Ten Eijck" or "Aric ten Eijck". And as I noted in another comment, there's a fairly small set of rules for these prefixes (Mc/Mac for Gaelic names, about a dozen in Dutch, German and the Latin languages with a fair degree of overlap). –  MSalters Oct 11 '12 at 10:41

The best experience for the user is to let them review how their name looks on the site and allow them to change it whenever they are displeased. This approach is similar to GMail not asking for confirmation when deleting/archiving but giving you the "undo" option right after.

share|improve this answer
    
I call your "let the user change name when displeased" answer, and raise you a "design a solution so that the user is never displeased" answer. =) –  AndroidHustle Oct 9 '12 at 14:05
11  
"the user is never displeased" is a story we tell our kids. –  ssg Oct 9 '12 at 14:07
    
haha, touché! however, in this case with this feature, you can design a solution so that the only way a user is displeased is if they are simply displeased with their name, and that's a whole other matter. –  AndroidHustle Oct 9 '12 at 14:10

How about a simple rules-based defensive approach

  • if a user takes the time to capitalize his/her name -> assume it's correct
  • else (if all lowercase) ->
    • if name consists of 2 terms -> assume firstname + lastname -> capitalize first letter of both firstname and lastname. This is not correct for lastnames like 'MacLeish' but 'Macleish' is arguably 'not worse' than 'macleish'. It however takes care of the majority of cases.
    • if name has more than 2 terms -> don't attempt anything.
share|improve this answer
    
This is incorrect e.g. for von Richthofen. –  phresnel Oct 10 '12 at 13:30
    
This falls in the 'don't attempt anything' category since von Richthofen (as a german lastname) plus a firstname would give at least 3 terms. So no autocorrection occurs. Not flawless, but better than trying :) –  Geert-Jan Oct 10 '12 at 17:15

I would make a distinction between "autocapitalization" before and after the user types. On the iPhone when users "Add Name" in Contacts, the shift key lights up. If they don't want the name capitalized, they can deselect the shift key first. It does something similar when users type messages, at the likely beginning of sentences. I find this helpful - most of the time I do want names and the first word of sentences capitalized.

What the iPhone doesn't do is "correct" typing after I have typed a name. That sort of behavior steps over the line into the machine presuming it is smarter than the user - an annoying, classic violation of the principle of bias toward user control.

I just hope Apple hasn't patented the shift-key-light-up concept. --Jim

share|improve this answer
    
"I just hope Apple hasn't patented the shift-key-light-up concept." - Please, don't give'em new ideas. ;) –  rcdmk Oct 15 '12 at 20:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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