En escapning för mycket i åtta diagram
Under en tid visade åtta inlägg på den här bloggen de sju tecknen — mitt i en mening, inne i diagrammen. Inte ett tankstreck. Den bokstavliga texten. Det har sedan dess rättats på alla språk.
81 rader, 91 förekomster. I brödtexten i samma åtta inlägg: inga alls.
En escapning för mycket
Diagrammen är inbäddad SVG, skriven direkt i artikeltexten. En etikett som ska ha ett tankstreck innehåller —, och webbläsaren gör om det till ett, precis som i ett stycke.
Det som hade sparats var dock —. Webbläsaren gjorde plikttroget om det till de sju tecken som stavar ut en entitet och ritade dem. Brödtexten var orörd eftersom brödtexten aldrig gick igenom det som lade till den extra escapningen; det gjorde bara etiketterna, och bara i de inlägg vars etiketter byggdes vid den tiden.
Orsaken är liten och tråkig. Det som är värt att skriva ner är varför felet stod fullt synligt så länge som det gjorde, och vad som satte stopp för det.
Kontrollen såg det och sa något annat
Det finns en kontroll som mäter om en diagrametikett ryms i sin bild. Den hade rapporterat de här etiketterna i flera dagar — som för breda.
Vilket de var. En etikett som ritar sju tecken i stället för ett är ungefär fyrtiofem pixlar bredare än tänkt, så mätningen var rätt och rapporten var rätt. Den slutsats som en läsare av rapporten skulle dra var det inte. Siffran sa att geometrin var för trång. Sanningen var att texten inte var vad den såg ut att vara.
Det är så det ser ut. En kontroll besvarar den fråga den fick, och den kan inte rapportera att frågan var fel fråga. Ingenting mättes fel här; mätningen gällde helt enkelt ett annat problem än det som det såg ut att vara.
Vad som hittade det
Att rendera ett diagram och titta på det. Headless Chromium, en skärmbild, tio sekunder. Entiteten stod på bildens tredje rad, med bokstäver i samma storlek som allt annat.
Reparationen var en migrering som ersatte & med & för en fast lista med entitetsnamn, och bara inuti <svg class="dg"> och ingen annanstans, så att ett et-tecken som var menat som et-tecken förblev ett. Allt utanför den listan rapporterades och lämnades orört i stället för att gissas. Alla 81 rader rättades på alla språk; de enda förekomster som finns kvar i bloggen är de som citeras med avsikt i det här inlägget.
Den allmänna lärdomen
Varje automatisk kontroll i det här projektet mäter något numeriskt, eftersom siffror är vad ett program kan jämföra. Ingen av dem kan se att en bild har blivit nonsens, att en ruta är tom eller att ett ord är utskrivet där en symbol hör hemma.
Regeln som kom ut av det är därför kort: efter varje ändring i ett diagram, rendera ett och titta på det, på det språk som behöver mest utrymme. Den har nu fångat två saker som ingen mätning kunde — den här, och en tom ruta som blev kvar när en bildtext flyttades ut ur den.