We had reported this to Google some months back but got no response.
We had reported this to Google some months back but got no response.
- 'Dead' keys are keys used to modify the next character
- The backtick / grave key behaved as such on a typewriter
- ` + a = à
- Noto web fonts behave like this
- The latest Noto local fonts do not
- The expected modern behaviour in English is ` + a -> `a
- This is not necessarily the expected behaviour in other languages
Web font: http://i.imgur.com/TUKsIY4.png
See iverg's comment on the github issue: https://github.com/googlei18n/noto-fonts/issues/736
EDIT: To be clear, parent is technically correct. The problem is with the way "web fonts" is working, the actual 'font' is the same across both, just the web fonts are having fun.
But isn't it normally the operating system's responsibility to implement this, depending on the keyboard layout?
> But isn't it normally the operating system's
> responsibility to implement this
Presumably the font has backticks, but they're (poorly) implementing this method of accenting in the demo web app to allow people to search for accented characters?It looks like "web fonts" in general are poorly implemented. You can recreate the problem with just a text box and font styling CSS.
If you look at some of my other comments in this tree you will see screenshots of the same text box with and without the local fonts installed. Presumably when local fonts are installed the OS handles everything, without the browser and the noto-fonts definition file gets in the way.
Dear god why? They're Unicode fonts. There are perfectly good Unicode combining characters that can be used when this behavior is intended. Making non-combining characters behave like combining characters breaks all kinds of text.
Which language, for example?
I'm french, we have characters with grave accent ('à', 'è' and 'ù'), and we do not expect the "` + a = à" behavior, as for one language.
EDIT: we do expect that "^ + a = â", though, but that's an other thing, and we have actually two ^ keys, one for our behavior and one for the usual behavior.
With just two or three Western European languages to write in, you can easily have grave, acute and circumflex accents, umlauts, tildes, plus a couple one-off letters (like ß for German, ç for French, or å/æ for Scandinavian languages). Combining those with every vowel they can apply to grows too much for the poor Alt key.
The US-International layout runs into this problem. Since Alt + A = Á, if you want to type Ä or Å or Æ in a single keypress you have to use Alt + Q, W, or Z respectively, which is hardly intuitive. And if you want À or Ã, you're SOL.
Dead keys (also in the US-International layout) solve this problem. I know which keys make the tilde, umlaut, both types of accents, and circumflex. If I want the bare symbol (or a quote in the case of umlaut) I press spacebar after the symbol key, otherwise I press any applicable letter to output the modified version. For example, I'm pretty sure there's a key combination for ç, but I don't remember what it is (Alt + C is ©); however I did remember that I could type it as ' + c.
The other main solution is to have a hotkey for switching language layouts - typing in each language will be slightly faster, but when I tried it I frequently forgot which layout I was on and had to stop, delete my mangled output, switch language, and type again. I find dead keys much more friendly to muscle-memory.
That's fine for ò I guess, but then how do you type ô, ö and ó?
But as has been said elsewhere, this thread is confusing dead keys, which have nothing to do with fonts: typing the ^ key followed by the o key enters a single character ô, with combining characters where the character ̂ followed by the character o is rendered as ̂o (which should look the same as ô) (edit looks like this works fine on my fixed-width font when editing, but not so fine on the regular proportional font when displaying the comment, it's sadly quite usual for fonts to mishandle combining characters).
Here, the issue is that the standalone non-combining ` (as well as ´, ¨ and ¸) is handled by this font as if they were combining, thus doubly confusing users with dead-key keyboards.
I'm quite glad of that, actually, it would be really annoying if we had to keep using modifiers every two words. I know french people who use English keyboards, they just usually forget about accents totally instead of using dedicated modifiers.
'àquele' is the preposition 'a' + 'aquele'. Grave accents are only used to mark contractions such as this, and the circumflex and acute accents - which denote differences in vowel quality and stress - are much more common, which is why it makes perfect sense to prioritise ease of typing for those two over the grave accent.
It is probably easier for language that doesn't have multiple diacritics for the same letter.
In Poland we have only one such letter: z. The problem is solved by using 'x' for the other (less frequently used) diacritic type:
alt+z = ż
alt+x = ź
On Swedish keyboards, for example, "` + a = à"
The standard en_us linux config does [alt+\] [a] = à instead for example. (unless you choose a keyboard layout)
Local fonts package installed: http://i.imgur.com/ycRs3A0.png
No Local fonts package installed: http://i.imgur.com/TUKsIY4.png
It is the font package, look at iverg's comment on the github issue https://github.com/googlei18n/noto-fonts/issues/736
here are screenshots with local font installed http://i.imgur.com/ycRs3A0.png
and without local font http://i.imgur.com/TUKsIY4.png
EDIT: it goes deeper: https://news.ycombinator.com/item?id=12656642
The issue here is that the non-combining accent (as generated by many keyboard layouts, dead keys or not) is rendered by the font as if it were combining. All the other aspects are tangential.
I'm using Chrome v53.0.2785.143m on Windows 7.
https://fonts.google.com/specimen/Noto+Sans
Under the 'Styles' section, type:
`foo`
You'll see the first ` overlap the f.Now erase it all and type:
````
They all overlap each other and show up as just one `.Edit: from what it looks like, the problem is specific to the sans. I can't replicate it with the serif (https://fonts.google.com/specimen/Noto+Serif if anyone wants to try).
You must not have local noto fonts installed for this to work.
http://codepen.io/anon/pen/dpdOzk
Using chromium we see that:
Inheriting the font means the "bug" doesn't affect you.
Adding a class with the font only affects textareas, not inputs.
Adding the font directly affects both.
Notably the google demonstration page has the rule:
html,input,textarea{font-family:'noto sans',arial,sans-serif}
this applies the noto bug directly to the input field.For example, the letters å, ø and æ are very common in Danish, so they have their own keys. The acute accent is sometimes used to mark stress, like é or ǿ, and this is done using a dead key -- it wouldn't make sense to have several keys just for this purpose.