İyi bir tarayıcı hatası bildirme

Tarayıcı tedarikçilerine, tarayıcılarında karşılaştığınız sorunları bildirmek, web platformunu daha iyi hale getirmenin ayrılmaz bir parçasıdır!

İyi bir hata bildirmek zor değildir ancak biraz çalışma gerektirir. Amaç bozuk olanı bulmayı, temel nedene ulaşmayı ve en önemlisi de sorunu düzeltmenin yolunu bulmayı kolaylaştırmaktır. Hızlı ilerleme kaydeden hatalar, beklenen davranışla kolayca yeniden oluşturulabilir.

Hata olduğunu doğrulayın

İlk adım, "doğru" davranışın ne olması gerektiğini belirlemektir.

Doğru davranış nedir?

MDN'deki ilgili API dokümanlarını kontrol edin veya ilgili özellikleri bulmaya çalışın. Bu bilgiler, hangi API'nin gerçekten bozuk olduğuna, nerede bozuk olduğuna ve beklenen davranışın ne olduğuna karar vermenize yardımcı olabilir.

Farklı bir tarayıcıda çalışır mı?

Tarayıcılar arasında farklılık gösteren davranış, genellikle birlikte çalışabilirlik sorunu olarak daha çok önceliklendirilir; özellikle de hatayı içeren tarayıcı diğerlerinden farklıysa. Muhtemelen BrowserStack gibi bir araç kullanarak Chrome, Firefox, Safari ve Edge'in en yeni sürümlerinde test etmeyi deneyin.

Mümkünse sayfanın, kullanıcı aracısı yoklaması nedeniyle bilinçli bir şekilde farklı davranmadığından emin olun. Chrome Geliştirici Araçları'nda, User-Agent dizesini başka bir tarayıcı olarak ayarlamayı deneyin.

Yakın zamanda yayınladığınız bir videoda bozuldu mu?

Bu, geçmişte beklendiği gibi çalışıyordu, ancak yakın zamanda yayınlanan bir tarayıcı sürümünde bozuk muydu? Bu tür "regresyonlar", özellikle çalıştığı bir sürüm numarası ve başarısız olduğu bir sürüm sağladıysanız çok daha hızlı bir şekilde uygulanabilir. BrowserStack gibi araçlar, eski tarayıcı sürümlerini kontrol etmeyi kolaylaştırabilir ve bisect-builds aracı (Chromium için) değişikliği çok etkili bir şekilde aramanızı sağlar.

Sorun bir regresyonsa ve yeniden oluşturulabiliyorsa kök neden genellikle hızlı bir şekilde bulunabilir ve giderilebilir.

Başkaları da aynı sorunla karşılaşıyor mu?

Sorun yaşıyorsanız diğer geliştiricilerin de aynı sorunla karşılaşma olasılığı yüksektir. İlk olarak, hatayı Stack Overflow'da aramayı deneyin. Bu yöntem, soyut bir sorunu belirli bir bozuk API’ye dönüştürmenize ve hata düzeltilene kadar kısa vadeli bir geçici çözüm bulmanıza yardımcı olabilir.

Daha önce bildirildi mi?

Hatanın ne olduğuna dair bir fikir edindikten sonra, tarayıcı hatası veritabanında arama yaparak hatanın önceden bildirilip bildirilmediğini kontrol edebilirsiniz.

Sorunu açıklayan mevcut bir hata bulursanız hataya yıldız ekleyerek, favorilere ekleyerek veya yorum yaparak desteğinizi ekleyin. Birçok sitede kendinizi CC listesine ekleyebilir ve hata değiştiğinde güncelleme alabilirsiniz.

Hatayla ilgili yorum yapmaya karar verirseniz hatanın web sitenizi nasıl etkilediğiyle ilgili bilgileri ekleyin. Hata izleyiciler genellikle her yorum için e-posta gönderdiğinden "+1" tarzı yorumlar eklemekten kaçının.

Hatayı bildirin

Hata daha önce bildirilmediyse tarayıcının sağlayıcısına bunu bildirmenin zamanı gelmiştir.

Küçültülmüş test durumu oluşturma

Mozilla, küçültülmüş test durumu oluşturma ile ilgili harika bir makale hazırlamıştır. Uzun bir hikayeyi kısa anlatmak gerekirse, sorunun açıklaması iyi bir başlangıç noktası olsa da hiçbir şey, hata içinde sorunu gösteren bağlantılı bir demo sağlamanın yerini tutmaz. Hızlı ilerleme olasılığını en üst düzeye çıkarmak için örnek, sorunu göstermek için gereken mümkün olan en az düzeyde kodu içermelidir. Minimum bir kod örneği, hatanızın düzeltilme olasılığını artırmak için yapabileceğiniz en iyi şeydir.

Test durumunu en aza indirmek için birkaç ipucunu burada bulabilirsiniz:

  • Web sayfasını indirin, <base href="https://original.url"> ekleyin ve hatanın yerel olarak mevcut olduğunu doğrulayın. URL, HTTPS kullanıyorsa bunun için canlı bir HTTPS sunucusu gerekebilir.
  • Yerel dosyaları, olabildiğince çok sayıda tarayıcının en yeni derlemelerinde test edin.
  • Her şeyi 1 dosyada toplamayı deneyin.
  • Hata ortadan kalkana kadar kodu (gereksiz olduğunu bildiğiniz şeylerden başlayarak) kaldırın.
  • Çalışmanızı kaydedebilmek ve yanlış giden şeyleri geri alabilmek için sürüm denetimini kullanın.

Küçültülmüş test durumu barındırma

Küçültülmüş test durumunuzu barındırmak için iyi bir yer arıyorsanız, kullanabileceğiniz birkaç iyi yer vardır:

Bu sitelerden bazılarının bir iframe'de içerik görüntülediğine ve bunun da özelliklerin veya hataların farklı davranmasına neden olabileceğini unutmayın.

Sorununuzu bildirme

Küçültülmüş test durumunuzu edindikten sonra hatayı bildirmeye hazırsınız demektir. Doğru hata izleme sitesine gidin ve yeni bir sorun oluşturun.

Net bir açıklama ve sorunun yeniden üretilmesi için gerekli adımları belirtin

Öncelikle, mühendislerin sorunun ne olduğunu hızlı bir şekilde anlayabilmesi ve sorunun önceliklendirilmesine yardımcı olmak için net bir açıklama yazın.

When installing a PWA using the `beforeinstallprompt.prompt()`, the
`appinstalled` event fires before the call to `prompt()` resolves.

Ardından, sorunun yeniden üretilmesi için gereken ayrıntılı adımları sağlayın. Küçültülmüş test durumunuz burada devreye girer.

What steps will reproduce the problem?
1. Go to https://basic-pwa.glitch.me/, open DevTools and look at the
   console tab.
2. Click the Install button in the page, you might need to interact with
   the page a bit before it becomes enabled.
3. Click Install on the browser modal install confirmation.

Son olarak, beklenen ve gerçek sonucu açıklayın.

What is the expected result? In the console:
0. INSTALL: Available (logged when `beforeinstallprompt` event fired)
1. INSTALL_PROMPT_RESPONSE: {outcome: "accepted", platform: "web"}
   (logged when beforeinstallprompt.prompt()` resolves)
2. INSTALL: Success (logged when `appinstalled` event fired)

What is the actual result? In the console:
0. INSTALL: Available (logged when `beforeinstallprompt` event fired)
1. INSTALL: Success (logged when `appinstalled` event fired)
2. INSTALL_PROMPT_RESPONSE: {outcome: "accepted", platform: "web"}
   (logged when beforeinstallprompt.prompt()` resolves)

Daha fazla bilgi için MDN'deki Hata raporu yazma yönergelerine göz atın.

Bonus: Sorunun ekran görüntüsünü veya ekran video kaydını ekleyin

Zorunlu olmamakla birlikte, bazı durumlarda sorunun ekran görüntüsünü veya ekran video kaydını eklemek faydalı olabilir. Bu, özellikle hataların yeniden oluşturulması için garip adımlar gerektirebilecek durumlarda yararlı olur. Ekran video kaydında veya ekran görüntüsünde neler olduğunu görebilmek sıkça yardımcı olabilir.

Ortamla ilgili ayrıntıları ekleyin

Bazı hatalar yalnızca belirli işletim sistemlerinde veya yalnızca belirli ekran türlerinde (örneğin, düşük dpi ya da yüksek dpi) yeniden oluşturulabilir. Kullandığınız tüm test ortamlarının ayrıntılarını eklediğinizden emin olun.

Hatayı gönder

Son olarak hatayı gönderin. Sonra, hataya verilecek yanıtlar için e-postanızı düzenli olarak takip etmeyi unutmayın. Genellikle araştırma sırasında ve hatayı düzeltirken mühendisler başka soruları olursa veya sorunu yeniden üretmekte zorluk çekerse size ulaşabilirler.