Eine Maskierung zu viel in acht Diagrammen
Eine Zeit lang zeigten acht Beiträge dieses Blogs mitten im Satz die sieben Zeichen —, und zwar in den Diagrammen. Keinen Gedankenstrich. Den Text selbst. Das ist inzwischen in allen Sprachen behoben.
81 Zeilen, 91 Vorkommen. Im Fliesstext derselben acht Beiträge: kein einziges.
Eine Maskierung zu viel
Die Diagramme sind eingebettetes SVG, das im Beitragstext steht. Eine Beschriftung, die einen Gedankenstrich will, trägt —, und der Browser macht einen daraus, genau wie in einem Absatz.
Gespeichert war aber —. Der Browser machte daraus brav die Zeichen, die eine Entität buchstabieren, und zeichnete sie. Der Fliesstext blieb unberührt, weil er nie durch das lief, was die zusätzliche Maskierung hinzufügte; nur die Beschriftungen liefen dadurch, und nur in den Beiträgen, deren Beschriftungen damals entstanden.
Die Ursache ist klein und langweilig. Aufschreibenswert ist, warum sie so lange offen sichtbar stehen blieb und was sie beendet hat.
Die Prüfung sah ihn und sagte etwas anderes
Es gibt eine Prüfung, die misst, ob eine Diagramm-Beschriftung in ihr Bild passt. Sie meldete diese Beschriftungen seit Tagen — als zu breit.
Was sie auch waren. Eine Beschriftung, die sieben Zeichen zeichnet statt eines, ist rund fünfundvierzig Pixel breiter als vorgesehen. Die Messung stimmte also, und die Meldung stimmte. Der Schluss, den ein Leser dieser Meldung zieht, stimmte nicht. Die Zahl sagte, die Geometrie sei zu eng. Die Wahrheit war, dass der Text nicht der war, für den er aussah.
Das ist die Form der Sache. Eine Prüfung beantwortet die Frage, die sie bekommen hat, und sie kann nicht melden, dass es die falsche Frage war. Falsch gemessen wurde hier nichts; die Messung handelte nur von einem anderen Problem als dem, nach dem sie aussah.
Was ihn gefunden hat
Ein Diagramm rendern und ansehen. Chromium ohne Fenster, ein Bildschirmfoto, zehn Sekunden. Die Entität stand in der dritten Zeile des Bildes, in derselben Größe wie alles andere.
Die Reparatur war eine Migration, die & durch & ersetzt, für eine feste Liste von Entitätennamen und nur innerhalb von <svg class="dg">-Blöcken, damit ein kaufmännisches Und, das eines sein soll, eines bleibt. Was nicht auf der Liste stand, wurde gemeldet und in Ruhe gelassen statt geraten. Alle 81 Zeilen sind in jeder Sprache berichtigt; im Blog stehen nur noch die Vorkommen, die in diesem Beitrag absichtlich zitiert werden.
Was sich verallgemeinern lässt
Jede automatische Prüfung in diesem Projekt misst etwas Zahlenmäßiges, weil Zahlen das sind, was ein Programm vergleichen kann. Keine davon kann sehen, dass ein Bild zu Unsinn geworden ist, dass ein Kasten leer steht oder dass ein Wort ausgeschrieben dasteht, wo ein Zeichen hingehört.
Die Regel, die dabei herauskam, ist kurz: nach jeder Änderung an einem Diagramm eines rendern und ansehen, in der Sprache, die am meisten Platz braucht. Sie hat inzwischen zweierlei gefangen, was keine Messung konnte — diesen Fall und einen leeren Kasten, der zurückblieb, als eine Bildunterschrift aus ihm herausgezogen wurde.