Sepete Ekleme Onayı: Kaybolan Bildirim, Kalan Durum
Sepete ürün eklendiğinde hiçbir şey göstermeyen site neredeyse kalmadı. Asıl soru onayın olup olmadığı değil, üç saniye sonra ekranda ne kaldığı. Kullanıcının aynı ürünü ikinci kez eklemesiyle sepete gidip kontrol etmesi arasındaki fark, çoğu zaman o üç saniyede belirleniyor.
Toast kaybolduktan sonra geriye ne kalıyor
Köşede açılan bildirim işini yapıyor gibi görünür: iki satır metin, bir ikon, sonra yok. Ama kullanıcı o iki satırı okumak zorunda olduğunu bilmiyor. Ürün sayfasında kalıp bir sonraki renge bakarken, sayfayı kaydırırken, telefonda başparmağını oynatırken bildirim süresini doldurur ve geriye hiçbir iz kalmaz.
Geçici bildirimi, butonun üstünde kalan durum değişikliğinden daha zayıf bulurum. Buton "Sepete eklendi" yazıp öyle kalıyorsa, kullanıcı iki dakika sonra aynı karara geri döndüğünde cevap hâlâ orada duruyor; bildirimi kaçırmış olması bir şeyi değiştirmiyor. Rozetteki sayı da aynı kategoriden: silinmiyor, sayfa değişse bile taşınıyor.
Butonu tamamen devre dışı bırakmak bunun yerine geçmez. İki adet almak isteyen kullanıcıyı durdurmuş olursunuz ve kimse neden durduğunu anlamaz. Butonun ikinci işi varsa söylemesi yeter: "Bir tane daha ekle". Bu, istek sunucuya giderken butonu kısacık kilitlemekle aynı şey değil; ikincisi gerekli.
Her geri bildirim başarıyı varsayıyor
Rozet, açılır onay, buton metni, animasyon: hepsi bir şeyin olduğunu bildirir. Hiçbiri olmadığında ne göstereceğini söylemez.
Sepete ekleme tarayıcıda genelde iyimser çalışır. Rozet sunucu cevabını beklemeden artar, çünkü beklemek yavaş görünür. Stok o arada tükendiyse, oturum düştüyse ya da seçilen varyant başka bir depodan geliyorsa sunucu isteği reddeder. Ekranda sepette bir ürün var, veritabanında yok. Kullanıcı bunu ödeme adımında, yani vazgeçmesinin en pahalı olduğu yerde öğrenir.
İki makul yol var, ikisi de sessiz iyimserlikten iyi: isteği bekleyip butonun üstünde kısa bir yüklenme durumu göstermek, ya da iyimser artışı başarısızlıkta görünür biçimde geri almak. Sessiz geri alma en kötüsü, çünkü rozet bir azalır ve kimse nedenini bilmez. Üç yüz milisaniyelik bekleme, yanlış bir onaydan ucuza gelir.
Aynı yerde çift tıklama sorunu duruyor. Butona iki kez basıldığında iki istek gidiyorsa sepette iki adet olur, bunun suçu kullanıcıda değil. İstek sürerken butonu kilitlemek yarısını çözer; diğer yarısı sunucuda, aynı anahtarla gelen ikinci isteği yeni satır açmak yerine mevcut satıra yazmakta.
Rozetteki sayı ekran okuyucuya ulaşmıyor
Rozet 1'den 2'ye çıktığında olan şey, DOM'da bir metin değişikliği. Ekran okuyucu sayfayı bir kez okur; odak başka yerdeyken bu değişikliği kendiliğinden duyurmaz. Görsel onay kusursuz çalışırken, görmeyen kullanıcı tarafında hiçbir şey olmamıştır.
Gereken küçük bir ek: sayfada bir role="status" alanı bulunsun, ekleme sonucu kısa bir cümleyle oraya yazılsın ("Mavi tişört, M beden, sepete eklendi"). Odak butonun üzerindeyken buton metninin değişmesi bazı okuyucularda duyurulur, bazılarında duyurulmaz; buna güvenmek yerine duyuruyu açıkça yapmak daha sağlam. Hata mesajı da aynı alandan geçmeli, yoksa başarısızlık yalnızca renkle anlatılmış olur.
Animasyonun söylediği ve söylemediği
Ürünün sepete uçması hoş görünür ve bir işi de var: işlemin yönünü gösterir, gözü sepet ikonuna taşır. Ne eklendiğini söylemez. Yanlış varyantı seçmiş kullanıcı animasyonu sonuna kadar izler ve yine yanlış ürünle devam eder.
Yani animasyon metinli onayın yerine değil yanına konur. Süresi iki yüz, üç yüz milisaniyeyi aştığında kullanıcı ikinci tıklamayı beklemeye başlar ve hız algısı tersine döner. prefers-reduced-motion açık olan kullanıcıda animasyon hiç oynamamalı, ama onay yine görünmeli; bu ikisini aynı koşula bağlamak sık rastlanan bir hata.
Hangi sayıyı ölçmek işe yarıyor
İki bildirim tasarımını A/B testiyle karşılaştırmak kulağa doğru gelir, pratikte çoğu sitede sonuçsuz kalır. Sepete ekleme onayı huninin başına yakın durur ve nihai satışa etkisi küçüktür; küçük etkiyi gürültüden ayırmak için her kolda on binlerce oturum gerekir. O trafik yoksa test iki hafta sonra "anlamlı fark yok" der ve geriye bilgi kalmaz.
Daha hızlı dönen sayılar var, çünkü satın almadan çok daha sık gerçekleşiyorlar:
- Aynı ürünün otuz saniye içinde ikinci kez eklenme oranı. Yükseliyorsa onay görülmüyor.
- Sepet sayfasında adet düşürme ve ürün çıkarma oranı. Yanlışlıkla eklemenin doğrudan izi.
- Ekleme isteğinin sunucudaki hata oranı, ve bu hataların kullanıcıya ulaşıp ulaşmadığı.
Üçüncüsü genelde hiç ölçülmeyen yer. Bildirim tasarımını tartışmaya oturmadan önce ekleme uç noktasının hata oranına bakmak daha ucuz: oran sıfıra yakınsa tasarım konuşulabilir, değilse konuşulan şey aslında yanlış bir onayın nasıl görüneceğidir.