Verificarea etichetelor măsura în puncte, nu în pixeli
O verificare scrisă pe 27 august a raportat 196 de etichete de diagramă ca fiind prea late pentru imaginea în care se află. Parcurgerea lor a durat o zi. 103 dintre cele 196 s-au dovedit a fi un artefact al verificării înseși, iar verificarea a fost corectată în aceeași săptămână.
Punctele nu sunt pixeli
Verificarea măsoară o etichetă cu GD, pe baza unui fișier de font real:
$bb = imagettfbbox(13, 0, $font, $text);
13 este dimensiunea fontului din foaia de stil, în pixeli. imagettfbbox() primește dimensiunea în puncte. Măsura 13pt, adică 17,3px, iar fiecare etichetă ieșea de 96/72 ori mai lată — cu o treime — decât trebuia.
Calea de a fi sigur a fost să întrebi ceva care chiar desenează text. Chromium headless poate încărca diagrama reală și poate raporta getComputedTextLength() pentru fiecare etichetă. La 13, cele două difereau cu o treime. La 13 * 72 / 96, adică 9,75, se potrivesc cu o diferență de cel mult jumătate de procent: 219 față de 219 pixeli pentru o etichetă, 561 față de 559 pentru una mai lungă.
Fontul a fost corect de la bun început
Verificarea măsoară cu DejaVu Sans, iar comentariul de deasupra își cerea scuze pentru asta: DejaVu este mai lat decât ce văd majoritatea cititorilor, așa că pragul a fost stabilit la 92 la sută, ca să lase loc.
Măsurată, alegerea se dovedește exact corectă, dar din alt motiv decât cel dat de comentariu. Dintre fonturile pe care lista de fonturi a acestui site le poate atinge efectiv, DejaVu este cel mai lat. Aceeași propoziție: DejaVu 219 pixeli, Liberation 194, Cantarell 193, FreeSans 188. Un cititor pe Windows sau pe Mac primește mai mult loc, niciodată mai puțin. Măsurătoarea nu este pesimistă, este cazul cel mai rău, iar asta este ce ar trebui să măsoare o verificare.
Ce a rămas după aritmetică
93 de raportări au supraviețuit măsurătorii corectate. Apoi 33 dintre ele s-au dovedit a fi o regulă, nu o greșeală: verificarea păstra o rezervă de zece unități față de marginea imaginii și o trata ca pe o limită fixă, așa că o etichetă de an aflată la trei unități de margine era considerată tăiată. Nimic nu era tăiat. Limita este acum marginea însăși, iar întrebarea despre cât de strâns este locul ține de pragul de 95 la sută.
Ce a rămas era real: etichete care intrau sub bare, coloane prea înguste pentru o propoziție în rusă, o legendă așezată peste vecina ei. Acestea au fost reparate prin mutarea geometriei, ceea ce este ieftin — geometria este identică în toate cele unsprezece rânduri de limbă, așa că o singură înlocuire literală repară unsprezece. Patru etichete erau cu adevărat mai lungi decât întreaga imagine, fiecare într-o limbă, și acestea au fost scurtate.
Ce se poate generaliza
O verificare care greșește într-o direcție produce muncă, de aceea merită verificat și verificatorul. Două treimi dintr-o zi s-au dus pe diagrame care erau în regulă — iar aceeași trecere le-a reparat pe cele care nu erau, pentru că raportările greșite stăteau lângă cele reale.
Ce a lămurit lucrurile nu a fost citirea mai atentă a codului. A fost măsurarea măsurătorii în raport cu ceva independent care desenează text real — iar asta a durat zece minute. Verificarea dimensionează acum la 13 * 72 / 96 și rulează pe această bază de atunci.