Contact met ondersteuning

Wij antwoorden per e-mail, meestal binnen twee dagen.

Google reCAPTCHA controleert deze inzending op misbruik; daarbij worden gegevens naar Google gestuurd. Het script laadt pas wanneer dit formulier wordt geopend.

← Alle berichten

De bijschriftcontrole mat punten, geen pixels

Over de inhoud en de controle ervan

In dit artikel

Een controle die op 27 augustus geschreven werd, meldde 196 diagrambijschriften als te breed voor het plaatje waarin ze staan. Ze doorwerken kostte een dag. 103 van de 196 bleken een artefact van de controle zelf, en de controle is in dezelfde week hersteld.

bijschriften gemeld als te breed voor hun diagram zoals eerst gemeld 196 meting en entiteiten hersteld 93 geometrie verplaatst 38 randregel hersteld 3 vier bijschriften ingekort 0 5.093 bijschriften gemeten over 77 berichten in elf talen 103 van de 196 waren nooit te breed — de controle was dat

Punten zijn geen pixels

De controle meet een bijschrift met GD tegen een echt lettertypebestand:

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

13 is de lettergrootte uit het stijlblad, in pixels. imagettfbbox() neemt zijn grootte in punten. Er werd 13pt gemeten, en dat is 17,3px, en elk bijschrift kwam er 96/72 — een derde — te breed uit.

De manier om het zeker te weten, was iets te vragen dat werkelijk tekst tekent. Chromium zonder venster kan het echte diagram laden en voor elk bijschrift getComputedTextLength() melden. Bij 13 verschilden de twee een derde. Bij 13 * 72 / 96, dat is 9,75, komen ze op een halve procent na overeen: 219 tegen 219 pixels bij één bijschrift, 561 tegen 559 bij een langer.

Het lettertype klopte al die tijd

De controle meet tegen DejaVu Sans, en het commentaar erboven bood daarvoor excuses aan: DejaVu is breder dan wat de meeste lezers zien, dus de drempel stond op 92 procent om ruimte te laten.

Gemeten blijkt de keuze precies goed, maar om een andere reden dan het commentaar gaf. Van de lettertypen die de stapel van deze site werkelijk kan bereiken, is DejaVu het breedst. Dezelfde zin: DejaVu 219 pixels, Liberation 194, Cantarell 193, FreeSans 188. Een lezer op Windows of een Mac krijgt meer ruimte, nooit minder. De meting is niet pessimistisch, ze is het slechtste geval, en dat is wat een controle hoort te meten.

Wat er na het rekenwerk overbleef

93 meldingen overleefden de herstelde meting. Daarna bleken er 33 van een regel te zijn in plaats van een fout: de controle hield een kussen van tien eenheden vanaf de rand van het plaatje en behandelde dat als een harde grens, dus telde een jaartal dat drie eenheden van de rand stond als afgesneden. Er was niets afgesneden. De grens is nu de rand zelf, en de vraag hoe krap iets zit hoort bij de drempel van 95 procent.

Wat overbleef, was echt: bijschriften die onder staven doorliepen, kolommen te smal voor een Russische zin, een onderschrift dat over zijn buurman lag. Die zijn hersteld door geometrie te verplaatsen, en dat is goedkoop — de geometrie is in alle elf taalregels gelijk, dus één letterlijke vervanging herstelt er elf. Vier bijschriften waren in één taal werkelijk langer dan het hele plaatje, en die zijn ingekort.

Wat in het algemeen geldt

Een controle die één kant op afwijkt, levert werk op, en daarom is de controleur het controleren waard. Twee derde van een dag ging op aan diagrammen die in orde waren — en dezelfde ronde herstelde die welke dat niet waren, want de foute meldingen stonden naast de echte.

Wat de doorslag gaf, was niet de code zorgvuldiger lezen. Het was de meting tegen iets onafhankelijks houden dat echte tekst tekent — en dat kostte tien minuten. De controle zet de grootte nu op 13 * 72 / 96 en draait sindsdien op die grondslag.

Advertentie