An Attempt to fix the Truly Awful Standard Italian Keyboard based on the ANSI standard

Marcos Sandrini
12 min readAug 24, 2023

--

Let me start with a disclaimer: I’m not a native Italian speaker. I speak Portuguese, Spanish, English and some German and I’m learning Italian for a couple of months now, and for that, my previous knowledge of other romance languages (Portuguese and Spanish) helps a lot. When I started to dig deeper into the language and my curiosity drew me to type it, I noticed something specific about typing in Italian that I will try to explore here. First, though, let’s talk about keyboard standards.

Local keyboard standards

To type a language you need to be able to express it with its particular symbols, which can be more or less tricky depending on the language and on the layout of the keyboard you have at hand, especially at the beginning. English-language keyboards are widespread with the ANSI (US) standard and the UK standard, which are very similar overall. Because of cultural, technological and other reasons (like programming), the ANSI keyboard is spread around the planet, but major languages have their own standardised layouts that are widely used locally.

In my country, most people use the local standard ABNT2 for Brazilian Portuguese (which fits well with European Portuguese too), because it allows for a fair expression with the many local accented characters. In some places like Switzerland, they even have a layout that tries to take into account the many main languages of Switzerland all at once.

All those local layouts that diverge from the “American” ANSI (more on it later) lose some functionality like easier access to frequently used symbols (especially in programming) in exchange for access to the most important characters of a language, which can be very useful.

Types of standards

So, most standards fall into three categories:

1) Standards based on extra keys for extra characters

Austrian/German layout (“Tastaturbelegung 1”)

Standards with extra keys for extra characters, like in the German standard (above). This one has extra keys for the extra 4 characters not present in ANSI, like ß, Ü, Ö and Ä. As those are only 4 letters, they are put on the keyboard as they are, relegating some symbols like { to a third class of signs (explained in the next type).

The advantage of this choice is obvious: in relation to the ANSI, it directly exchanges less-used symbol keys to have more-used characters with easy access.

2) Standards based on the third layer (Alt Gr) for extra characters

When I mean third, is because we have the second layer provided by the Shift key, which provides a possibility for a second symbol, that can be just as well the uppercase version of a letter.

Polish programmer’s keyboard (Polski programisty)

The Polish programmer’s keyboard (above) became the standard in Poland and features a layout that is pretty much the ANSI layout but with some extra characters attainable via Alt Gr (the ones in blue in the image above).

This is a bit less quick for the typer than having exclusive keys for the extra characters (which would be a heavy task in many languages because of the number of possible characters) but it not only makes accessing the symbols easier (great for programming, as the name of the standard implies) but, importantly, makes it way easier to find cheaper keyboards around as any ordinary ANSI one made in China can do it very well.

It looks extremely smart to me, especially in this case as Polish is well suited for that: it has a very favourable situation of having one diacritic variant per letter only (except in Z).

Still, especially on Windows where the “left side” Alt key is not an Alt Gr (which means symbols are not obtained by pressing it), this can be less advantageous. There is a way to work around that though.

3) Standards based on dead keys

“Dead keys” are keys that, when typed, only serve to compose characters.

Brazilian ABNT2 keyboard

In the Brazilian ABNT2 layout (above), I can type the accent ´ and then, after that, the letter a. Then I would obtain the accented character á. Some dead keys also can output the symbol itself when the character is not composed. For example, if I type the same ´. and then the space bar or some non-composable character as p, then the symbol ´ itself will show.

As Portuguese has a lot of combinations of letters and accents (13 total combinations) it would be impossible or impractical to have a keyboard with all those combinations as single keys. One possibility would be to go the same way as the Polish keyboard above, but in this case, many of the letters take more than one accent (a has 4 combinations) so it wouldn’t work as well, although it’s the one I use now (a custom layout).

The advantage of having dead keys is even clearer in cases such as the Vietnamese language, where the number of combinations is just too high. However, the price is also clear, as one has to type twice to get one letter.

One note is that sometimes local keyboards also change the disposition of letters, like the German QWERTZ one or the French AZERTY one. This doesn’t change the layout too much as the letters are usually the same.

Also, many local keyboard standards do not require the keyboard itself to be different from the ANSI, using it as it is, sometimes with extra info printed on them, sometimes not, as in Chinese (Mandarin) or Russian.

So, what about the Italian keyboard?

As Italian is a language spoken mostly in one country you will probably hear of only one major “official” keyboard standard for it, which is this:

Italian keyboard layout

At first, it doesn’t look that different from many others around, falling mostly into the first type, having dedicated keys for accented characters.

However, the first look reveals that it only has the lowercase version of characters like ò. Although most of these characters are not supposed to be at the beginning of words in Italian, in the eventuality of people wanting to type uppercase words they’ll only have the option of toggling and untoggling Caps lock, which is very strange and uniquely bad (almost no other local standards do that, for a reason).

The character è, however, extremely frequent as it is, is supposed to be the beginning of a word and can easily be at the beginning of a phrase. Where is È there then? Nowhere. The fact that it’s apparently very frequent that people write E’ (like, E and an apostrophe) to indicate È is an admission of failure to me.

It was pointed to me by my Italian colleague that on Mac, if you long-press a key when writing, there’ll be a menu to choose from accent options for this letter/key and this is often used. There is also the known Windows shortcut Alt+0200. However, the point stands, those options are still quite clumsy and unnatural.

But how many accented characters can Italian have? Let’s look:

  • All the vowels (a, e, i, o and u) can have the grave accent (accento grave) on top, making them à, è, ì, ò and ù, which are all relatively frequent. Of those, à, è, and ò are the most frequent.
  • The letter e has the possibility of having the acute accent (accento acuto) becoming é. This is also very frequent, although its usage is declining when writing informal texts (esp. social media).
  • Some other forms that are not used currently anymore or used only in restricted circles are ó , ï and and î . Also, some Italian regional languages (“dialetti”) use other characters, like the character ç equal to the one used in Portuguese and French.

One thing that comes immediately to my mind when I think is that this Italian keyboard uses very valuable space for a letter that’s not even in the standard language (ç)!

Also, a note here: the fact that Italian and other European layouts (Spanish, European Portuguese, German, Dutch) are so vastly different from ANSI (see ahead) is okay. It’s definitely not the main issue, although people can point that the @ sign and the # being accessible only with Alt Gr is a bit out-of-sync with times (more on that later).

The biggest issue here, though, is that this keyboard is not effective because it is inconsistent: it doesn’t have uppercase letters when it really should and wastes precious space with the ç mentioned above and with things like § (section symbol) or º (ordinal) that could easily be on the third level.

It can definitely be better.

Proposals for a better Italian keyboard

I’ll base my proposals on ANSI. Then you may (reasonably) ask: why does it need to be based on ANSI?

ANSI keyboard

Well, because it is the standard format we have for keyboards now and all others will tend to disappear in favour of a more unified solution.

A keyboard layout is not like a language, which is a cultural heritage. As the vast majority just want to use keyboards to type their messages, with no attachment whatsoever to a keyboard layout other than being used to one variety or another.

Another factor is that cultural changes develop over the dominant standard. Before the age of e-mails and hashtags, keyboards like the German or the Italian ones didn’t even have the @ and the # sign, but those were picked up by American developers and ended up being reasonably important because they were on the American keyboard.

Also, remember that Polish keyboard above? Cost is also a factor, as ANSI keyboards will always tend to be cheaper s they’re much easier to be mass-produced, being used not only in English-speaking countries but also in Russia and China, not to mention everywhere else where there’s no strong local standard.

In the case of the Italian keyboard, which people seem to complain a lot about (with good reason as we’ve seen), it is pretty clear that everyone that gets to think about it doesn’t quite like it.

In fact, many people already use ANSI in Italy as I’ve noticed doing my early research before this article, especially programmers and people dealing more with spreadsheets for example.

Maybe only people that write texts professionally (like a journalist) and are very much used to the standard would still consciously prefer the native one over a possibly better one but also for them, depending on how much better it is they would surely change.

So, according to the three types mentioned above I have basically three proposals:

1) ANSI-based with extra keys for extra characters (for writers)

The complex layout I call NI-1A (Nuovo Italiano 1A) with an extra character key (possible in some situations) not originally present in the ANSI/ISO layouts (at the side of the right Shift key)
The layout I call NI-1B, without an extra key

This is the best option for quick typing (and it would suit better text writers, like journalists). However, it is the most difficult to come by because lots of things would have to be rearranged to make room for 6 “letters”. Six, because we don’t want the half-baked solution of the original standard layout, we want keys with uppercase versions.

For that, not only we had to do a lot of grouping on the symbols and resorting to the third level (the blue characters, obtainable with Alt Gr) but we also had to add an extra key. Alternatively, on the second option, the arguably least important of the now-used accented characters,Ù, was put into the third level in the U key, which can be deemed slightly inconsistent, but should work.

The other keys on the third level (again, the blue ones) are less used keys or keys used in dialects. As you might have noticed, as this layout is focused on writers, I also have put the caporali (the Italian standard quotes, « and ») there, as I think it’s a nice feature for typing properly in this wonderful language.

2) ANSI with keys based on Alt Gr (for programmers)

The very simple layout I call NI-2. Update: as pointed out by Matteo in the comments, there is a small mistake in the two keys right of “0” (zero): They should be “-/_” and “=/+” respectively.

This is by far the easiest to come by. We can even have more character variants for dialects and out-of-fashion characters. Just like for the Polish keyboard mentioned above, Italian matches very well this, as all letters but e have only one majorly used diacritic on them. It seems like a pretty natural layout choice to me for programmers and they should have a good time on it because, out of rearranging some “third layer” stuff, it is the same ANSI we all learned to forcibly like.

However, the downside is also considerable: we need to heavily use the Alt Gr. If on Windows, this can be a problem. If on Mac, this is the best layout hands down in my opinion, even for non-programmers that use the keyboard in more general use.

There are some arguable points, some of them brought by Matteo’s comment (which I appreciate much):

  • where to put the É. I chose W because of its proximity to the left Alt and because it is a vowel-ish letter. Ultimately, it’s just a matter of getting used to it.
  • The places for Î and Ï. They could be mapped to J and K, alternatively, so they would belong to the group of letters instead of numbers, which makes sense.
  • In many European keyboards, in a quasi-standard way, the E is taken by the Euro sign (€) so this could be an issue here.

3) ANSI-based with additional dead keys

The very simple layout I call NI-3

This is also fairly simple, requiring much fewer changes to the ANSI layout than the first one.

First, we relocate the apostrophe to the key aside, put the semicolon in the third layer and the quotes on top of 6. Why it? Because the circumflex on top of 6 is arguably the least useful key overall.

Then we use the newly freed key to have two dead key accents, with the grave accent (more used) on the bottom and the acute accent on top, reachable by pressing Shift. Then, one would press the accent and the vowel key following to compose a letter.

I think it’s fairly elegant and can be good as a middle-ground solution. To me personally though, as used to dead keys as I am being a Brazilian, I never liked having to type twice to get one letter. You may have a different opinion though, that’s why this is here.

How to use those layouts?

If you liked those layouts, there are several programs to customise the keyboard layout. On Windows, there is a utility from Microsoft itself called Microsoft Keyboard Layout Creator, which looks from the pictures to be simple but effective, although I’ve never used it. On the Mac, I use a utility called Ukelele to create my layouts, which is a bit confusing at times but does what it’s supposed to do.

When creating a custom layout based on one of these I’ve shown, remember that (apart from the occasional mistake) the symbols are all there. If, in a customised layout, you forget to put in a particular symbol after rearranging stuff it can be a problem later, so be careful.

Keyboard appearance

Obviously, changing the appearance of the keys to reflect a given layout is difficult, unless that layout is an industry-standard layout like ANSI or a local standard from some country, which is not the case here.

One can argue that, for the second and third layouts presented not a lot of change is actually required over an ordinary ANSI, so it would be a matter of getting used to it. Anyway, one can always use stickers on keys, especially in the beginning, when you’re getting used to it.

However, if you want to go to the effort and have some money to spend on it, there are companies like DYIKeyCaps that make sets of customised Keycaps to be put on mechanical keyboards, which themselves are usually a bit more expensive. I have a layout ready for myself that I plan to order someday (ask me if you want a copy) or if you’re feeling adventurous you can make your own by downloading the template on their website and using programs like Inkscape.

Conclusion

All in all, it is not easy to create a layout to replace a standardised keyboard layout from one language, even more for one major language like Italian. However, not only the current standard is especially bad, but also Italian has a favourable characteristic, which is a fairly limited number of diacritics in actual use (unlike many other languages). My proposals are out there for anyone who is looking for a different typing experience in Italian.

Arrivederci!

--

--

Marcos Sandrini

Designer and front-end programmer with 20+ years of experience, also a keen observer of the world and its people