Sürgü slider
bilinen diğer adları slider · range · kaydırıcı
Böyle diyorsan: "kaydırarak değer seçme çubuğu" · "fiyat aralığı çubuğu" → bunun adı sürgü.
Bir aralıktan kaydırarak değer seçtiren çubuk.
Sürgü, bir aralıktan kaydırarak değer seçtirir. Güçlü olduğu yer kesinlik değil KEŞİFTİR: kullanıcı fiyat aralığını gezerken sonuçların nasıl değiştiğini görür. Zayıf olduğu yer de aynı sebeptendir — parmakla ya da fareyle tam bir değeri tutturmak zordur, hele aralık genişse. Bu yüzden kesin değer isteyen yerlerde sürgü tek başına kullanılmaz; yanında yazılabilir bir alan bulunur ve ikisi birbirini günceller. İkinci kural görünürlükle ilgilidir: sürüklerken değer anlık görünmelidir, bırakınca değil; yoksa kullanıcı körlemesine gezer.
Kapsam: Bu madde değer SEÇTİREN kontrolü kapsar. Dolu bir çubukla ilerleme gösteren ama dokunulmayan öğe İlerleme Çubuğu maddesindedir; ikisi görsel olarak benzer, biri girdi diğeri çıktıdır.
Yapıştır, sonuna belirtiyi ekle — ajana klasik hata kalıplarını önden verir.
- 1Ray
min → max hattıDeğer uzayı; dolu kısım seçimi gösterir.
- 2Tutamaç(lar)
thumbSürüklenen daire; çift uçlu aralıkta İKİ tutamaç olur ve birbirini GEÇEMEMELİDİR.
- 3Değer göstergesi
canlı etiketSürüklerken değer ANLIK görünmeli — bırakınca değil; yoksa kullanıcı körlemesine gezer.
- 4Uç etiketleri
₺0 — ₺10.000Aralığın sınırları; adım (step) veriye uygun seçilir (fiyatta ₺100, yaşta 1).
- AVarsayılan
valueBaşlangıç değeri. Makul bir yerde başlamalı: fiyat filtresinin sıfırdan başlaması kullanıcıya bilgi vermez, ortalama aralık verir.
- BSürükleniyor
input olayıDeğer ANLIK görünmeli. Ağır işi (sunucu sorgusu) her piksel değişiminde değil, kısa bir beklemeyle tetikle.
- CKlavye odaklı
ok / PageUp / HomeOklar bir adım, PageUp-PageDown büyük adım, Home-End uçlara götürür. Bu davranış yerleşik range'de bedava gelir.
- DÇift uçlu
iki tutamaçAralık seçimi. Tutamaçlar birbirini GEÇEMEMELİ ve hangisinin tutulduğu görünmeli; yerleşik input bunu tek başına yapmaz, iki kontrol kurulur.
- EDevre dışı
disabledSürüklenemez. Sebebi görünür olmalı, yoksa kullanıcı ekranın donduğunu sanar.
| HTML | input type=range + min/max/step | native temel |
| ARIA | aria-valuenow/-min/-max | okuyucu değeri bilir |
| ARIA | aria-valuetext="₺2.500" | ham sayı yerine okunur değer |
| UX | canlı değer + debounce | görünürlük + performans |
- Ekran okuyucuya ham sayı değil OKUNUR değer ver: aria-valuetext ile '2500' yerine '₺2.500' duyur. Yalnız valuenow bırakırsan kullanıcı neyin 2500'ü olduğunu bilemez.
- Klavye davranışını koru: ok tuşları adım adım, PageUp/PageDown büyük adım, Home/End uçlar. Yerleşik input type="range" bunu hazır verir; taklit edersen elle yazmak zorundasın.
- Tutamacın dokunma hedefi en az 24px olmalı (WCAG 2.5.8); görsel olarak küçük çizilse bile tutulabilir alan büyütülür.
- Kesin değer gerekiyorsa sürgüyü tek başına bırakma: yanına yazılabilir bir alan koy. Sürgü keşif içindir, kesinlik için değil.
- Adımı (step) veriye göre seç: fiyatta ₺100, yaşta 1. Çok ince adım kullanıcıyı hedefi tutturamamaya mahkûm eder.
İlerleme çubuğundan farkı. Sürgü GİRDİdir, ilerleme çubuğu ÇIKTIdır. İkisi de dolu bir çubuk gösterir ama birine dokunulur ve değeri sen belirlersin, diğerine dokunulmaz ve değeri sistem bildirir. Ayırt etmenin en hızlı yolu tutamaçtır: tutamaç varsa sürgüdür, yoksa ilerleme. Dokunulmayan bir çubuğa tutamaç çizmek kullanıcıyı boşuna sürüklemeye davet eder.
Metin kutusundan farkı. Sürgü hızlı ama kabadır, metin kutusu yavaş ama kesindir. '₺2.847' yazmak isteyen kullanıcı sürgüyle bunu tutturamaz; buna karşılık 'ne kadar pahalı seçenekler var' diye gezinen kullanıcı için sürgü kutudan iyidir. Doğru cevap çoğu zaman ikisi birden: sürgü gezmek, kutu kesinleştirmek için.
- birincilW3C — ARIA APG, Slider kalıbı ↗
Resmi kalıp: klavye davranışı ve değer bildirimi (valuenow/valuetext) burada tanımlı.
- standartMDN — input type="range" ↗
Yerleşik davranış, min/max/step ve tarayıcı farkları.
- standartW3C — WCAG 2.2, Target Size (Minimum) (2.5.8) ↗
Tutamacın dokunma hedefi şartı.
İlerleme çubuğu progress barMetin kutusu inputForm alanı form field