elementary / website

The elementary.io website
https://elementary.io
MIT License
1.24k stars 708 forks source link

Various fonts don't support extended characters, or don't have support enabled. #411

Closed tomicakorac closed 8 years ago

tomicakorac commented 9 years ago

On the beta site there are several inspirational quotes which are being displayed in the Satisfy font. That font face includes only Latin characters, which means non-latin languages are being displayed with a fall-back font, which in turn usually ends up being plain upright serif or sans-serif default font.

The font face should instead be change to one that supports as many scripts as possible, in the spirit of the openness of eOS.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

danirabbit commented 9 years ago

If you can find a more suitable cryllic fallback, I'd be happy to add it after Satisfy. I don't think we want to change the design for everyone, but I understand that fall back straight to the default sans is not desirable.

tomicakorac commented 9 years ago

It's fairly easy to find a similar font with just Latin and Cyrillic ranges, but I think it would be a better idea to have at least a few more scripts supported, like Arabic, Greek and Hebrew. I'll look around and get back to you.

tengwar commented 9 years ago

And Raleway also has some problems in that regard. For example in Polish it looks like this: Screenshot of the issue

tomicakorac commented 9 years ago

I also noticed that. This occurs in almost all languages other than English, since unfortunately out of 3 fonts in use on the new beta site, two only support ANSI characters. This makes the localized versions quite inconsistent and looking drastically different from the original idea.

In addition, I only remembered after my previous reply, that the CSS fallback font option will not resolve this problem, since the site uses CSS @font-face feature to locate the needed fonts. A CSS fallback font will be used only in case when the previous (main) font can not be located. Since the specified font is found on line, it will always be available, and thus will always be used, no matter what the fallback options are. On the other hand, since the main font lacks most of the non-english characters, this will make major visual an UX issues on localized versions, like in tengwar's example, or worse.

Now that said, it is probably not easy to find fonts which will at the same time a) match the designers' original idea, and b) have all the glyphs that we need. Especially if we're talking only about open licence fonts.

I would love to see ideas for an elegant sans-serif Raleway and Satisfy lookalikes, or alternatives, that at the same time have good unicode support, at least for Eurasian alphabets group.

lewisgoddard commented 9 years ago

https://developers.google.com/fonts/docs/getting_started#Subsets might fix some of these issues, but not all.

lewisgoddard commented 9 years ago

image

Open Sans is also affected.

lewisgoddard commented 9 years ago

Bumped from Wishlist to Confirmed, this is getting reported a lot.

png2378 commented 9 years ago

You should replace Google Fonts with local fonts to fix the problem. In the Google Fonts missing Raleway 3.0 with сyrillic support. Also, there is not a worthy replacement for the Satisfy, but I offer as a fallback Kobzar KS, this is beautiful and free font. Your thoughts?

tomicakorac commented 9 years ago

"Express your love for Ukraine" what is that, some kind of a joke? Please leave your nationalism out of eOS.

Raleway 3.0 still only supports Latin in its italic styles. I can only see normal style Raleway on eOS site, but it's still worht mentioning.

png2378 commented 9 years ago

@tomicakorac, it's nationalism? It's just a nice font, repeating writing of Taras Shevchenko. Do not complicate things. And if you're wondering, I'm Russian, but not Ukrainian.

toby3d commented 9 years ago

@tomicakorac Since when is annotation on the font website is a sign of nationalism? Are you kidding?
Font - it is font. Let us not raise the debate on an empty place.

P.S.: I am Russian, and I find this font terrific.

lewisgoddard commented 9 years ago

It has been said the Google Fonts will update to Raleway 3 soon, and the other fonts just need flags setting mostly. The exception is Satisfy, which we may need to find an alternative for.

martpie commented 8 years ago

Couldn't we drop Google fonts off and upload a complete .ttf, then use @font-face ?

lewisgoddard commented 8 years ago

We could, but Google provide fonts in far more than just one format, and with specialised stylesheets to match the browser. All in all, proper font delivery is a pain. Besides, a "complete" TTF of most fonts doesn't exist, you'd need all the languages and glyphs, which would result in megabytes of data.

AFAIK you need TTF and OTF to get everything, and even then IE has some edge cases.

I think we're far better off agreeing to just add latin-extand let the font service handle all the complicated stuff.

https://fonts.googleapis.com/css?family=Open+Sans:400,300,600|Raleway:100|Droid+Sans+Mono|Satisfy&subset=latin,latin-ext

lewisgoddard commented 8 years ago

We could also look to add cyrillic and others when necessary, this is the full list.

https://fonts.googleapis.com/css?family=Raleway:100|Open+Sans:400,300,600|Droid+Sans+Mono|Satisfy&subset=latin,latin-ext,cyrillic,cyrillic-ext,vietnamese,greek,greek-ext

martpie commented 8 years ago

Well, when I say ".ttf", I mean with the .eot, .svg and all that stuff.

If we have the user langage, we could update the <link> asynchronously to get the correct font version.

lewisgoddard commented 8 years ago

That's a lot of management and maintenance. If we can group languages into one of these four groups, we could load that.

Latin

https://fonts.googleapis.com/css?family=Raleway:100|Open+Sans:400,300,600|Droid+Sans+Mono|Satisfy&subset=latin,latin-ext

Greek

https://fonts.googleapis.com/css?family=Raleway:100|Open+Sans:400,300,600|Droid+Sans+Mono|Satisfy&subset=latin,latin-ext,greek,greek-ext

Vietnamese

https://fonts.googleapis.com/css?family=Raleway:100|Open+Sans:400,300,600|Droid+Sans+Mono|Satisfy&subset=latin,latin-ext,vietnamese

Cyrillic

https://fonts.googleapis.com/css?family=Raleway:100|Open+Sans:400,300,600|Droid+Sans+Mono|Satisfy&subset=latin,latin-ext,cyrillic,cyrillic-ext

martpie commented 8 years ago

And what would be wrong with a link including all subsets ?

renegat59 commented 8 years ago

The problem is bandwidth->page load time. But I believe it's possible to load different subsets depending on locale, isn't it?

martpie commented 8 years ago

Yes of course it is, but we should do it in PHP using something like $_SERVER['HTTP_ACCEPT_LANGUAGE'], otherwise in JavaScript it won't be as reactive.

lewisgoddard commented 8 years ago

We already have a PHP variable for language, it's !empty($page['lang']) ? $page['lang'] : 'en'. Available languages are in _templates/l10n.php, we just need to categorize them into Latin, Greek, Vietnamese, Cyrillic.

png2378 commented 8 years ago

@lewisgoddard why do it, if Raleway and Satisfy from Google Fonts support only Latin? Issue can not be solved without replace GF on independent storage.

png2378 commented 8 years ago

Also, currently all modern browsers is supported .woff.

https://en.wikipedia.org/wiki/Web_Open_Font_Format

lewisgoddard commented 8 years ago

WOFF is incompatible with Opera Mini and older Android browsers, as well as IE before 9. This potentially breaks the site for over 1% of our users, or several thousand people a month. http://caniuse.com/#search=woff

png2378 commented 8 years ago

@lewisgoddard well, how many users with different languages (with Cyrillic, Greek alphabets etc) we have? I bet there are many more.

PS: You tried to open site in Opera Mini or old IE?

tengwar commented 8 years ago

@lewisgoddard But it just falls back to some default fonts, right? When I use Opera Mini on my old Symbian phone I don't expect the web to be pretty, just usable.

lewisgoddard commented 8 years ago

@png2378 I don't know which languages are affected, some letters outside of latin are included, and as I said, we can include more. With the exception of russian, I don't see any languages more than a fraction of a percent. My point is self-delivery is actively discouraged by most communities because it's a minefield, and there is not any one solution, although WOFF is probably the closest to it.

lewisgoddard commented 8 years ago

We've had 10 reports of this now, so I'm going to mark it as critical.

lewisgoddard commented 8 years ago

@tengwar It does, and that might actually be preferable, seeing as that would at least force some consistency.

lewisgoddard commented 8 years ago

Raleway

We know that Raleway has problems, and that these can be fixed with an upgrade to v3. We also know that Google has not updated this, although we could do that for them.

Open Sans & Droid Sans Mono

Open Sans & Droid Sans Mono seem to be well supported, do correct me if I'm mistaken.

Satisfy

I know that @danrabbit likes Satisfy, but most modern fonts have international support, while this one doesn't. If we include this with a fallback, then just those characters will be replaced by the fallback. Better then to simple find a replacement with more glyphs.

martpie commented 8 years ago

I'd upgrade to v3 and switch back to Gfont when available.

lewisgoddard commented 8 years ago

I agree, but I think we should file a pull request with their repository, they are tracking it at google/fonts#119

And we still need an alternative font for quotes.

png2378 commented 8 years ago

"Marck Script" and "Bad Script" have Cyrillic and published under SIL Open Font License (OFL). I like it more "Marck Script".

tomicakorac commented 8 years ago

Even though I am personally most interested to see support for Cyrillic range, I would still appreciate if we showed dedication for true internationalization by choosing fonts that support at least several (more than 2) script ranges, like Greek, Arabic, Hebrew.

I am fully aware that it isn't an easy task, but I also do know that it's not impossible.

lewisgoddard commented 8 years ago

Cyrillic affects around 5-7% of our users. Greek and arabic don't even register as 1% together, and unfortunately hand-written scripts become more difficult in those ranges.

fitojb commented 8 years ago

Open Sans & Droid Sans Mono seem to be well supported, do correct me if I'm mistaken

Actually, the currently developed version of that typeface design is Noto Sans, for which there is no monospaced version (for now), although it is planned (googlei18n/nototools#2). The most recent Noto fonts have much more glyph coverage than Droid and Open ever had, so it would make switching to Noto great for desktop as well (I know that is another bug).

lewisgoddard commented 8 years ago

As far as I am aware, Noto is the font by Google as a supplement to Roboto with better internationalisation but fewer weights and types. Neither of them replace Open Sans or Droid Sans, both of which were developed separately by Steve Matteson totally independent of Google. I do agree that Noto has better glyph coverage, however Open Sans and Droid Sans are inherited from the OS.

fitojb commented 8 years ago

@lewisgoddard Noto is the successor of Droid; see http://lists.alioth.debian.org/pipermail/pkg-fonts-devel/attachments/20151031/011f4334/attachment.mht Open was just the commissioned brand version of the same design, not intended for UIs (lighter weights that are suited for display typography only, not body copy). All three were developed at Monotype by Google's commission; Noto is the one in active development. Also, the Noto project is independent from the Roboto project, although both are used in AOSP.

lewisgoddard commented 8 years ago

Roboto is the default typeface, and carries a monospaced version. As I said, Noto is only used in Android when there are international requirements, something that doesn't usually carry through to monospaced.

This is the source repository for Roboto: Google’s signature family of fonts, the default font on Android and ChromeOS, and the recommended font for Google’s visual language, Material Design.

https://github.com/google/roboto

Noto's goal is to provide a beautiful reading experience for everyone and for all languages. With visual harmony when multiple languages share a page. With multiple styles and weights. And Freely available to all. https://github.com/googlei18n/noto-fonts

fitojb commented 8 years ago

Didn't get how does your last comment relate with what I said earlier (and to this issue, for that matter... Why are you suddenly talking about Android design specs?) Let's drop the off-topic.

lewisgoddard commented 8 years ago

Noto was suggested as a replacement for Open Sans and Droid fonts, but that's an OS decision. I was trying to point out that Noto isn't the successor of Droid. Open Sans, Roboto, and Noto are all based on Droid, but they aren't replacing it.

I can't see us dropping Open Sans or Droid anytime soon, maybe something to talk about for Loki with the UX Team.

png2378 commented 8 years ago

Shift to Noto doesn't solve critical problem with Cyrillic alphabet, we need to find a substitute of Satisfy, right? I already offered Marck Script and Bad Script and I can continue search, if necessary.

danirabbit commented 8 years ago

Marck Script looks good to me. Let's replace satisfy with that

png2378 commented 8 years ago

Great, thank you for quick answer.

png2378 commented 8 years ago

@danrabbit what you think about Raleway 3.0? He is not in Google Fonts, but it supports the Cyrillic alphabet.

lewisgoddard commented 8 years ago

I'll write up a nice, big merge for getting those included from our site, and post another to the Google Fonts repository in the next couple of days.

lewisgoddard commented 8 years ago

We have now updated Raleway to include support for the following languages: Balkar, Belarusian, Bosnian, Chukchi, Crimean_Tartar, Erzya, Karachay, Kumyk, Lak, Macedonian, Moksha, Montenegrin, Nanai, Nogai, Rusyn, Serbian, and Ukranian.

inputsh commented 8 years ago

Shouldn't this issue remain opened until there's a fallback font for Satisfy?

This Raleway upgrade is great, but this issue seems to be only partially fixed at the moment.

My suggestion is reopening this.

png2378 commented 8 years ago

@aleksandar-todorovic Satisfy was replaced on Marck Script #948

lewisgoddard commented 8 years ago

Unfortunately, it is almost impossible to find fonts that will emulate the existing style for every language. So long as there is always a fallback font so there are no missing glyphs, I think this should remain closed.

This bug was a super-bug, designed to track the status of lots of similar bugs. Those bugs should now be reported separately against specific fonts for specific languages if a glyph is missing, usually represented by a rectangle.