Symbola font not working in web browsers in Snow Leopard

On my OS 10.4.11 Tiger systems, i’ve installed the free Symbola font to be able to see modern emojis and other modern Unicode characters: works perfectly. Not on Snow Leopard. Here are the details:


* Installed Symbola using Font Book in the OS X admin account. Same version (7.18) as the one working on the Tiger systems. Same exact font file from one of those systems, in fact.


* Font Book testing says the font is OK.


* I have no problem in TextEdit using Character Viewer to insert emojis into TE documents.


* Emojis fail to show up on web pages (tested with Safari 5.1.10 and an older version of Aviator). I get the missing character square(s) instead. Example page where they should work (they do in Tiger) but do not in Snow Leopard:

http://apps.timwhitlock.info/emoji/tables/unicode


* Removed Symbola 7.18 and installed the latest (7.21), all with Font Book (and this machine has never even seen any other font manager, nor are there any DTP apps on it): no change.


* Did a Safe Boot. Ran OnyX to clear all font caches. Immediately restarted the Mac: no improvement.


* Installed the newest Aviator: no change, same problem.


* Installed the latest Firefox: same problem. Used Firefox’s Font pane in Inspector, selecting the first emoji on the page cited above (Native column): it says it is using Helvetica Neue, not Symbola.


And there’s the problem: why on earth are the web browsers using Helvetica Neue, located in /System/Library/Fonts, when /Library/Fonts has priority and Symbola is in there?! Are there some nuances or bugs with Snow Leopard font priorities? Are there different priorities for a dfont (Helvetica Neue) over a Windows-format ttf (Symbola)?


Suggestions on how to get emojis showing up in web pages in Snow Leopard?


Thanks!


))Sonic((

MacBook, Mac OS X (10.6.8), MacBook1,1

Posted on Sep 5, 2015 2:36 PM

Reply
25 replies

Sep 8, 2015 12:44 PM in response to Tom Gewecke

I think it must be a bug in 10.6 Safari that was never fixed.

Now that I can easily believe. It's been so long now since SL's release that I think most folks have forgotten how bad the font engine was in its initial release.


SL was a complete 64 bit rewrite of the OS. Apple had dragged the font engine code forward for years from one OS to the next, but it could not in any way be patched to run as 64 bit. So they had to rewrite the entire thing from scratch.


It was bad. Type 1 PostScript fonts displaying and printing as double or triple line spaced (the most noticeable one), and many other very ugly font issues that weren't mostly fixed until 10.6.3. Pretty much every font flavor except OpenType had issues, and even those weren't immune. One known issue never got fixed until Lion, or Mountain Lion. Might have even been Mavericks. I can't recall for certain, though I do know what the bug was.

Sep 8, 2015 1:22 PM in response to Kurt Lang

It's been so long now since SL's release that I think most folks have forgotten how bad the font engine was in its initial release.

And here i’m just now, in 2015, seriously moving from Tiger to Snow Leopard (Leopard was no-go for me due to an S/MIME crashing bug in Mail introduced by newer WebKit versions with newer Safari versions which Apple never fixed before leaving Leopard behind): hand-me-down Macs, financial situation, etc. I’ve dabbled in Snow Leopard a little bit (and newer OSes less), but not until now am i starting the transition off Tiger.


One known issue never got fixed until Lion, or Mountain Lion. Might have even been Mavericks. I can't recall for certain, though I do know what the bug was.

I’d be curious to know what that bug is, even if it’s pretty obscure or technical. Given that i may need to step through Snow then Lion then jump to one of the newer OSes, i may be dealing with it for awhile.


******

Over the weekend, i did some reading on the Developer site. The correct term for what i earlier referred to as “Gimme a Unicode glyph, bro”, is Font Fallback.

https://developer.apple.com/legacy/library/documentation/Carbon/Reference/ATSUI_ Reference/index.html#//apple_ref/c/tdef/ATSUFontFallbackMethod


Font Fallback Methods


Specify the method by which ATSUI tries to find an appropriate font for a character if the assigned font does not contain the needed glyphs.

Seems like Core Text was rolled out Tiger-Snow, turned on fully in Snow (at least that’s how i interpreted what i read). In terms of Core Text and/or other parts of newer OS X versions’ text handling code:


http://stackoverflow.com/questions/29069362/how-does-apples-text-rendering-draw- a-glyph-that-a-font-doesnt-have

A list of fallback fonts in Core Text is known as a "cascade list", which is an attribute of a CTFontDescriptor (the kCTFontCascadeListAttribute).

The system's default cascade list can be accessed using CTFontCopyDefaultCascadeListForLanguages(). For some reason this function isn't documented on Apple's website yet, but here's its documentation from the 'CTFont.h' header file:[omitted here]

On Mac OS X 10.10, the default English cascade list contains 26 fonts that cover a wide set of languages and symbols.

You can customise the cascade list/fallback fonts for your own CTFont instances by setting the kCTFontCascadeListAttribute attribute of a custom CTFontDescriptor to an array of fallback CTFontDescriptor objects. Then, turn it into a CTFont with CTFontCreateWithFontDescriptor(). If you don't set a custom cascade list on your CTFontDescriptor, it will use the global list by default.

From a WWDC text-related conference in 2012 (my purple text emphasis):

http://asciiwwdc.com/2012/sessions/226

Font fallback, some would say is a crucial component to Unicode text layout because up until recently, it’s been impossible to construct a single font that covers all of Unicode and besides doing so would be prohibitively costly and time-consuming. Basically, Unicode wants you to be able to specify any character in the standard and it’s entirely unlikely that you are going to try to adjust the font for every particular character in that string. It’s very important to be able to rely on having a fallback mechanism in place. Our default mechanism for that we call the system cascade, which is a list of fonts that will consult if the specified font does not cover some or one or more of the characters in the string that you asked to layout. But, in some cases developers have asked for a way to modify the behavior of the system cascade. Well, the mechanism we’ve had in place since the beginning of CoreText, is to use this attribute to specify the cascade list or user cascade list as opposed to the system cascade list. What that is is a list of fonts that you can specify as an attribute to either a font or a font descriptor. We will consult those in order, whenever we need to search for fallback prior to consulting the system cascade.

I did some more testing (Snow Leopard 10.6.8, Safari 5.1.10, Aviator and Firefox versions listed earlier). It seems like fallback or system cascade is simply not working in Snow Leopard with any of these 3 WWW browsers. The test page (http://apps.timwhitlock.info/emoji/tables/unicode#block-1-emoticons) specifies (first in its CSS list) Helvetica Neue, and indeed that’s what’s being used in all three browsers, even when the characters are missing. If i go to a different site (membership site, so i won’t put a link here) which is the actual real-world site where i was seeing the problem (message board where some people are emoji-happy), that site specifies Verdana as its first choice CSS font, and indeed the browsers use Verdana, even when the glyphs are missing.


Now, if i go in with developer tools (i only tried this in Safari and Firefox) and disable the site’s CSS font selection, then the browser drops back to its own default (Times 16 i think in both cases, for sure in Safari), which also is missing those glyphs. The shape of the missing character box changes (actually the stroke thickness more than the shape), but the browser is still using the selected font with no fallback, even with glyphs missing. If i then change that browser’s default to Symbola, then i finally get back to what ATSUI happily gave me with no hassle and no settings changes in Tiger, thanks to fallback working in late ATSUI.


Since font fallback/system cascade appears to not be working in Snow Leopard, i had the “clever” idea of maybe “borrowing” newer versions of Helvetica Neue and Verdana and other popular WWW fonts for my Snow Leopard system. The problem there is that when i checked Character Viewer on my housemate’s MacBook Air running Mavericks, the emoji range was only offered in one font Apple Color Emoji. If the system cascade worked and included (or could be hacked to include) Apple Color Emoji, i might have a fix (for purposes of testing, anyway. Probably not legal for me to “borrow” fonts like that for actual ongoing use).


Bottom line: as Tom has pointed out and Kurt has amplified, it appears that fallback is broken on Snow Leopard, and there’s no easy workaround without overriding automatic site-chosen fonts. There could be involvement from WebKit, though since the problem also occurs on Aviator (ChromeKit) and Firefox (Mozilla), i’m still thinking the problem is in the OS’s text infrastructure.


My parting question: does anyone know when system cascade/font fallback started working again, as in which major OS X version? If it has yet.


Thank you all very much for your time and efforts!


))Sonic((

Sep 8, 2015 1:47 PM in response to Sonic Purity

I’d be curious to know what that bug is, even if it’s pretty obscure or technical.

It has to do with glyphs created as links to other cells within the same font. I started a very simple font to show what I mean. I've drawn the letter A, and the acute accent. You can tell they're drawn because you can see the anchor points on the outlines, and the lines are full black in color:


User uploaded file


User uploaded file


Now, rather than redrawing the same strokes for accented characters (of which there are many), or copy/pasting them from one cell to the next, you can use the cells that already drawn to create the accented style. In fact, when I double clicked the cell for the acute A, FontLab Studio automatically created it from the two cells I had already drawn. Said another way, it uses aliases to the A and acute cells to create the third item. No paths actually exist in the accented A cell, as it notes by showing the outlines only as gray lines:


User uploaded file


What the bug was, is that in at least some fonts, cells created as aliases like this wouldn't show up on screen or print. They're correctly created, but didn't always work.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Symbola font not working in web browsers in Snow Leopard

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.