In a perfect world, there would be no need for explicit links to versions of a document in different languages. Even in this imperfect world, the Web might evolve so that a server and a user agent select a version according to language preferences which the user has given when configuring the browser. (There are methods for such negotation in the HTTP protocol, but they are rarely used in practice so far.)
I'm not arguing against that expectation, and I'm not preaching against eye-catching images in general; see my article How to use images in communication in general and on the Web in particular. I'm not even going to discuss the question whether it makes sense to draw every reader's attention to a flag. (Why should I care about a link to a German version in a document written in a language which I know quite well, especially if I don't know German?) But I will present arguments which speak against flags as language symbols much stronger than any arguments about eye-catching or esthetics can speak in favor of it.
Naturally one could use a flag a symbol for the country e.g. in a list of links to information related to various countries. Whether it is wise to do so depends on the context. Typically people know names of countries better than their flags, so usually a flag isn't such a great symbol communicatively. What we discuss here is the use of flags for languages, and such usage is plain wrong.
There is no one-to-one mapping between countries and languages. Even in the rare cases where the native speakers of a language and the citizens of a country are almost identical groups, there is no reason to bind the country and the language strictly together.
Why should, for example, a Brasilian select the flag of Portugal
to select his native language?
It's quite possible that a Brasilian does not even know
the flag of Portugal.
Why should a Finn select the symbol of
Sweden in order to read some material in his native language if
it happens to be Swedish?
He hasn't sworn loyalty to that flag.
As an important special case, consider the flag which is probably
the most commonly used as a symbol of language.
The
British
Union Jack is not the flag of England but of the United Kingdom
of Great Britain and Northern Ireland. There is a flag of
England, but few people outside England know it.
Moreover, the majority of people who know English - or even the majority
of people who speak English as their native language - do not live in
the United Kingdom.
People who put the Union Jack into their documents to symbolize English
rarely think about this, and neither do they think whether their document
is actually in British English instead of e.g.
American (US) English.
In many countries, the Union Jack refers to previous colonial masters. Thus, a flag used as a language symbol may have unwanted connotations (in addition to being misleading as regards to its denotation). Even if the associated feelings are positive, there is no reason to raise them, when the communicative purpose is just to refer to some information written in the English language.
Very often images of flags are of poor quality as regards to proportions, colors, and form. A flag image of reasonable quality might require a large image file, making the above-mentioned performance problem more serious. Images of flags might even deliberately distorted to achieve a "cool" effect, such as presenting a rectangular flag as a round button. A flag of any country should be treated with respect; insulting a flag insults the country and its people.
An image serves a communicative purpose only if the user can see the image. There are several reasons why this might fail. In Web documents, an image can (and should) be accompanied with an alternative textual presentation of the same information, the so-called ALT attribute of an IMG element. For languages, this is easy, but then you can in fact ask what you need the image for in the first place.
If you need something shorter (you don't actually need on the Web, but you might need when designing e.g. id cards for employees), you can use the standardized codes in ISO 639, such as en for English.
Depending on circumstances and preferences, the names or abbreviations can be presented in varying styles. In HTML such items, being text, can be embedded into suitable elements which may affect the size, font, color and other properties of text presentation. - However, it is unwise to try to control the presentation too much. For example, on the Web pages of the European Union languages are symbolized correctly by using ISO 639 codes but so that the letters are presented as colored images. This raises the irritating question whether the use of different colors for different languages carries a messages - intentionally or unintentionally.
In many cases, there is no need to use any symbol for a language. If you have a link with anchor text in English (like Flag as a symbol of language - stupidity or insult?), isn't it pretty obvious that it refers to a document written in English? And if you have the home page of a company or an association in several languages, isn't it pretty natural to list its names in those languages, making each name a link to a version of the document in that language?
Several examples and arguments in this document have been taken from a news article (in Finnish) by Jarkko Hietaniemi.
Jukka Korpela,
Jukka.Korpela@hut.fi
August 12, 1997