Kontaktovat podporu

Odpovíme e-mailem, obvykle do dvou dnů.

Google reCAPTCHA kontroluje toto odeslání kvůli ochraně před zneužitím; data se přitom předávají společnosti Google. Skript se načte až při otevření tohoto formuláře.

← Všechny články

Kontrola popisků měřila body, ne pixely

Kontrola napsaná 27. srpna nahlásila 196 popisků v diagramech jako příliš široké pro obrázek, ve kterém jsou. Projít je zabralo den. 103 ze 196 se ukázalo jako artefakt samotné kontroly a kontrola byla opravena ještě týž týden.

popisky nahlášené jako příliš široké pro svůj diagram první hlášení 196 opraveno měření a entity 93 posunuta geometrie 38 opraveno pravidlo okraje 3 zkráceny čtyři popisky 0 5 093 popisků změřeno v 77 článcích v jedenácti jazycích 103 ze 196 nikdy nebylo příliš širokých — to kontrola ano

Body nejsou pixely

Kontrola měří popisek pomocí GD vůči skutečnému souboru písma:

$bb = imagettfbbox(13, 0, $font, $text);

13 je velikost písma ze stylopisu, v pixelech. imagettfbbox() bere velikost v bodech. Měřila tedy 13 pt, což je 17,3 px, a každý popisek vyšel v poměru 96/72 — o třetinu — příliš široký.

Jistotu dalo zeptat se něčeho, co text skutečně kreslí. Headless Chromium umí načíst skutečný diagram a nahlásit getComputedTextLength() pro každý popisek. Při 13 se obě hodnoty lišily o třetinu. Při 13 * 72 / 96, tedy 9,75, se shodují s odchylkou pod půl procenta: 219 proti 219 pixelům u jednoho popisku, 561 proti 559 u delšího.

Písmo bylo celou dobu správné

Kontrola měří vůči písmu DejaVu Sans a komentář nad ní se za to omlouval: DejaVu je širší než to, co vidí většina čtenářů, takže práh byl nastaven na 92 %, aby zbyla rezerva.

Změřeno se ukazuje, že volba je přesně správná, ale z jiného důvodu, než uváděl komentář. Z písem, na která sada písem tohoto webu skutečně dosáhne, je DejaVu nejširší. Tatáž věta: DejaVu 219 pixelů, Liberation 194, Cantarell 193, FreeSans 188. Čtenář ve Windows nebo na Macu dostane víc místa, nikdy méně. Měření není pesimistické, je to nejhorší případ, a právě ten má kontrola měřit.

Co zbylo po aritmetice

Opravené měření přežilo 93 hlášení. Pak se 33 z nich ukázalo jako pravidlo, ne chyba: kontrola držela desetijednotkovou rezervu od okraje obrázku a brala ji jako pevnou hranici, takže popisek roku tři jednotky od okraje se počítal jako oříznutý. Nic oříznuté nebylo. Hranicí je teď samotný okraj a otázka těsnosti patří k prahu 95 %.

Co zbylo, bylo skutečné: popisky zasahující pod pruhy, sloupce příliš úzké na ruskou větu, titulek ležící přes svého souseda. Ty se opravily posunem geometrie, což je levné — geometrie je ve všech jedenácti jazykových řádcích stejná, takže jedna doslovná náhrada opraví jedenáct. Čtyři popisky byly v jednom jazyce skutečně delší než celý obrázek a ty byly zkráceny.

Co z toho plyne obecně

Kontrola, která se mýlí jedním směrem, vyrábí práci, a proto stojí za to kontrolovat i kontrolora. Dvě třetiny dne padly na diagramy, které byly v pořádku — a tentýž průchod opravil ty, které v pořádku nebyly, protože chybná hlášení ležela vedle skutečných.

Nerozhodlo to pečlivější čtení kódu, ale změření měření proti něčemu nezávislému, co kreslí skutečný text — a to trvalo deset minut. Kontrola teď počítá velikost jako 13 * 72 / 96 a od té doby tak běží.

Reklama