Kontrola označení merala body, nie pixely
V tomto článku
Kontrola napísaná 27. augusta nahlásila 196 označení diagramov ako príliš širokých pre svoj obrázok. Prejsť ich trvalo deň. Pri 103 zo 196 sa ukázalo, že sú dôsledkom samotnej kontroly, a kontrola sa v ten istý týždeň opravila.
Body nie sú pixely
Kontrola meria označenie pomocou GD so skutočným súborom písma:
$bb = imagettfbbox(13, 0, $font, $text);
13 je veľkosť písma zo štýlopisu v pixeloch. imagettfbbox() prijíma veľkosť v bodoch. Meralo sa 13pt — čo je 17,3px — a nameraná šírka každého označenia dosiahla 96/72-násobok skutočnej šírky, teda bola o tretinu väčšia.
Istotu priniesla otázka niečomu, čo naozaj vykresľuje text. Headless Chromium dokáže načítať skutočný diagram a nahlásiť hodnotu getComputedTextLength() pre každé označenie. Pri 13 sa obe merania líšili o tretinu. Pri 13 * 72 / 96, čo je 9,75, sa zhodujú s odchýlkou do pol percenta: 219 oproti 219 pixelom pri jednom označení, 561 oproti 559 pri dlhšom.
Písmo bolo celý čas správne
Kontrola meria pomocou písma DejaVu Sans a komentár nad ňou sa za to ospravedlňoval: DejaVu je širšie než to, čo vidí väčšina čitateľov, preto sa prahová hodnota nastavila na 92 percent na ponechanie rezervy.
Po zmeraní sa výber ukazuje ako presne správny, no z iného dôvodu než v komentári. Z písiem, ku ktorým sa sada tohto webu naozaj dostane, je DejaVu najširšie. Tá istá veta: DejaVu 219 pixelov, Liberation 194, Cantarell 193, FreeSans 188. Čitateľ na systéme Windows alebo počítači Mac dostáva viac miesta, nikdy menej. Meranie nie je pesimistické, je to najhorší prípad a ten by kontrola mala merať.
Čo zostalo po aritmetike
Opravené meranie prežilo 93 hlásení. Potom sa pri 33 z nich ukázalo, že ide o pravidlo, nie chybu: kontrola nechávala desaťjednotkovú rezervu od okraja obrázka a považovala ju za pevnú hranicu, takže označenie roka tri jednotky od okraja sa počítalo ako odrezané. Nič sa neodrezávalo. Hranicou je teraz samotný okraj a otázka tesnosti patrí k prahovej hodnote 95 percent.
Čo zostalo, bolo skutočné: označenia pod stĺpcami, stĺpce príliš úzke pre ruskú vetu, popis zasahujúci do susedného. Opravili sa posunutím geometrie, čo je lacné — geometria je totožná vo všetkých jedenástich jazykových riadkoch, takže jedna doslovná náhrada opraví jedenásť. Štyri označenia boli naozaj dlhšie než celý obrázok, každé v jednom jazyku, a tie sa skrátili.
Čo sa dá zovšeobecniť
Kontrola chybujúca jedným smerom vytvára prácu, preto sa oplatí kontrolovať kontrolný nástroj. Dve tretiny dňa sa venovali diagramom, ktoré boli v poriadku — a ten istý prechod opravil tie, ktoré neboli, pretože nesprávne hlásenia boli vedľa skutočných.
Rozhodujúce nebolo pozornejšie čítanie kódu. Bolo to porovnanie merania s niečím nezávislým, čo vykresľuje skutočný text — a trvalo desať minút. Kontrola teraz meria veľkosť pri 13 * 72 / 96 a odvtedy beží na tomto základe.