Schriftgestaltung durch Web Fonts

Die Ver­wen­dung von Web Fonts als Gestal­tungse­le­ment nimmt stetig zu. Im Juli 2015 liefer­ten 48 Prozent aller Alexa Top-1000 Web­sites indi­vidu­elle Web Fonts für mobile Endgeräte aus [Eve15b]. Web Fonts verzögern die Ladezeit ein­er Web­seite durch eine hohe Dateigröße und zusät­zliche HTTP-Anfra­gen. Gle­ichzeit­ig brin­gen sie, abge­se­hen von der optis­chen Darstel­lung, keinen Mehrw­ert für den Nutzer. Auf die Aus­liefer­ung von Web Fonts für mobile Endgeräte sollte, laut Tam­my Everts, zugun­sten der Ladezeit verzichtet wer­den [Eve15b]. Dies kann beispiel­sweise, wie nach­fol­gend gezeigt, durch die Angabe ein­er Sys­tem­schrif­tart und zusät­zlich ein­er Web Font über Media Queries im Stylesheet gelöst wer­den. Aktuelle Brows­er laden Schrif­tarten nur dann, wenn diese für die Darstel­lung anhand des View­ports vorgegeben wur­den [Hog15].

body { font-family: Arial, sans-serif; }
@media (min-width: 1000px) {
  body { font-family: 'Font-Name', Arial, sans-serif; }
}

Die Dateigröße ein­er Web Font ist von der gewählten Schrif­tart und den enthal­te­nen Schriftschnit­ten abhängig [Zil13]. Durch die gezielte Auswahl benötigter Schriftze­ichen kann eine Reduzierung der Dateigröße erre­icht wer­den [Ste15a]. Zur Ein­bindung von Web Fonts wird emp­fohlen, Web-Dien­ste wie Google Fonts oder Adobe Type­kit, anstelle ein­er lokalen Ein­bindung, zu nutzen. Diese Dien­ste sind auf eine möglichst schnelle Aus­liefer­ung der Web Fonts durch ein CDN opti­miert und kön­nen darüber hin­aus im Cache des Browsers, durch den Abruf ander­er Web­sites, bere­its vorhan­den sein [Koc12].

Während des Lade­vor­gangs von Web Fonts kön­nen die Effek­te Flash of Unstyled Text (FOUT) und Flash of Invis­i­ble Text (FOIT) auftreten. Bei­de Effek­te führen zu einem neg­a­tiv­en Ein­fluss auf die User Expe­ri­ence. FOUT entste­ht durch den Aus­tausch der angezeigten Sys­tem­schrif­tart mit der Web Font, sobald diese voll­ständig geladen wurde. Der Text und zusam­men­hän­gende Ele­mente wer­den beim Ein­blenden der Web Font sicht­bar ver­schoben. Dieser Effekt kann, mit Hil­fe der Def­i­n­i­tion ein­er alter­na­tiv­en Sys­tem­schrif­tart, die nur unwesentlich in Schrifthöhe und Zeichen­ab­stand von der Web Font abwe­icht, min­imiert wer­den. Bei FOIT wird der Text einge­blendet sobald die Web Font voll­ständig geladen wurde, bis dahin sind die Texte der Web­seite für den Nutzer nicht sicht­bar (siehe Abbil­dung 3.11) [Ste12].

Abbil­dung 3.11: Auswirkung von FOUT (oben) und FOIT (unten) auf die Darstel­lung nach [Ste15a]

Um eine opti­male Per­for­mance bei der Ver­wen­dung von Web Fonts zu erre­ichen, emp­fiehlt sich die Ein­bindung in dem kom­prim­ierten Dateifor­mat Web Open Font For­mat 2 (WOFF2) [Ste15a]. Dieses wird von mod­er­nen Browsern unter­stützt und reduziert das zu über­tra­gende Daten­vol­u­men. Bram Stein berichtet in dem Type­kit Blog von ein­er durch­schnit­tlichen Verbesserung um 30 Prozent, die WOFF2 gegenüber WOFF durch eine verbesserte Kom­prim­ierung erre­icht [Ste15b]. Die News-Web­site „The Guardian“ kon­nte durch einen Wech­sel auf eine Schrif­tart im WOF­F2-Dateifor­mat die Latenzzeit um 200 Mil­lisekun­den ver­ringern und 50 Kilo­byte Daten­vol­u­men eins­paren [Fri14].

Die Ein­bindung von Web Fonts kann entwed­er direkt im <head>-Element des HTML-Doku­mentes erfol­gen oder über die Inte­gra­tion eines Web Font Load­ers, der die Schrift asyn­chron mit­tels JavaScript nach­lädt. Die direk­te Ein­bindung kann, bed­ingt durch die Dateigröße der gewählten Schrif­tart und die Daten­verbindung des Nutzers, den FOIT-Effekt her­vor­rufen [Ste15a]. Ein von Google und Type­kit mit entwick­el­ter Web Font Loader soll hier Abhil­fe schaf­fen und auch den FOUT-Effekt reduzieren [Ber15].

Abbil­dung 3.12: Lade­vor­gang ohne Web Font, mit Ein­bindung per CSS und mit­tels Web Font Loader

Bei einem Ver­such im Rah­men dieser Arbeit wur­den die Auswirkun­gen der Ein­bindung von Web Fonts mit Web­Pagetest evaluiert. Wird zur Darstel­lung eine Sys­tem­schrif­tart gewählt, dann erscheint die Schrift direkt nach dem Laden des Stylesheets, wie anhand des ersten Film­streifens in Abbil­dung 3.12 ersichtlich ist. Der zweite Film­streifen zeigt das Ergeb­nis bei der Ein­bindung ein­er Web Font über das <head>-Element, ohne die Angabe ein­er Sys­tem­schrif­tart als Rück­fall-Lösung. Dabei kommt es zum FOIT-Effekt und die Schrift erscheint erst nach 0,8 Sekun­den, während andere Ele­mente deut­lich früher sicht­bar sind. Bei dem let­zten Ver­such erfol­gte die Inte­gra­tion der Web Font durch den Web Font Loader von Google. Bis dieser die Schrift­datei geladen hat, wird eine Sys­tem­schrif­tart angezeigt, die nach 0,9 Sekun­den kurzzeit­ig ver­schwindet und anschließend durch die Web Font erset­zt wird.