Gedankenprozess eines Frontend-Problems

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

„Ihre Schriftarten werden auf Opera Mobile seltsam gerendert.“

Danke, dass Sie sich die Zeit genommen haben, mir das mitzuteilen. Können Sie mir einen Screenshot schicken, damit ich ihn sehen kann?

Wow, das ist seltsam. Ich verwende benutzerdefinierte Schriftarten über @font-face und einen Drittanbieterdienst. Es ist nicht nur eine Frage, dass die benutzerdefinierte Schriftart fehlschlägt und zu einer anderen Schriftart zurückfällt, die wegen unterschiedlicher Abstände und so weiter seltsam aussehen kann. Es scheint, dass

  • Einige Zeichen werden in der korrekten @font-face-Schriftart gerendert
  • Einige Zeichen werden in der Fallback-Schriftart gerendert
  • Einige Zeichen werden gar nicht gerendert (Box mit X-Symbol)

Erstens weiß ich, dass es zwei verschiedene Arten von Opera Mobile-Browsern gibt: „Opera Mini“ und „Opera Mobile“. Ich sollte mich da schnell einarbeiten.

{Googelt „opera mini und opera mobile“.}

Finde einige seltsame Forenbeiträge, klicke mich ein wenig durch und lande bei einem ordentlichen Blogbeitrag, der den Unterschied erklärt.

In Opera Mini befindet sich die Opera Presto-Browser-Engine auf einem Server. In Opera Mobile ist sie auf Ihrem Telefon installiert.

Die Person, die wegen des Schriftartenproblems gemailt hat, sagte, es sei Opera Mobile, also werde ich das zuerst testen. Aber da ich mir vorstelle, dass nicht jeder auf der Welt überhaupt weiß, dass es verschiedene Arten von Opera-Browsern auf Mobilgeräten gibt, werde ich die andere testen, falls nötig. Es scheint tatsächlich eher Mini das Problem zu sein, da ich mir vorstellen kann, dass eine serverseitige Rendering-Engine spezielle Tricks anwendet wie z. B. „nur X Sekunden warten“ für Drittanbieterressourcen oder so etwas, wodurch eine Schriftartdatei halb heruntergeladen wird.

Ich frage mich, ob ich das selbst reproduzieren kann.

Ich habe irgendwo ein Kindle Fire herumliegen, aber das Ding hat diesen seltsamen Amazon Silk Browser, und ich glaube nicht, dass er mir erlaubt, andere Browser herunterzuladen. Ich habe ein Nexus 7, das ich zum Testen unter Android gekauft habe, aber ich bekomme es nie eingeschaltet. Ich habe es einmal zum Laufen gebracht, aber ich musste die Rückseite abnehmen und es praktisch mit einem Messer anstechen, bis es funktionierte. Ich habe es noch nicht geschafft, es in einen Vulkan zu werfen.

Vielleicht sollte ich ein neues Android-Gerät für Tests kaufen, das besser bewertet ist. Oder vielleicht ein Gerät, das Opera standardmäßig hat. Na ja, dafür ist jetzt gerade keine Zeit.

Kann mir BrowerStack das vielleicht emulieren? Ooooh, das kann es, schön.

Bingo.

Jetzt kann ich das Problem zumindest reproduzieren. So kann ich, wenn mir etwas zur Änderung einfällt, die Ergebnisse testen. Allerdings gibt es in diesem Emulator leider keine DevTools, sodass er mir das Problem nicht allein erklären kann.

Vielleicht gibt es einen Emulator, den ich selbst ausführen kann? Ooooh, den gibt es! Gut gemacht, Opera.

Während ich auf den Download warte, google ich ein wenig herum. Hmmm, ein Beitrag von Mr. Zeldman, der **extrem** ähnlich ist. Seine Lösung war die Nutzung eines Drittanbieterdienstes (z. B. Typekit), im Grunde weil sie sich damit auskennen. Oder die Nutzung eines vertrauenswürdigen Tools wie des Font Squirrel-Generators, um die beste Qualität der Dateien und Syntax sicherzustellen.

Leider nutze ich bereits einen Drittanbieterdienst (Cloud Typography), sodass ich dort nicht viel Kontrolle habe. Ich werde weiter selbst daran arbeiten, aber ich werde ihnen eine E-Mail schreiben und das Problem beschreiben. Hauptsächlich, damit sie davon erfahren, aber auch, weil sie vielleicht eine Korrektur haben, die ich ausprobieren könnte.

{Tippt die E-Mail und sendet sie ab.}

Okay, der Emulator ist fertig heruntergeladen.

Es funktioniert. Cool. Auf der Download-Seite wurde es so dargestellt, als könnte man Opera Dragonfly zur Fehlerbehebung von hier aus nutzen, aber wenn man die Dokumentation liest, scheint dies nur für lokale Seiten möglich zu sein und es ist ein etwas seltsames Setup. Außerdem stelle ich jetzt fest, dass in der von mir verwendeten Opera-Version die Chrome DevTools praktisch integriert sind, nicht Dragonfly. Müsste ich also eine alte Opera-Version herunterladen, um das zu tun? Uff, ich habe das Gefühl, dieser Kaninchenbau wird zu tief.

Vielleicht sollte ich mir eine andere Website ansehen, die denselben Drittanbieterdienst wie CSS-Tricks nutzt. Wir verwenden auch auf CodePen Cloud Typography, um Schriftarten bereitzustellen, aber ganz andere Schriftarten, das wäre also auch ein interessanter Test.

Ah ha! Ähnlich auf störende Weise.

Das ist der stärkste Hinweis bisher. Es muss einfach daran liegen, wie Cloud Typography funktioniert. Leider habe ich wenig Kontrolle darüber, da sie die Dateien bereitstellen und sie absichtlich ziemlich verschleiert sind.

Ich habe jedoch die Kontrolle darüber, ob ich den Stylesheet überhaupt bereitstelle oder nicht. Ich weiß, ich bin noch nicht bereit, benutzerdefinierte Schriftarten ganz aufzugeben, weil ich sie mag und sie im Allgemeinen gut funktionieren, aber vielleicht kann ich sie irgendwie nur für Opera Mobile aufgeben.

Es ist immer ein wenig verlockend, User-Agent-Erkennung zu versuchen. Opera bietet Dokumentationen dafür, was sie tun, und ich könnte es jederzeit testen. Aber ich bin zögerlich. Nicht nur ist es theoretisch schlecht, sondern jedes Mal, wenn ich es getan habe, habe ich es bereut, weil es entweder nicht das erfasst hat, was ich wollte, zu viel erfasst hat oder beides. Außerdem finde ich keine guten PHP-Code-Schnipsel speziell dafür und ich bin ein besserer Balletttänzer als Regex-Schreiber. Möchte ich diese Straße noch einmal gehen? Nicht wirklich.

Ich könnte auch ein wenig in die Analysen schauen, um das Ausmaß dieses Problems zu sehen. Hier sind die Top 10 Browser hier

„Opera Mobile“ taucht nirgends in der Liste auf, selbst wenn man alle 189 dargestellten durchsieht. Es muss entweder bei „Opera“ (ein Teil von 1 %) oder „Opera Mini“ (ein Teil von 0,1 %) zusammengefasst sein. Mobile macht insgesamt etwa 3 % auf dieser Website aus, was iOS und Android einschließt, die weitaus beliebter sind. Ich glaube also, dass dies wahrscheinlich etwa 0,25 % der Leute betrifft.

Ich möchte das wirklich beheben, aber angesichts der super kleinen Zahlen, des Mangels an guten Testtools, der Dinge, die außerhalb meiner Kontrolle liegen, und der potenziellen Gefahren einiger Lösungen, fühle ich mich ziemlich hilflos. Ich werde wohl einfach warten und sehen, was der Anbieter zu sagen hat.


Dies ist nur eine Geschichte darüber, wie es ist, ein Frontend-Entwickler zu sein. Es geht nicht einmal so sehr um Schriftarten, sondern um den Kampf, den Prozess und die Entscheidungen.