Seçim kutusu select
bilinen diğer adları select · dropdown · açılır liste · combobox (aranabilir hâli)
Böyle diyorsan: "aşağı açılan seçenekli kutu" · "il seçme kutusu" → bunun adı seçim kutusu.
Listeden tek seçenek seçtiren açılır kutu.
Seçim kutusu, bir listeden tek değer seçtirir ve seçenekleri kapalı tutar. Bu maddenin en pahalı kararı şudur: yerleşik <select> çirkin bulunur ve sık sık div'lerle yeniden yazılır. Oysa yerleşik olan mobilde işletim sisteminin kendi seçicisini açar, klavyede bir harfe basınca o harfle başlayan seçeneğe atlar, ekran okuyucuyla çalışır ve sıfır bakım ister. Taklit edilen sürüm bunların hepsini elle yazmayı gerektirir; çoğu proje yarısını eksik yazar ve fark yalnızca klavye ya da ekran okuyucu kullanan birinde ortaya çıkar. Seçenek sayısı arttıkça (yaklaşık on üstü) kapalı liste yetmez, aranabilir hâline geçmek gerekir.
Kapsam: Bu madde listeden tek DEĞER seçimini kapsar. Az sayıda ve karşılaştırılacak seçenek varsa Seçenek Düğmesi doğrudur; eylem listeleyen açılır menü ise ayrı bir parçadır (Açılır Menü).
Yapıştır, sonuna belirtiyi ekle — ajana klasik hata kalıplarını önden verir.
- 1Etiket
<label>Alanın adı; select'e bağlı.
- 2Kapalı tetik
seçili değeri gösterirKutunun kapalı yüzü; 'Seçiniz' placeholder'ı SEÇİLEBİLİR bir değer olmamalı (disabled).
- 3Açık liste
<option> / listboxSeçenekler; 10'dan fazlaysa arama kutusu şarttır (combobox) — 81 ilde kaydırma işkencedir.
- 4Seçili işaret
✓ + vurguMevcut seçimin listede belli olması; klavyede harfe basınca o harfe atlama beklenir.
- AKapalı / boş
<option disabled selected>Henüz seçilmedi. 'Seçiniz' bir seçenek gibi durmamalı: disabled olmalı ki kullanıcı onu geçerli bir değer olarak seçemesin.
- BAçık
liste görünürSeçenekler listelenir. Mobilde yerleşik select işletim sisteminin kendi seçicisini açar — bu, taklit sürümlerin kaybettiği en büyük kazançtır.
- CSeçili
selectedKapalı yüz seçili değeri gösterir. Listede de işaretle belli olmalı; klavyede harfe basınca o harfe atlama beklentisi korunur.
- DÇoklu seçim
multipleYerleşik çoklu select kullanışsızdır (Ctrl ile tıklama bilinmez). Çoklu seçim gerekiyorsa onay kutusu listesi ya da çip tabanlı bir çözüm daha dürüsttür.
- EDevre dışı
disabledSeçim yapılamaz. Sebebi yazılmazsa kullanıcı arayüzün bozuk olduğunu düşünür — özellikle bağımlı alanlarda ('önce il seç').
| HTML | <select> + <option disabled> | native temel |
| HTML | <optgroup> | uzun listeyi başlıklara böler |
| ARIA | role=combobox + listbox/option | aranabilir desen |
| shadcn/ui | Combobox (Command) | hazır aranabilir seçim |
- Mümkünse yerleşik <select> kullan. Klavye gezinme, harfe atlama, mobil yerli seçici ve ekran okuyucu desteği bedava gelir; taklit ederken bunların hepsini yeniden yazman gerekir.
- 'Seçiniz' satırını disabled yap, yoksa geçerli bir değer olarak seçilebilir ve boş veri kaydedilir.
- Yaklaşık on seçenekten sonra arama şart. Seksen bir ili kaydırarak bulmak, klavye ve motor güçlüğü olan kullanıcılar için gerçek bir engeldir; aranabilir desene (combobox) geç.
- Uzun listeleri <optgroup> ile başlıklara böl; ekran okuyucu grup adını da okur.
- Taklit bir seçim kutusu yazacaksan APG'nin combobox kalıbını uygula: ok tuşları, Escape ile kapanma, odak yönetimi ve aria bağları eksiksiz olmalı.
Seçenek düğmesinden farkı. İkisi de gruptan tek seçim yaptırır; ayrım GÖRÜNÜRLÜKTE. Seçim kutusu seçenekleri saklar ve yer kazandırır; seçenek düğmeleri hepsini aynı anda gösterir ve karşılaştırmayı mümkün kılar. Pratik kural: yaklaşık beşe kadar ve seçenekler karşılaştırılacaksa seçenek düğmesi; uzun ve tanıdık listelerde (ülke, il) seçim kutusu.
Açılır menüden farkı. Görünüşleri neredeyse aynıdır, işleri tamamen farklıdır: açılır menü EYLEM listeler (Düzenle, Sil, Paylaş) ve seçilen şey hemen çalışır; seçim kutusu ise DEĞER tutar ve o değer formla birlikte gider. Menüden bir şey seçmek bir işi yapar, seçim kutusundan bir şey seçmek bir cevabı belirler. Karıştırıldığında ortaya 'Sil'i seçip Kaydet'i bekleyen bir kullanıcı çıkar.
- standartMDN — <select> ↗
Yerleşik davranış, optgroup ve multiple'ın gerçekte nasıl çalıştığı.
- birincilW3C — ARIA APG, Combobox kalıbı ↗
Aranabilir seçim yazacaksan uyman gereken resmi kalıp: klavye, odak ve aria bağları.
- standartW3C — WCAG 2.2, Info and Relationships (1.3.1) ↗
Etiket ve grup yapısının koda yansıması şartı.
Seçenek düğmesi radioAçılır menü dropdownArama çubuğu search barForm alanı form field