Arama çubuğu search bar
bilinen diğer adları search bar · arama kutusu · aranabilir seçim (combobox)
Böyle diyorsan: "büyüteçli kutu" · "arama yeri" → bunun adı arama çubuğu.
Büyüteç ikonlu arama girişi; çoğu zaman yazarken öneri gösterir.
Arama çubuğu bir metin kutusudur ama sözleşmesi farklıdır: kullanıcı buraya bir SORU yazar ve karşılığında sonuç bekler. Bu beklenti iki teknik sonuç doğurur. Birincisi zamanlama — yazdıkça öneri gösteren bir arama, her tuşta sunucuya gitmez; kısa bir bekleme koyar ve önceki isteği iptal eder, yoksa geç dönen eski bir cevap yeni cevabın üstüne biner ve kullanıcı yanlış sonuç görür. İkincisi klavye — öneriler listesinde ok tuşlarıyla gezilebilmeli ve seçilen öneri okunabilmelidir; bu, aranabilir seçim (combobox) kalıbının işidir ve doğru yapılması ciddi iştir.
Kapsam: Bu madde serbest metinle arama yapan alanı kapsar. Bilinen bir listeden değer seçtiren aranabilir kutu, işlev olarak Seçim Kutusu ailesine daha yakındır; ikisi aynı görünse de biri sonuç getirir, diğeri değer belirler.
Yapıştır, sonuna belirtiyi ekle — ajana klasik hata kalıplarını önden verir.
- 1Girdi + ikon
type=searchBüyüteçli kutu; type=search mobilde 'ara' tuşunu getirir, temizleme ✕'i kazandırır.
- 2Öneri paneli
role=listboxYazdıkça beliren ilk 5 sonuç; her istek DEBOUNCE'lanır (300ms) — her tuşta sunucuya koşulmaz.
- 3Eşleşme vurgusu
<b>kah</b>veÖnerinin içinde aranan parçanın kalın gösterimi — kullanıcı neden önerildiğini görür.
- 4Boş sonuç
'bulunamadı' + öneriHiç sonuç yoksa panel sessizce kaybolmaz; 'X için sonuç yok' + yakın öneri gösterir.
- ABoş
type="search"Yer tutucu ne aranabileceğine dair gerçek bir örnek versin ('ürün, marka ya da kategori'). type=search mobilde 'Ara' tuşunu getirir ve temizleme ✕'ini kazandırır.
- BYazılıyor
debounceÖneriler geliyor. Her tuşta istek atma; kısa bir bekleme koy ve eskisini iptal et — yoksa geç dönen eski cevap yenisinin üstüne biner.
- CÖneriler açık
combobox + aria-activedescendantListe görünür. Ok tuşlarıyla gezilir, Enter seçer, Escape kapatır; odak girdide KALIR, listeye atlamaz.
- DSonuç yok
boş durumEn çok ihmal edilen hâl. 'Sonuç bulunamadı' yetmez: yazım önerisi, filtre temizleme ya da yakın sonuç sun.
- EYükleniyor
aria-busyİstek uçuşta. Göstergesiz bekleme kullanıcıya arayüzün donduğunu düşündürür; ama her tuşta spinner çakmak da rahatsız eder.
| HTML | input type=search | native ara/temizle |
| ARIA | combobox + aria-activedescendant | klavye gezinme |
| JS | debounce + AbortController | performans + yarış önleme |
| ARIA | role="search" (yer imi) | sayfadaki arama bölgesini işaretler |
- Arama alanını role="search" yer imiyle işaretle: ekran okuyucu kullanıcısı sayfadaki aramaya doğrudan atlayabilir.
- Etiket görsel olarak gizlense bile var olmalı. Yalnız büyüteç ikonu bir ad değildir; görsel olarak gizli bir <label> ya da aria-label kullan.
- Öneri listesinde odak girdide kalmalı ve seçili öneri aria-activedescendant ile bildirilmeli; odağı listeye taşırsan kullanıcı yazmaya devam edemez.
- Sonuç sayısını duyur (role="status"): 'Sonuç bulunamadı' ya da '12 sonuç' bilgisi yalnız gözle görülüyorsa ekran okuyucu kullanıcısı hiçbir şey olmadığını sanar.
- Yazarken sonuçların kendiliğinden değişmesi bağlam değişikliği sayılabilir (WCAG 3.2.2); değişimi sayfayı yeniden yükleyerek değil, aynı yerde ve duyurarak yap.
Seçim kutusundan farkı. Arama SONUÇ getirir, seçim kutusu DEĞER belirler. Aramada ne yazacağını sen bilirsin ve karşılığında bir liste gelir; seçim kutusunda seçenekler zaten bellidir ve sen birini işaretlersin. Aranabilir seçim ikisinin arasında durur: göründüğü gibi arama gibi çalışır ama sonucu bir değerdir ve formla gider — hangisini yaptığını bilmek, Enter'a basınca ne olacağını belirler.
Metin kutusundan farkı. Arama çubuğu bir metin kutusudur ama sözleşmesi farklıdır: metin kutusunda yazdığın şey KAYDEDİLİR, arama çubuğunda yazdığın şey SORULUR. Bu yüzden aramada Enter sonuç getirir, temizleme ✕'i beklenir ve içerik saklanmaz. Aynı görünüşü paylaşmaları ikisini aynı yapmaz.
- standartMDN — input type="search" ↗
Yerleşik davranış: temizleme ✕'i ve mobil 'Ara' tuşu.
- standartMDN — role="search" ↗
Arama bölgesini yer imi olarak işaretlemenin yolu.
- birincilW3C — ARIA APG, Combobox kalıbı ↗
Öneri listesi yazacaksan uyman gereken resmi kalıp: klavye, odak, aria bağları.
- standartW3C — WCAG 2.2, On Input (3.2.2) ↗
Yazarken kendiliğinden değişen içeriğin bağlam değişikliği sayılma sınırı.
Seçim kutusu selectMetin kutusu inputBoş durum empty stateİskelet yükleme skeleton