ProperName

A knowledge-sharing effort to overcome common name-related mistakes in products, services, and interactions.

View the Project on GitHub makeitlegit/ProperName

HomeBest PracticesResourcesCommon FormatWhy It Matters


Best Practices

These goals can help make individual features better, but are most powerful when tackled at the lowest level (data structures) and the greatest breadth (centralized teams and systems).

Start where you can and bring awareness to the other parts of the org that can do something about it. Many of these best practices relate to feature development such as content strategy, design methods, validation, and development processes. But those can only do so much to mitigate upstream issues…so solutions here also touch on system architecture and integrations, centralized services (e.g. search), and support policies.

Fundamentals for Name Inputs

Name input can happen any time names are collected, which includes forms, chatbots, and data import.

1. Avoid the biggest problem areas

1a. DO store names using UTF-8

Many name problems result from the way names are stored. UTF-8 doesn’t require users or systems to glean the right ISO character set, which is the most common cause of garbled displays.

Note that this is an English-centric baseline; while it covers many cases, it leaves out Traditional Chinese and possibly other character sets for particular languages.

1b. DO NOT build in assumptions that block names

Assumptions about exactly one word in each name lead to bad data, whether it’s truncation or junk. The concept of “middle name” in particular is not a univeral one.

Assumptions about location are not helpful given that people travel, work, and live in places all around the world. Additionally, every person has their own unique ethnic, geographic, and family history. Location may determine whether your product/service is available within a workplace, or potentialy even within an entire country. However, location does not lead to any reasonable conclusions about which names to support. Do assume that any location may have a user with any type of name.

Assumptions about language can cause similar problems as assumptions about location. Even if your product/service is only available in English, assume that it may have a user with any type of name.

Assumptions about “acceptable” content happen when content filters/validation is run on name input fields. While it’s not a good idea to outright reject names, it’s okay to introduce an extra step for caution. Anything that flags content validation should be reviewed by a human. It is also a good idea to let users know when this happens; unfortunately, they’ve probably had it happen many times before. Because of that, handling these in a thoughtful and humane way can make a huge difference for their experience with your product/service. See the next section about human verification.

1c. DO NOT EVER say a name is invalid

Bad error messages are the fastest way to insult and infuriate your users. If you don’t have control over other aspects of your product/service, you can still make a difference here by writing better error messages. Remember that the strings you use for errors are first and foremost for the person attempting to use your product/service to understand what happened. If the system can’t handle a name as typed, that’s your problem. It does not mean their name is any less valid.

This isn’t an edge case. At that moment, when that happens to you, that’s the voice of a product or service rejecting you. It’s like having someone refuse to pronounce your name correctly…or give you an unwanted nickname because they can’t be bothered to respect your name. You feel bad, and they seem incompetent.

In case you’re not convinced how frequently this happens, follow @yournameisvalid and @gotapostrophe to get a regular reminder.

2. Have a human verify names that get flagged

The best content moderation, including names, is a combination of system design and human oversight.

Names that get flagged for violation should go through secondary (human) validation that involves direct outreach to these users before getting rejected or banned. Ideally those users will not be blocked from using the product/service in the meantime with some mild obfuscation of their name (initials for the questionable parts, or an innocuous system-generated placeholder name). It’s also a good idea to have a setting or an “allow” list once their name clears human validation so that any further flagging won’t sideline their use of the produt/service (a potential vector for abuse).

There are two types of names that frequently get flagged as fake when automating content guidelines.

Knowledge of slang for types of names can help for troubleshooting Support issues, like “maiden name” (for a prior family name used before a marriage-related family name change)or “double-barreled name” (for a family name consistenting of two names appended together).

3. Prepare for predictable name variations in forms and display

These are common reasons for narrowly-scoped systems to reject names, and to add insult to injury, often do so by rudely responding to a person their name is “invalid”.

Note that the error validation should be handled on the front end so there’s the opportunity to escape them rather than reject them.

3a. Variation: single-word names

Names may consist of only one word (as their full name), a common practice in Indonesia that also happens in Nigeria and indigenous communities.

3b. Variation: very short names

Names can be 1-3 characters, whether popular Asian surnames like Wu or Xu, Danish names like Då or ø, or 33rd U.S. President Harry S Truman.

3c. Variation: very long names

Names that are longer than a field supports might trigger a maximum character limit error on the form, or worse, be silently truncated by the back-end system.

3d. Variation: name with a space in it

Names with spaces may be rejected if form inputs will not allow a space, so plan for that.

3e. Variation: name has “special” characters

Names with accent marks and diacritical marks may be more or less common in particular regions but are as normal as any of these other variations.

3f. Variation: name varies in capitalization

3g. Variation: isn’t named yet

Infants may not be named for some time and may need a special-case name designation (or to be flagged separately). Don’t assume they will share any part of their name with parents or relatives.

Ways to Ensure Features Use Names Right

I. Honor user choices for what names they display

There are many reasons why people may choose to use a different name than their legal name. Having a product/service use their legal name can be more than disconcerting – it can have serious repercussions for that person’s safety.

In addition, artists use artist names are a way to separate public personas from the person. Some artists will only use those names in products/services to ensure that separation.

II. Make your tone appropriate

Names are used to make systems feel more personal, and it can be disconcerting when the wrong name is used. Assumptions about cultural heritage based on names can be problematic, though, so rely on their locale instead of their name to determine what globalization and internationalization (I18N) rules should apply.

Sometimes people will write their personal name as their legal first name along with their preferred name or nickname in quotes or parentheses. This is a sign that they want to be findable this way, and presented this way to other users. However, they may appreciate being addressed by that preferred name/nickname.

III. Make your initials smart

Initials can be a useful shorthand for a person’s name when they fit what they would write themselves. They may be used as a visual identifier or in place of a signature.

IV. Make your alphabetical sorts smart

Names are also used for sorting people. They are often sorted by affinity networks & activity to ensure relevance to the viewer & context. Even so…at some point, sorts always fall back to a simple alphabetical order. Since names usually consist of multiple parts, consider what parts matter for the sort:

V. Make your search smart

Names are a key identifier for finding people. Partial searches are the most powerful tool to ensure people can continue to use the fundamental purpose of the system even if/when their names get mangled.

Why this is important: A person’s name may have been entered by someone other than themselves, and/or may have passed through another system that modified it. The only way for that person to reliably be found may be to search on a partial string in the middle of their name that’s least likely to be misspelled or interpreted differently. It’s not great to have your name messed up, but it’s far worse to be delayed, have your requests rejected, or be entirely blocked from proceeding because your account can’t be found.

VI. Be flexible about matching names, or match a unique identifier instead

Any feature that depends on one record’s name field matching another needs to be savvy about potential substitutions.

< Back to ProperName overview