Rozet badge
bilinen diğer adları badge · sayaç rozeti · bildirim noktası
Böyle diyorsan: "zildeki kırmızı sayı" · "okunmamış işareti" → bunun adı rozet.
Bir öğenin köşesindeki sayı/durum göstergesi.
Rozet, bir öğenin köşesine iliştirilen küçük sayı ya da durum işaretidir: zildeki okunmamış adedi, sepetteki ürün sayısı, sekmedeki yeni-içerik noktası. Teknik olarak karşılığı YOKTUR — ne HTML'de bir rozet elementi ne de ARIA kalıp listesinde bir rozet deseni bulunur. Bu yüzden rozet her zaman İKİ parçadır: taşıyıcı öğe ve o öğenin erişilebilir adı. Sayıyı yalnız göze göstermek, ekran okuyucu kullanan biri için rozetin hiç olmaması demektir. İkinci kural da güvenle ilgili: okunduğunda düşmeyen rozet, kullanıcının bir daha rozete bakmamasına yol açar.
Kapsam: Bu madde sayı ya da durum taşıyan köşe rozetini kapsar. Kategori ve filtre için kullanılan hap biçimli öğe Etiket maddesindedir — ikisi görsel olarak benzer ama işleri tamamen farklıdır.
Yapıştır, sonuna belirtiyi ekle — ajana klasik hata kalıplarını önden verir.
- 1Taşıyıcı ikon
zil/zarf/sepetRozetin üstünde durduğu öğe; rozet ikonun sağ üst köşesine çıpalanır.
- 2Sayı
okunmamış adediGerçek zamanlı sayı; okununca DÜŞMELİ — düşmeyen rozet güveni bitirir.
- 3Taşma kuralı
9+ / 99+Sayı büyüyünce genişleyip ikonu ezmez; eşikten sonra kısaltılır.
- 4Sıfır durumu
rozet YOKSıfırda rozet tamamen kaybolur — '0' rozetli zil, hiç rozetsiz zilden kötüdür.
- ASıfır
rozet YOKSayı sıfırsa rozet tamamen kaybolur. '0' yazan bir rozet, hiç rozetsiz hâlden daha kötüdür: göze yeni bir şey varmış gibi görünür.
- BSayılı
1–9Normal hâl. Sayı gerçek zamanlıdır ve okundukça düşer; düşmeyen sayı rozetin güvenini bitirir.
- CTaşma
9+ / 99+Eşik aşılınca sayı kısaltılır. Amaç rozetin genişleyip taşıyıcı ikonu ezmemesi; üç haneli rozet yumurtaya döner.
- DNoktalı
sayısız işaretSayı önemli değilse yalnız bir nokta konur: 'yeni bir şey var' der, kaç tane olduğunu söylemez. Sekmelerde sık kullanılır.
- ECanlı güncelleme
role="status"Sayı arka planda değişiyorsa duyurulmalı. Ama her saniye değişen bir sayacı duyurmak kullanıcıyı boğar — eşik koy.
| CSS | position:absolute sağ-üst çıpa | standart konum |
| ARIA | aria-label='Bildirimler, 3 okunmamış' | bileşik ad |
| ARIA | role="status" | canlı değişen sayıyı duyurur |
| UX | sıfırda gizle + 9+ kısalt | güven + taşma |
- Sayıyı taşıyıcının erişilebilir adına KAT: 'Bildirimler, 3 okunmamış'. Rozeti ayrı bir görsel olarak bırakırsan ekran okuyucu yalnızca 'Bildirimler' der ve rozet hiç var olmamış olur.
- Durumu yalnız renkle anlatma (WCAG 1.4.1). Kırmızı bir rozetin 'hata' mı 'okunmamış' mı olduğu renkten anlamayan biri için belirsizdir; sayı ya da metin ekle.
- Rozet bir dokunma hedefi DEĞİLDİR; tıklanabilir olan taşıyıcı öğedir. Rozeti kendisi tıklanabilir yaparsan en az 24px hedef kuralını karşılamak zorundasın.
- Canlı duyuruyu ölçülü kullan: role="status" kibar (sırasını bekler), role="alert" araya girer. Okunmamış sayacı için kibar olan doğrudur.
Etiketten (chip) farkı. Rozet BİLDİRİR, etiket SINIFLANDIRIR. Rozet bir öğenin köşesine iliştirilir ve o öğe hakkında değişken bir bilgi taşır (kaç tane, yeni var mı); etiket ise içeriğin kendisine ait sabit bir niteliktir (kategori, filtre). Pratik test: tıklanınca ne olacağını soruyorsan etiket, hiç tıklanmıyorsa ve sayı gösteriyorsa rozet.
Kısa bildirimden farkı. Rozet KALICI bir durumdur, kısa bildirim GEÇİCİ bir olaydır. 'Üç okunmamış mesajın var' rozettir çünkü sen okuyana kadar doğru kalır; 'Mesaj gönderildi' kısa bildirimdir çünkü olay bitmiştir. Kalıcı durumu toast ile anlatırsan kullanıcı kaçırdığında bir daha göremez.
- birincilW3C — ARIA Authoring Practices, kalıp listesi ↗
Listede rozet kalıbı YOKTUR — aramak ve bulamamak da bir bilgidir: davranışı standart vermez, sen kurarsın.
- standartMDN — role="status" ↗
Canlı değişen sayının kibar duyurulma yolu.
- standartMDN — aria-label ↗
Sayıyı taşıyıcının adına katmanın yolu.
- standartW3C — WCAG 2.2, Use of Color (1.4.1) ↗
Rozetin anlamını yalnız renge yükleme yasağı.
Etiket chip / tagKısa bildirim toast / snackbarUyarı şeridi alert / banner