How to make users feel unwelcome: reject their name.

I was trying out a new app last week. It promised to save me time by pushing business expenses from my credit card statements to my accounting software at the click of a link. Good idea.

But when I clicked the link, nothing happened. The app just sat there, spinning its little progress wheel.

I hunted through the help section but found nothing. So I contacted the support team for the app, and the next day they had an answer and a fix.

It was the apostrophe in my name.

Apostrophes in names aren’t exactly unusual

I have a relatively uncommon name. No one can spell or pronounce O’Byrne. But the thing that causes most trouble is the least unusual thing about it: the apostrophe.

I’d guess names beginning O’ are common throughout the English-speaking world. O’Byrne might be unusual, but O’Brian isn’t. So it’s strange that many websites can’t cope.

Refusing real names is rude

Some sites won’t allow me to enter my apostrophe at all. The error message is usually something like ‘Invalid character in name field’. It’s not nice when your first encounter with a website ends with them telling you that your name is unacceptable.

My bank card can’t handle apostrophes either. It uses a blank space instead. So I’m never sure if the card will be accepted when my billing name as an apostrophe. And when I pick up tickets ordered on this card, they're often filed under B instead of O.

None of these are insurmountable difficulties, but they do feel like tiny rejections on every transaction.

Do you want your customers to feel like that?

Don’t assume your developer will take care of this

It’s pretty common that developers need to treat data differently if it might contain an apostrophe. This can affect other non-alphanumeric characters too. But apostrophes are also used in some programming languages. If you aren’t careful, the apostrophe in the data can get mistaken for part of the code, and strange things will happen.

Good developers are aware of this, and do something they call ‘escaping’. This marks the apostrophes in text data as special, and not to be confused with apostrophes in the code.

Less good developers can be unaware of this issue. But someone else should have noticed the problem before the software met any customers.

Test your site to check it works in the real world

On a big software project, the code gets tested a lot. Each individual module gets tested to make sure it works as specified. All the different components get tested together to make sure they talk to each other. And then some human tests the whole thing to try to spot errors the developers didn’t catch.

Tests done by the developers are often automated these days. The human testing, which can be a bit less predictable, is essential to pick up unexpected problems.

But apostrophes in names aren’t an unexpected problem. They’re a fact of life. Real people have names with odd characters in them.

If your software collects names, you need to check it can cope with names that your customers are likely to have. And if you’re working on a small website, just you and a developer, I suggest you do the checking yourself.

(Don't know where to start? Here's my guide to software testing for beginners.)

Your test names need to reflect your real customers

When we test software, we have to enter information into the system like we’re real users. This information is often made up. Using real people’s names on your test system isn’t super-classy, on account of data protection considerations.

But your made up names need to look a bit like real names, otherwise, they aren’t really testing anything. If everyone is called John Doe or Jane Doe, you aren’t going to find many problems.

It’s not just apostrophes. If you're attracting international customers you might get all sorts of interesting characters coming up.

You also need to consider length. Some countries tend to have very short names. Or very long ones. Or the first name in the last name field.

Find better names for testing

Coming up with user names is hard work, so there are tools you can use to help. This one lets you generate names for a whole range of nationalities, so you can test with interesting characters from all over the world.

This article has more ideas for testing your site depending on where your customers come from.

And don’t forget: this is test data. It doesn’t all need to be realistic. If you need a really long name so you can check the last name field is 30 characters long like you asked for, just make up a 30 character last name like this: NnnnnnnnnnnnnnnnnnnnnnnnnnnnnX. If the X gets cut off, you know the field isn’t big enough.

What tips do you have for testing websites? Share your ideas in the comments.