Artikel von:Søren
Veröffentlicht am: 22/08/2019

Spaß mit dem Silbentrennungsalgorithmus

Eine Anekdote aus dem Agenturalltag

Diese Woche erreichte uns eine ungewöhnliche Meldung: unsere Ansprechpartnerin beim Gemeinsamen Bundesausschuss machte uns darauf aufmerksam, dass sie in ihrem Standardbrowser (Mozilla Firefox) keine verlinkten Texte mehr von der Website kopieren und in Word einfügen konnte — in Word kam nur noch der Text ohne Verknüpfung an. Eine schnelle Gegenprobe mit verlinkten Texten von anderen Websites ergab: das Problem trat nur auf der Seite www.g-ba.de auf.

Eine Anfrage wie diese löst oft widersprüchliche Gefühle aus. Einerseits macht es Spaß, eher obskuren Bugs auf die Schliche zu kommen, andererseits seufzt man innerlich ob der ungewöhnlichen Problematik.

Zum Glück konnten wir das Problem zügig eingrenzen: "Mit deaktiviertem Javascript funktioniert es", schrieb Stefan nach zehn Minuten. Einige Zeit später war klar, dass es an Hyphenopoly, einem Javascipt-basierten Polyfill für Silbentrennung lag. 

Silbentrennung – ein gelöstes Problem?

Wir setzen Hyphenopoly in Projekten ein, in denen Wert auf ordentlichen Flattersatz mit Silbentrennung in allen Browsern gelegt wird. Eigentlich unterstützen mittlerweile fast alle Browser Silbentrennung über eigene Wörterbücher und Regelwerke, die natürlich für jede Sprache unterschiedlich sind. Der Support für Deutsch ist insgesamt geringer als der für Englisch, aber Mozilla Firefox, Apple Safari, Google Chrome und demnächst Microsoft Edge haben Silbentrennung für die deutsche Sprache umgesetzt. Die große Ausnahme ist hier leider der Microsoft Internet Explorer (IE) in allen Versionen. Für Deutschland gibt StatCounter zwischen Mai und August 2019 zwar "nur" noch einen Anteil von ca. 7% für IE 11 an, beim Gemeinsamen Bundesausschuss liegt dieser aber deutlich höher: hier sehen wir in unseren Daten für IE 11 eine Quote von 25% für den gleichen Zeitraum. Diese Zahlen sowie der (Kunden-)Wunsch nach visueller Einheitlichkeit sind der Hauptgrund für unseren Einsatz von Hyphenopoly.

Hyphenopoly bringt von Haus aus eine sogenannte feature detection mit: zunächst wird nur ein kleines Skript geladen, das beim Aufruf der Website für ein konfiguriertes Testwort testet, ob der Browser eine erwartete Silbentrennung vornehmen würde. Nur wenn das Ergebnis negativ ausfällt, lädt Hyphenopoly das eigentliche Skript sowie die für die aktuelle Sprache nötigen Wörterbücher nach.

Regression in Firefox

Zurück zu unserem Problem. Die Tatsache, dass Hyphenopoly scheinbar verhindert, dass Verknüpfungen mit kopiert werden können, ist unschön, aber vielleicht nicht die Stelle, an der wir zuerst ansetzen sollten.

Was uns vor allem verwundert hat: Firefox unterstützt Silbentrennung für Deutsch, Hyphenopoly hätte also gar nicht in Aktion treten sollen! Ein kleiner Testcase bestätigte unseren Verdacht – tatsächlich schlug die Silbentrennung in Firefox fehl. 

In Firefox Version 68 wird das Wort "Silbentrennungsalgorithmus" nicht getrennt
In Firefox Version 68 wird das Wort "Silbentrennungsalgorithmus" nicht getrennt.

Eine schnelle Suche im Bugtracker von Firefox blieb ohne Erfolg  – scheinbar hatte noch niemand ein Ticket erstellt. Kein Problem, wir hatten ja bereits einen Testcase. Zusätzlich konnten wir beweisen, dass die Silbentrennung in einer der letzten Versionen von Firefox noch korrekt funktioniert hatte. Genug Informationen für einen hoffentlich aussagekräftigen Bugreport.

In Firefox Version 64 wurde das Wort "Silbentrennungsalgorithmus" noch korrekt getrennt
In der Betaversion von Firefox 64 funktionierte es noch.

Die Antwort traf nur wenige Stunden später ein: es war doch ein bereits bekannter Fehler, der in der folgenden Browserversion bereits behoben war. Mit einem Großbuchstaben beginnende Worte wurden nicht korrekt getrennt! Die gleichen Worte, komplett in Kleinbuchstaben, verhielten sich einwandfrei. Auch das konnten wir in unserem Testcase sofort nachvollziehen.

In Firefox Version 68 wird das Wort "silbentrennungsalgorithmus" korrekt getrennt, wenn es nicht mit einem Großbuchstaben beginnt
Scheibt man das Wort klein, trennt auch der aktuelle Firefox korrekt.

Abschließend konnten wir daher unser Hyphenopoly-Testwort anpassen (nur Kleinbuchstaben), das unnötige Laden des Polyfills auch in der aktuellen Version von Firefox verhindern und unsere Ansprechpartnerin informieren, dass sie ab sofort wieder Links von der Website kopieren und samt Verknüpfung in Word einfügen kann.

Eine kuriose Fehler-Kaskade aus dem Alltag in der Webentwicklung.

Über Søren

Avatar von Søren Birkemeyer

Søren Birkemeyer

Frontend-Entwickler

2017 hat Søren zu unserer großen Freude bereits zum zweiten Mal den Weg zu uns gefunden. Nachdem er seine Ausbildung bei uns abgeschlossen und bereits mehrere Jahre als Entwickler bei uns Erfahrung gesammelt hatte, führte sein Weg ihn zunächst für einen Zwischenstopp hinaus in die weite Welt der Webbranche. Mit viel neuem Know-how im Gepäck kehrte er schließlich zur webfactory zurück und begeistert uns seitdem erneut mit seiner Expertise und seinem Engagement. Neben "Frontendisch" spricht Søren auch "Backendisch" und "Designisch" und sieht seine Rolle besonders in der Vermittlung zwischen den Bereichen. Wenn Søren mal nicht in die Tasten haut, dann hängt er gerne an Boulderwänden ab und besteigt den ein oder anderen Berg – am liebsten im hohen Norden.

Wir freuen uns über Feedback und Diskussionen via @polarbirke oder @webfactory!

Wir suchen Symfony-Entwickler*innen!

Nach oben