I have been reading this excellent question and its answers, about collecting names from people in forms.

The best answer (the accepted one anyway) seems to be to follow the W3C's advice on personal names, which is to collect the entire full name in a single field, rather than using separate "first name" and "last name" fields.

They also describe an alternate field to ask the user "What should we call you?" - which I think is a good idea and is helpful for sending emails, displaying a welcome message, etc.

What I am struggling with is - now how do I take this information and let someone run a report using a "Last, First" name format? I would like to put a dropdown to select running the report with a default name format or this alternate format, but how do I obtain the alternate format to begin with?

According to the W3C document, I can't make any assumptions about the number of spaces in the full name, or which "name part" is considered the last name, etc. So the only thing I can come up with is to add yet another field to collect this version of the name from the user.

I don't really like that idea though, because it might be difficult to guide them to actually supply it in "Last, First" format. I can see that many users would just type the same thing in to all three fields.

Surely there has to be some interactive way to collect this data that is more reliable? Perhaps just a single "full name" field that when entered uses some javascript to produce values in dropdowns for the other two fields? That way the user could select the form they prefer. But I can't wrap my head around how I could populate those values reliably.

Maybe there is some other intuitive or interactive design that would help?


Ultimately, I built the Name Editor UI as follows:

Name Editor UI

The options in the "Full Name" dropdown are calculated automatically with each keypress in either of the textboxes. I allow spaces in either of the textboxes, so that accounts for users with multiple given or family names.

The only validation I perform is that at least one character is entered in one of the two fields. This means that the combined "full name" will be at least one character long.

I am basically combining the given and family name fields in either order, and with or without a space. Then I reduce that to combinations that are unique (in case they don't have anything in one of the two textboxes, or if their first and last names are the same) and trim any leading or trailing spaces. So they can have 1, 2 or 4 "full names" to pick from.

In most of the application, I use just the "full name" field. But when required for sorting or for special reports, I allow the given and family names to be used separately.

I think that covers all bases? Did I miss anything?

  • Re Update: Depending on what the Full Name is used for, a different label would probably be appropriate, e.g. Display Name. What about honorifics, titulars etc. which are neither part of the Given nor Family Name (which they may replace), but may be part of the Full Name? A more elaborated approach would use Full Name as primary input, parse that into (editable) Given and Family fields and make them easy to swap. – Crissov Oct 28 '14 at 13:38

The recommendation of the W3C article is not to always collect full name via a single field, but to:

ask yourself whether you really need to have separate fields for given name and family name.

This, I think, is the key.

If you are going to need to use only part of a person's name, then collect that part. As the W3C article (and one that I wrote) make clear, names vary too much for anyone but an expert with a lot of time (Graham Rhind perhaps?) to develop an algorithm for parsing them.

Note also that rather than "first" and "last" name, you should use "given" and "family" name (again, as the W3C does). This is because in some cultures, family name comes first whereas in other cultures family name comes last. "Given" and "family" avoid any ambiguity and confusion.

In summary, the following will meet everyone's needs:

  • Given name(s): [_________________________]
  • Family name: [_________________________]
  • This is the route I am leaning towards, but how would one accommodate the issue described here where "María-Jose Carreño Quiñones" might be sorted by either "Carreño" or "Quiñones"? – Matt Johnson Apr 4 '13 at 23:49
  • I see the potential difficulty, but I think it's important not to confuse the users who enter their name with the users who are running reports. The answer to your sorting question depends on the users who are running reports: does it matter to them whether María-Jose Carreño Quiñones is sorted to appear under "C" or "Q"? If not, then you can just use the data as entered into the field. – Formulate Information Design Apr 6 '13 at 0:23
  • Please see my update in the question. Do you see any problems or have additional advice? Thanks. – Matt Johnson Apr 12 '13 at 15:04
  • Interesting solution. On inspection it looks like it will work (although for something so novel, I'd definitely want to do some user testing). I would suggest two tweaks. First, some people have just one name, so soften the validation to require just one character in one of the two component fields. Second, I'd put the "full name" options in alphabetical order, so they are easier to review. Also, is there actually any evidence for (full) names that are part names joined without spaces (3rd & 4th option in list)? (As an aside, this doesn't solve the Carreño Quiñones problem ... does it?) – Formulate Information Design Apr 16 '13 at 12:20
  • Yes, the validation is as you described. The joining without spaces would be for Asian character names, such as the example in the W3C document. The dual family name problem would be resolved by the user putting either both family names in the family name field, or deciding to put one of the family names in the given name field. Of course, they would have to understand the impact of this. I will probably add some text to the right describing that the family name field should start with the predominant name. – Matt Johnson Apr 16 '13 at 14:29

Many cultures don't have a 'first name' and a 'last name' in the western sense.

If you're from Latin America, chances are that you have two last names (one from each parent). If you're from many Slavic countries you also have a Patronymic to complicate the 'last name'. If you're Dutch (or Afrikaans) there is a good chance your last name a compound name like 'van den Bos' or 'de Wet'. If you're Chinese, your family name is first, your personal name is last, and they are always used together.

If you need to sort by 'Last, first', that requirement is already culturally insensitive. You can't solve that problem well without asking for a lot more information, unless you are working with a very culturally limited group.

The tradeoff that I would use would be to ask someone to give their:

  • Full name
  • Family name as it would be used for sorting, but you would need to explain what you mean by this. This may be give in many variations, so you should be prepared to accept variety.

From there, you can work out what to use as their first name(s) by looking at the difference.

I should note that very often people who are from other cultures already give alternative names that will work in a "Last, first" system. So they may not give their full family names or first names to avoid issues trying to explain them.

  • I was also considering something like this but with another dropdown for the alternate sort. Do you think that would be acceptable? – Matt Johnson Apr 3 '13 at 16:28
  • @MattJohnson You're still assuming there is a 'first', 'middle', and 'last'. Rather ask the person to write their name for sorting with their 'Family name(s)' first. – JohnGB Apr 3 '13 at 16:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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