Destekle iletişim

E-postayla, genellikle iki gün içinde yanıt veririz.

Google reCAPTCHA, kötüye kullanıma karşı bu gönderimi denetler; bu sırada veriler Google'a aktarılır. Komut dosyası yalnızca bu form açıldığında yüklenir.

← Tüm yazılar

Etiket denetimi piksel değil punto ölçüyordu

27 Ağustos'ta yazılan bir denetim, 196 diyagram etiketini içinde durdukları görsel için fazla geniş olarak bildirdi. Hepsini tek tek ele almak bir gün sürdü. 196 etiketin 103'ünün denetimin kendisinden kaynaklanan bir yanılgı olduğu ortaya çıktı ve denetim aynı hafta düzeltildi.

diyagramı için fazla geniş bildirilen etiketler ilk bildirilen 196 ölçüm ve HTML varlıkları düzeltildi 93 geometri kaydırıldı 38 kenar kuralı düzeltildi 3 dört etiket kısaltıldı 0 77 yazıda, on bir dilde 5.093 etiket ölçüldü 196'nın 103'ü hiç geniş değildi — geniş ölçen denetimdi

Punto piksel değildir

Denetim, bir etiketi GD ile gerçek bir yazı tipi dosyası üzerinden ölçüyor:

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

Buradaki 13, stil sayfasından alınan piksel cinsinden yazı boyutu. imagettfbbox() için ise boyut birimi punto. Yani denetim 13pt ölçüyordu, bu da 17,3px eder; her etiket 96/72 oranında — üçte bir — fazla geniş çıkıyordu.

Emin olmanın yolu, metni gerçekten çizen bir şeye sormaktı. Headless Chromium gerçek diyagramı yükleyip her etiket için getComputedTextLength() değerini bildirebilir. 13 boyutunda ikisi arasında üçte birlik fark vardı. 13 * 72 / 96, yani 9,75 değerinde ise ikisi yüzde yarımdan az bir farkla uyuşuyor: bir etiket için 219 piksele karşı 219 piksel, daha uzun bir etiket için 561 piksele karşı 559 piksel.

Yazı tipi baştan beri doğruydu

Denetim DejaVu Sans'a göre ölçüyor ve üstündeki yorum bunun için özür diliyordu: DejaVu çoğu okurun gördüğü yazı tiplerinden daha geniş, bu yüzden pay bırakmak için eşik %92'ye ayarlanmıştı.

Ölçüldüğünde bu seçimin tam olarak doğru olduğu anlaşılıyor, ama yorumda yazandan farklı bir nedenle. Bu sitenin yazı tipi yığınının gerçekten ulaşabildiği yazı tipleri arasında en geniş olanı DejaVu. Aynı cümle: DejaVu 219 piksel, Liberation 194, Cantarell 193, FreeSans 188. Windows ya da Mac kullanan bir okur daha fazla yer bulur, asla daha az değil. Ölçüm karamsar değil, en kötü durum; bir denetimin ölçmesi gereken de tam olarak bu.

Hesaptan sonra geriye kalan

Düzeltilmiş ölçümden 93 bildirim sağ çıktı. Sonra bunların 33'ünün bir hata değil, bir kural olduğu anlaşıldı: denetim görselin kenarından on birimlik bir pay bırakıyor ve bunu kesin bir sınır sayıyordu; bu yüzden kenara üç birim uzaklıktaki bir yıl etiketi kırpılmış kabul ediliyordu. Hiçbir şey kırpılmamıştı. Artık sınır kenarın kendisi; ne kadar sıkışık olduğu sorusu ise %95 eşiğine ait.

Geriye kalanlar gerçekti: çubukların altına taşan etiketler, bir Rusça cümle için fazla dar sütunlar, komşusunun üstüne binen bir başlık. Bunlar geometri kaydırılarak düzeltildi ki bu ucuz bir iş — geometri on bir dil satırının hepsinde aynı, dolayısıyla tek bir birebir değiştirme on birini birden düzeltiyor. Dört etiket ise birer dilde gerçekten tüm görselden uzundu; onlar kısaltıldı.

Buradan çıkan ders

Tek bir yöne doğru yanılan bir denetim iş üretir; denetleyicinin de denetlenmeye değer olmasının nedeni bu. Bir günün üçte ikisi, sorunsuz olan diyagramlara gitti — ve aynı tur, sorunlu olanları da onardı, çünkü yanlış bildirimler gerçek olanların hemen yanında duruyordu.

Meseleyi çözen şey kodu daha dikkatli okumak olmadı. Ölçümü, gerçek metin çizen bağımsız bir şeyle karşılaştırarak ölçmek oldu — ve bu on dakika sürdü. Denetim artık boyut olarak 13 * 72 / 96 kullanıyor ve o günden beri bu esasla çalışıyor.

Reklam