Egy fölösleges escape-elés nyolc diagramban
Egy ideig a blog nyolc bejegyzésében a hét karakterből álló — szöveg jelent meg egy mondat közepén, a diagramokban. Nem gondolatjel. Szó szerint ez a szöveg. Azóta minden nyelven kijavítottuk.
81 sor, 91 előfordulás. Ugyanennek a nyolc bejegyzésnek a folyószövegében: egy sem.
Eggyel több escape-elés
A diagramok beágyazott SVG-k, közvetlenül a cikk szövegébe írva. Egy felirat, amelyben gondolatjelnek kell állnia, ezt tartalmazza: —, a böngésző pedig gondolatjellé alakítja, pontosan úgy, ahogy egy bekezdésben is.
A tárolt szöveg azonban ez volt: —. A böngésző ezt engedelmesen átalakította arra a hét karakterre, amely kibetűz egy entitást, és kirajzolta őket. A folyószöveg érintetlen maradt, mert a folyószöveg sosem ment át azon, ami a fölösleges escape-elést hozzáadta; csak a feliratok mentek át rajta, és csak azokban a bejegyzésekben, amelyeknek a feliratai abban az időben készültek.
Az ok apró és unalmas. Ami miatt érdemes leírni: miért maradhatott ilyen sokáig észrevétlenül szem előtt, és mi vetett neki véget.
Az ellenőrzés látta, és mást mondott
Van egy ellenőrzés, amely azt méri, elfér-e egy diagramfelirat a képében. Napok óta jelezte ezeket a feliratokat — mégpedig túl szélesként.
És azok is voltak. Egy felirat, amely egy karakter helyett hetet rajzol ki, nagyjából negyvenöt képponttal szélesebb a szándékoltnál, így a mérés is helyes volt, a jelentés is. A következtetés viszont, amelyet a jelentés olvasója levont volna, nem. A szám azt mondta, hogy a geometria túl szűk. Az igazság az volt, hogy a szöveg nem az volt, aminek látszott.
Ez a lényege. Egy ellenőrzés arra a kérdésre válaszol, amelyet feltettek neki, és nem tudja jelezni, hogy rossz volt a kérdés. Itt semmit sem mértek félre; a mérés egyszerűen egy másik problémáról szólt, mint aminek látszott.
Mi találta meg
Egyetlen diagram kirajzolása és megnézése. Headless Chromium, egy képernyőkép, tíz másodperc. Az entitás ott volt a kép harmadik sorában, ugyanakkora betűkkel, mint minden más.
A javítás egy migráció volt, amely & helyére & alakot írt egy rögzített entitásnév-lista elemeinél, és csak <svg class="dg"> blokkokon belül, hogy az és-jelnek szánt és-jel az is maradjon. Ami nem szerepelt a listán, azt jelentettük és érintetlenül hagytuk, ahelyett hogy találgattunk volna. Mind a 81 sort kijavítottuk minden nyelven; a blogban csak azok az előfordulások maradtak, amelyeket ez a bejegyzés szándékosan idéz.
Ami ebből általánosítható
A projekt minden automatikus ellenőrzése valami számszerűt mér, mert számokat tud egy program összehasonlítani. Egyik sem látja, ha egy kép értelmetlenné vált, ha egy doboz üres, vagy ha egy szó ki van betűzve ott, ahová egy jel tartozna.
A belőle született szabály tehát rövid: bármilyen diagramváltoztatás után rajzoljunk ki egyet, és nézzük meg, azon a nyelven, amelyiknek a legtöbb hely kell. Azóta két olyan dolgot fogott meg, amelyet semmilyen mérés nem tudott volna — ezt, és egy üres dobozt, amely akkor maradt vissza, amikor kivettek belőle egy képaláírást.