What would be the best way to determine if a particular keyboard character is available/convenient (enough) for most/all end users to type, regardless of keyboard layout?

For instance, if I want to determine if the character ~ will be hard/impossible for a set of users to type somewhere in the world (given its placement on the keyboard), how would I best determine this?

Is this something that can be accurately determined; and further, is this something I should be worried about?


There is no universal answer, because keyboards and other input tools vary so much. There is not a single character that can be assumed to be convenient to type.

If we restrict ourselves to the use of keyboards based on the Latin alphabet, we can say that characters in the “invariant subset of Ascii” are probably easy to type. It includes basic Latin letters A–Z a–z, common digits 0–9, space, and the following:

! " % & ' ( ) * + , - . / : ; < = > ?

The reason is that positions of other Ascii characters may have been used for various national characters or other special purposes. This is technically a matter of character codes, not input methods, but these are connected. For example, the position of the tilde character “~” in Ascii has been used for some of the characters ü ¯ ß ¨ û ì ´ _ in different national 7-bit codes, and this was often connected with placing such a character in the keyboard and omitting “~” or requiring special actions to produce it. Such techniques of the 7-bit world are still often reflected in keyboard design.

There are other things to consider, too. The character, though available on a keyboard, might not be intuively recognizable to users. People might have never realized they have that character in the keyboard, even if it is engraved in a keycap, and especially if it is not.

There’s more, and I’ll illustrate it with an example. I’m using standard Finnish keyboard, which has “~” engraved in a key. But it is in a key that also has “¨” (dieresis) and “^” (circumflex), and it’s not in the primary position. Pressing the key produces “¨”. You need to use it together with the AltGr key to get “~”. Many people know that, many don’t. If you never needed to type computerese like Unix directory names, URLs with “~” in them, or programming languages using “~” as an operator, you might find it difficult to figure out how to type that “~”.

And that’s not all. If actually know that I need to use that key with AltGr and do so, nothing visible happens. The reason is that the key is a dead key, meant primarily for producing letters with diacritic marks. I might not notice this, since when typing fast, I don’t notice that “~” appears as delayed. When I type AltGr¨J, I get “~j” as expected. If press the space bar instead of J, I get just the “~” character. So far so good. But if I type AltGr¨A, I get “ã”, i.e. letter “a” with tilde accent. And this is intentional. The key works that way so that I can conveniently type foreign words with accents on letters. But it makes things more difficult when I actually need to type “~”.

Other keyboards have other special features, perhaps simpler. For example, keyboards for typining Portuguese have a key with “~” in the primary position, but it is a dead key, meant to make it easier to type “ã”, a common letter in Portuguese. So the situation is simpler than with the Finnish keyboard, but still different from common English keyboards. On the other hand, Russian keyboard layouts haven’t got “~” at all. When users need to type such characters, they are supposed to switch to using some other keyboard layout that has Latin letters and to figure out where the tilde might be placed in it.

| improve this answer | |
  • +1 for latin based character sets. I really never thought of it like that. Also, thanks for the breakdown of the tilde character; while it was just an example it was the character that prompted me to write the question. Such a good argument against using it! – Qix - MONICA WAS MISTREATED Nov 29 '14 at 23:10

Depending on the type of service you are offering, I don't think there is anything that is "universal". It also depends on whether the user has access to a physical keyboard or not. A good rule of thumb is that if you find it hard to find a key, your user will also.

One solution you could provide is a context menu of common characters above the text entry field (or whatever field it is). On mobile, this is placed above the keyboard (like stackexchange).

Know your users, and what they might have to input, and provide them the options to add these characters quickly, but there is nothing universal about language.

| improve this answer | |

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.