Hacker News new | ask | show | jobs
by hp 4989 days ago
Using flags in your visual design can be tempting but in my experience it's a bad idea. The problem is that certain flags force you to "take sides" in political disputes that you likely aren't aware of and don't understand. You'll inadvertently make one side very angry with you, and you won't even really know what political statement you accidentally made.

It's OK if you stick to flags you know but if you start trying to have a list of all flags, there's no way to do that without making various groups angry.

I don't doubt that there's a "right" answer to all disputes over flags but do you really know what all the disputes are and want to arbitrate them as part of developing your software ...

Deliberately not digging up specific disputes because the whole point is, if you have to ask what they are or if you start debating them case by case, maybe this wasn't a can of worms that needed opening.

(also, the last time I encountered this was long enough ago that I'm sure the relevant examples have changed, and I never understood them well to begin with. But it was clear that flags poked more than one political group in the eye.)

7 comments

And even worse is using them to indicate languages. There are countries with more than one language (e.g. Belgium which Dutch, French and German) and there are languages which are used in more than one country (think us.png vs gb.png for "English").

So, rule of thumb: - never use flags to indicate a language - use flags to indicate a country only after thinking twice

EDIT: Nonetheless, this flag collection looks awesome, and if I ever have a legit use case for flags in a GUI I'll definitely use them. Thanks for sharing under a free license!

One issue I've also encountered is websites you use languages to indicate countries.

For example, I often appreciate browsing a shop in English (better content, more comments), so I select it from the dropdown, but end up browsing the US or UK shop, whereas I'm in France.

One website that gets it right is Zara: https://www.zara.com/ You select the store (country) and the language independently.

How do you indicate a language in icon-like manner then? Is using the textual ISO codes the only safe option?
It depends.

First of all, flags are really bad for languages since there's an n:m relationship. Which flag would you use for "English"? The USA flag? The Flag of England? The Union Jack?

If you offer only "English" then depending on if you write "center" or "centre" you may offend either USA or British people. Same for "German", where a Swiss may be offended to see "Straße" while a German could be offended by seeing "Strasse". Of course most people won't care about that and I bet most Brits are used to see "color" without a 'u' on the internet, but from experience I can say that there are people who care about or even get offended by that.

But even if using textual representation for languages like "English" is not perfect, offering every language-country possibility (en-US, en-GB, en-??...) isn't a viable route in most cases since there are way to many combinations.

Just think of yourself (assuming you're from the USA): would you rather see the word "English" in a language selector or the Flag of England?

So what should you do? I'd suggest going with textual representations like "English" or the ISO 639-x shortcodes ("en" or "eng"). Being German that's easy to say for me, and I know a handful of people who'd like me to distinguish between de_DE, de_AT and de_CH.

So as I've said: it depends :-)

From what I've read about it--by people who thought long and hard about this issue--the generally most accepted solution seems to be the Wikipedia way: use the name of the language as its written in in the language itself.

The reason for the latter is that, say the site is originally presented in Russian, I don't know how "Dutch" is written in Russian so I couldn't pick it, but I do know what "Nederlands" means (FYI, that's the Dutch word for "Dutch", beats me why you English-speakers don't call it "Netherlandish", but each to their own I guess ;) which again demonstrates names of the same language in different languages can vary a lot).

Though I suppose if you're really tight on space, ISO codes would probably also work.

Note that Wikipedia itself is sometimes a rather extreme example; most websites/applications will only offer a choice between a small handful of languages.

When the list of languages in the sidebar of Wikipedia is very long, it's not the most user-friendly method of selecting one. On the other hand, with flags that would be much worse, bordering on impossible (while the UK and US flags are pretty unique, there's a couple of flags that are very hard to distinguish from the flag of the Netherlands, for instance).

I really wonder if there might be some creative better solution to language-selection than "the Wikipedia way", but I really want to stress that using country flags is not that solution, for a variety of usability reasons, political reasons and emotional reasons, most of which are probably outlined somewhere in this discussion so I won't repeat them all.

I have to admit I have been guilty of using a German/Dutch/French flag for language selection on a website I developed many years ago--I didn't realize it was a bad idea back then (for instance, the flag of Belgium has the same colours as the flag of Germany in a different order, but they speak Dutch and French there, while the flag of France and the one of the Netherlands differ mainly by a 90 degrees rotation) (and the blues are subtly different, afaik).

This is so very true. You really can't win this one. Even if you're 100% not biased, your clients most definitely will be.

You can put all the flags up, disputed or not. Then you have people mad at you for putting up the disputed ones whom they view as being an insult. You can remove the disputed ones, and people will accuse of wanting oppression and being anti-freedom. Even when you avoid this problem, you have the problem of people not wanting to see a particular flag anywhere, dispute or no dispute.

OK, I'll bite.

Design is all about making decisions, which will invariably make person A happy and person B unhappy (for some values of A and B). Look at how many people are ranting this month about Apple's decision to remove X11.app from OS X, for example, even though you can download a newer version for free. If your goal in building software is to make every person on the planet satisfied, you are setting yourself up for failure. You should make clear decisions that make most of your users happier, not water down all design to make everybody not-upset.

All of the most successful systems today seem to be "opinionated", perhaps not in terms of global politics (usually) but in other ways. Being more clear to the vast majority of your users probably has a lot more value than not upsetting the less-than-1% who probably are even less than their share of your revenue, anyway.

Besides, in my experience, more important than getting it right is being responsive. If you're concerned about getting it wrong, then just put a link next to it that says "Did we forget / screw up yours? Tell us here: __". Then you will have actual data about who's coming to your particular page and what they want to see there.

Or, you can pick a relevant ISO/UN/EU/... list, and say you're using that for country names and flags. That may or may not be biased, but it removes you from the decision. If somebody is so mad they refuse to use your program because they don't like an ISO/UN/EU list, I don't know how they got past the Time Zone Setup screen on their computer.

There's people who will get upset if you say there are 50 states in the USA. They can believe what they like but I'm not going to lift a finger to accommodate them in my software.

> Or, you can pick a relevant ISO/UN/EU/... list, and say you're using that for country names and flags. That may or may not be biased, but it removes you from the decision. If somebody is so mad they refuse to use your program because they don't like an ISO/UN/EU list, I don't know how they got past the Time Zone Setup screen on their computer.

The UN/ISO list has Taiwan as "Taiwan, Province of China". Go look for that string in any operating system, app or on any website that is internationally popular - you won't find it. The ISO is not neutral, and the Time Zone Setup guys know this.

What's the mood on something like the Unicode 6 regional indicators (see http://std.dkuug.dk/jtc1/sc2/wg2/docs/n3727.pdf) when the support stabilizes? e.g. 🇺🇸 (U+1F1FA U+1F1F8) can be displayed by the user agent as the letters "US" or a United States flag but the choice is up to the UA rather than the developer.
I had a startup where we put countries in a pulldown. The country list was pulled verbatim by me from one of Google's properties, which I assumed to be up to date. Within a few days I had several emails from people in Macao saying the name of the country was wrong and needed to be fixed. The entry had some mention of China in parenthesis and it wasn't until I researched a bit further I realized it was a 'special administrative region' of China: http://en.wikipedia.org/wiki/Special_administrative_region

While I had no horse in the race, I welcomed the opportunity to learn more about someone else's culture. Perhaps it's not so much taking sides as it is better understanding all the people who are involved.

By the same logic you shouldn't use red star symbol in your design if its target country includes one of the countries formerly occupied by the Soviet Union: https://en.wikipedia.org/wiki/Red_star#Legal_status
This is correct.

You also wouldn't use a swastika in an app targeting Germany, would you?

I've had google geocoder mark things as serbia instead of kosovo which resulted in angry emails accusing me of deliberately taking sides. No idea that I even had data in that region