Björn Klippstein

Font-Family-Problem

Klippstein IT Service

Aus 4webmaster.de

Wechseln zu: Navigation, Suche

Wie international ist das Web?

In der „Computersteinzeit“ haben Zeichensätze Kulturgrenzen markiert. Die verwendeten Zeichensätze konnten 128 oder 256 Zeichen kodieren. Die Buchstaben und Symbole fremder und weit entfernter Länder passten nicht in den knappen Platz und waren dann im gleichen System nicht darstellbar. Das war ein großes Hindernis für den internationalen Datenaustausch.

Seit 1991 hat das Unicode-Konsortium daran gearbeitet, dieses Problem zu lösen. Das Unicode-Kodierungssystem hat das Ziel, jedem sinntragenden Zeichen aller Kulturen dieser Welt einen Code zuzuordnen. Dadurch werden Daten und Texte weltweit verwendbar – und man kann Daten aus der ganzen Welt im gleichen System verarbeiten. Es geht um ein großes Ziel. Bislang wurden fast 100 000 Zeichen zusammengetragen!

17 Jahre nach der Grundsteinlegung von Unicode können fast alle Betriebssysteme und der größte Teil der Anwendungssoftware mit der Unicode-Kodierung umgehen. Auf den allermeisten Computern sind dutzende, wenn nicht hunderte Schriftarten installiert. Zusammengenommen können sie meist sehr viel mehr Zeichen darstellen als der Benutzer des Computers überhaupt kennt. Und alle diese Zeichen sind eindeutig kodiert, eben mit dem Unicode-System. Jedes dieser Zeichen lässt sich also übertragen und weiterverarbeiten.

Von dieser Entwicklung sollte besonders das World Wide Web profitieren, könnte man denken. Denn das WWW ist ja das weltweite Medium schlechthin.

Wir sind sogar schon viel weiter. Es geht längst nicht mehr allein darum, dass ein Ö wirklich als Ö ankommt statt als Datenmüll. Ein Designer legt heutzutage die Optik der Darstellung detailliert fest. Welche Schriftart soll es sein – Verdana, Tahoma, Palatino Linotype? Jede Schriftart transportiert einen Stil, unterstreicht die corporate identity, ist ein bestimmendes Element im Look-and-Feel einer Website.

Ist das eine treffende Beschreibung, wo wir heute stehen? Leider nicht. Es gibt da ein kleines Problem ganz am Ende der Kette, das vieles zunichte macht. In der Realität des WWW kann der Webdesigner mitnichten auf den reichhaltigen Fundus der Unicode-Zeichen zugreifen. Viele Hunderte oder manchmal auch viele Tausend Zeichen, die ein Leser versteht, für die er auch Schriftarten auf seinem Computer installiert hat, die der Autor eines Web-Textes auch sehr gerne nutzen würde, bleiben nicht übertragbar.

Die Ursache ist ein technischer Mangel des Internet Explorers. Da dieser Browser weltweit am häufigsten für die Darstellung von Webseiten genutzt wird, müssen sich Web-Autoren an den Fähigkeiten dieses Browsers orientieren. Was der IE nicht darstellen kann, können die meisten Leser auch nicht sehen. Es nützt also wenig, wenn Firefox und andere Browser den Mangel nicht aufweisen.

Die Schriftarten-Wunschliste

Wenn eine Webseite per HTTP übertragen wurde, muss sie vom Browser des Users noch auf dem Bildschirm dargestellt werden. Der Designer der Seite hat in CSS festgelegt, welche Schriftarten dazu verwendet werden sollen. Dazu dient die font-family-Eigenschaft einer Seite oder eines Elementes.

Die font-family-Eigenschaft enthält eine Wunschliste des Designers, welche Schriftart er am liebsten nutzen würde (wenn sie verfügbar ist), und welche Schriftarten danach in Frage kommen. Diese Wunschliste kann dem Browser außerdem dabei helfen, die verwendeten Unicode-Zeichen schnell zu finden. Denn es gibt auch in 2007 keine einzelne Schriftart, die alle Unicode-Zeichen darstellen könnte. Dazu sind es viel zu viele Zeichen.

Darstellungstest für Sonderzeichen

Probieren wir zunächst aus, ob die Darstellung von Unicode-Sonderzeichen überhaupt funktioniert. Wir stellen einen kleinen Text und einige Sonderzeichen in der Schriftart Lucida Sans Unicode dar. Wenn die Schriftart nicht vorhanden ist, soll irgend eine andere serifenlose Schrift zum Einsatz kommen. Die entsprechende Angabe in CSS lautet font-family:'Lucida Sans Unicode',sans-serif;
Hier sehen Sie das Ergebnis unseres Tests:

font-family:'Lucida Sans Unicode',sans-serif;
Normaler Text Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich.
Mathematische Symbole ≈ ∝ ≡ ∧ ∨ ∃ ∀ ∝ ∇ ∴ ℵ ∅ ∈ ∉ ∪ ⊂ ⊃ ⊆ ⊇
      Pfeile → ← ⇒ ⇔ ↔ ⇐
Buchstabenähnliche Symbole ℃ ℉ ℀ ℁ ℂ ℄ ℆ ℇ ℈ Ω ℣ ℳ

Es funktioniert. Alle Zeichen werden dargestellt, auch die Sonderzeichen. — Bitte nutzen Sie einen Microsoft-Browser, um die Testergebnisse der Schriftarten-Tests zu betrachten. Beim Firefox tritt das Problem, das hier beschrieben wird, gar nicht auf. Die folgenden Schriftarten-Tests zeigen entsprechend auch keine Auffälligkeiten.

Kann man das Schriftbild frei wählen, wenn man Sonderzeichen verwendet?

Nehmen wir an, ein Webdesigner entscheidet sich, die Schriftart Comic Sans auf einer Site einzusetzen. Sein Auftraggeber findet Comic Sans schön und außerderdem ist sie weit verbreitet. Als Ersatz-Schriftart notiert er einfach sans-serif, also irgendeine serifenlose Schrift. Da viele mathematische Symbole verwendet werden sollen, macht der Designer den gleichen Test wie eben. Er schaut, ob alle 37 Sonderzeichen richtig angezeigt werden:

font-family:'Comic Sans MS',sans-serif;
Normaler Text Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich.
Mathematische Symbole ≈ ∝ ≡ ∧ ∨ ∃ ∀ ∝ ∇ ∴ ℵ ∅ ∈ ∉ ∪ ⊂ ⊃ ⊆ ⊇
      Pfeile → ← ⇒ ⇔ ↔ ⇐
Buchstabenähnliche Symbole ℃ ℉ ℀ ℁ ℂ ℄ ℆ ℇ ℈ Ω ℣ ℳ


Hmm, nur 6 Sonderzeichen werden angezeigt. Genau genommen ist dieses Ergebnis verheerend schlecht. — Aber vielleicht muss man einfach dem Browser irgend eine Schriftart explizit angeben, welche die darzustellenden Sonderzeichen enthält? Vielleicht funktioniert es, wenn man als erste Wahl Comic Sans angibt, und als Ersatz-Schriftart für die Sonderzeichen Lucida Sans Unicode?

font-family:'Comic Sans MS','Lucida Sans Unicode',sans-serif;
Normaler Text Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich.
Mathematische Symbole ≈ ∝ ≡ ∧ ∨ ∃ ∀ ∝ ∇ ∴ ℵ ∅ ∈ ∉ ∪ ⊂ ⊃ ⊆ ⊇
      Pfeile → ← ⇒ ⇔ ↔ ⇐
Buchstabenähnliche Symbole ℃ ℉ ℀ ℁ ℂ ℄ ℆ ℇ ℈ Ω ℣ ℳ


Tja, der Test ergibt leider das gleiche Ergebnis. Obwohl Lucida Sans Unicode alle darzustellenden Zeichen anzeigen könnte.

Vertauscht man aber die Reihenfolge in der font-family-Angabe, so werden die Sonderzeichen auf einmal korrekt angezeigt.

font-family:'Lucida Sans Unicode','Comic Sans MS',sans-serif;
Normaler Text Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich.
Mathematische Symbole ≈ ∝ ≡ ∧ ∨ ∃ ∀ ∝ ∇ ∴ ℵ ∅ ∈ ∉ ∪ ⊂ ⊃ ⊆ ⊇
      Pfeile → ← ⇒ ⇔ ↔ ⇐
Buchstabenähnliche Symbole ℃ ℉ ℀ ℁ ℂ ℄ ℆ ℇ ℈ Ω ℣ ℳ


Aber leider wird jetzt auch der normale Text mit Lucida Sans Unicode angezeigt und nicht wie gewünscht mit Comic Sans :-(

Das Problem: Microsoft-Browser interpretieren die Schriftarten-Wunschliste falsch. Etwas vereinfacht gesagt verwendet der Internet Explorer zur Darstellung einer Webseite einfach die erste Schriftart aus dieser Liste, die er im System des Users vorfindet.

Und zwar unabhängig davon, ob diese Schriftart das Zeichen darstellen kann oder nicht. Wenn sie das darzustellende Unicode-Zeichen nicht enthält, zeigt der IE lieber einen leeren Platzhalter an als in den anderen Schriftarten der font-family-Liste zu suchen.

Dieses Verhalten zeigt nur der Internet-Explorer, Firefox macht das schlauer. Es widerspricht der Spezifikation von CSS für die font-familiy-Angabe hier nachzulesen. Diese Missachtung der W3C-Empfehlung hat sehr weitreichende Implikationen beim Einsatz von Unicode im Web.

Wieviele der 99 000 Unicode-Zeichen sind per WWW darstellbar?

Nehmen wir an, einem Webdesigner ist es gar nicht so wichtig, mit welcher Schriftart die Texte dargestellt werden. Mag es eine designerische Grundsatzentscheidung sein oder nicht: Ohne Sonderzeichen funktioniert die Website halt nicht, da muss man eben Kompromisse machen. Also entscheidet er sich zugunsten der Unicode-Sonderzeichen die weitverbreitete Unicode Schriftart Lucida Sans Unicode zu nutzten.

Ist die Welt denn jetzt in Ordnung? Kann man jetzt aus dem prallen Fundus der Unicode-Sonderzeichen schöpfen?
Nein. Denn die Angabe von Lucida Sans Unicode als erste Wahl in der font-family-Liste

  • ermöglicht es einerseits, 1765 Unicode-Zeichen darstellen
  • schließt aber andererseits mehr als 97 000 Zeichen von der Darstellung aus.

Denn wenn Lucida Sans Unicode an erster Stelle der Schriftarten-Wunschliste steht (und sie beim User gefunden wurde, was ziemlich sicher ist), verwendet der Internet Explorer diese Schriftart auf jeden Fall. Für alle 99 000 Zeichen des Unicode-Zeichensatzes. Auch für die 97 000 nicht vorhandenen Zeichen, die werden halt als leerer Platzhalter angezeigt. Da kann der User beliebig viele Schriftarten installiert haben, die Angabe von Lucida Sans Unicode blockiert sie alle.

Hilft es denn, wenn man dem Browser selbst die Wahl der Schriftart überlässt?

font-family:sans-serif;
Normaler Text Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich.
Mathematische Symbole ≈ ∝ ≡ ∧ ∨ ∃ ∀ ∝ ∇ ∴ ℵ ∅ ∈ ∉ ∪ ⊂ ⊃ ⊆ ⊇
      Pfeile → ← ⇒ ⇔ ↔ ⇐
Buchstabenähnliche Symbole ℃ ℉ ℀ ℁ ℂ ℄ ℆ ℇ ℈ Ω ℣ ℳ


Der Test zeigt, nein, leider nicht.

Ausweg aus dem Dilemma?

Dem Designer bleibt nur, kontinuierlich die Schriftart ändern, etwa so:

Dies ist normaler Text, gleich folgt ein seltenes Sonderzeichen:
<span style="font-family:'Lucida Sans Unicode',sans-serif"> Ω </span>
Das war ein echtes Sonderzeichen, es ist aber nur mit Tricks auch weltweit lesbar!

Und wenn er eines der 97 000 Sonderzeichen verwenden will, das nicht von Lucida Sans Unicode darstellbar ist, sucht er für dieses Zeichen halt eine andere Schriftartenliste zusammen.

Der Kerngedanke des Unicode-Projektes bleibt dabei allerdings unrealisiert. Die Idee war ja, ein beliebiges Zeichen einfach durch einen eindeutigen Code weltweit zu übertragen. Derzeit müssen Sie — zusätzlich zum Zeichencode — immer auch die Schriftart mit übermitteln, die das gewünschte Zeichen am wahrscheinlichsten enthält. Das ist machbar, wenn auch nicht sonderlich elegant.

Warum?

Es wäre naiv zu glauben, dass es sich um einen Softwarefehler handelt. Von den 71.171 Mitarbeitern des Konzerns hätte sich sicher einer gefunden, das Problem zu beheben. Am Geld sollte es auch nicht mangeln bei 44 Milliarden Dollar Umsatz in 2006 (Quelle: Wikipedia). Ein Informationsmangel liegt mit Sicherheit auch nicht vor: Microsoft ist selbst Mitglied des Unicode-Konsortiums.

Welche strategischen Vorteile mag sich der Konzern durch diese Implementierung des font-family-Eigenschaft erhoffen? Nutzt es Microsofts Kundenbindung, den CSS-Standard in dieser Weise zu unterlaufen? Für welches Ziel wird denn die Idee des Unicode-Systems geopfert?

Möglicherweise hängt es mit der Schriftart Arial Unicode MS zusammen. Sie liegt nicht den Betriebssystemen, sondern den Office-Produkten von Microsoft bei. Von allen wirklich weit verbreiteten Zeichensätzen kann Arial Unicode MS mit Abstand am meisten Unicode-Sonderzeichen darstellen.

Wenn Arial Unicode MS eingesetzt wird, können immerhin 38 917 Zeichen dargestellt werden. Wer sich also darüber beschwert, dass er irgendwelche Sonderzeichen nicht dargestellt bekommt, soll sich doch erstmal Office kaufen. Da liegt Arial Unicode MS schließlich bei.

Und jedem Webdesigner bleibt schließlich die kreative Freiheit, Arial Unicode MS an die erste Stelle in der font-family-Angabe zu stellen. So lassen sich nicht nur internationale Sonderzeichen darstellen, die Texten erhalten auch gleich den international verbreiteten Arial-Stil ;-)


Siehe auch

Weblinks