Seçenek düğmesi radio
bilinen diğer adları radio button · radyo düğmesi · tek seçim düğmesi
Böyle diyorsan: "tek seçilebilen yuvarlaklar" · "şıklardan birini seçme" → bunun adı seçenek düğmesi.
Gruptan yalnız BİR seçim yaptıran yuvarlak düğme.
Seçenek düğmesi, bir sorunun birbirini dışlayan cevaplarını listeler: gruptan her an yalnız biri seçilidir. Grubu oluşturan şey görsel yakınlık değil, düğmelerin AYNI name değerini paylaşmasıdır; name'ler ayrıştığı anda hepsi bağımsız onay kutusuna döner ve üçü birden seçilebilir hâle gelir. En çok atlanan davranışsal sonucu şudur: bir seçeneği seçtikten sonra, kod yazmadan 'hiçbirini seçmemiş' hâline DÖNEMEZSİN. Bu yüzden vazgeçilebilmesi gereken sorularda listeye açıkça bir 'Hiçbiri' seçeneği koymak gerekir.
Kapsam: Bu madde gruptan tek seçimi kapsar. Bağımsız çoklu seçim Onay Kutusu, çok sayıda seçenek arasından tek seçim ise Seçim Kutusu maddesindedir — üçü aynı soruyu farklı ölçeklerde çözer.
Yapıştır, sonuna belirtiyi ekle — ajana klasik hata kalıplarını önden verir.
- 1Grup çerçevesi
fieldset + legendSorunun kendisi ('Ödeme yöntemi') legend'dir; seçenekler onun altında tek ailedir.
- 2Düğmeler
type=radio name=XAYNI name'i paylaşan yuvarlaklar — name farklıysa hepsi aynı anda seçilebilir (klasik felaket).
- 3Seçili durum
checkedGruptan her an en çok bir seçili; makul bir varsayılan seçili gelmeli ya da doğrulama istenmeli.
- 4Açıklama satırı
yan metinHer seçeneğin küçük yan bilgisi ('+₺15 hizmet bedeli') — kararı hızlandırır.
- AHiçbiri seçili değil
başlangıçGrup boş başlayabilir ama bu hâle bir daha DÖNÜLEMEZ. Ya makul bir varsayılan seçili gelmeli ya da gönderimde doğrulama istenmeli.
- BSeçili
checkedGruptan tam bir tanesi. Başka birini seçmek öncekini kendiliğinden bırakır; ayrıca kaldırma diye bir işlem yoktur.
- CGrup odağı
roving tabindexTab tuşu grubun tamamına BİR kez uğrar, seçenekler arasında ok tuşlarıyla gezilir. Her seçeneği ayrı Tab durağı yaparsan uzun formlar klavyeyle işkenceye döner.
- DDevre dışı
disabledTek seçenek ya da grubun tamamı kapatılabilir. Bir seçeneğin neden kapalı olduğu yazılmazsa kullanıcı seçim yapamamayı hata sanır.
| HTML | fieldset + legend | grup anlamı |
| HTML | input type=radio name=ortak | tek-seçim garantisi |
| Klavye | Tab grup içine, oklar seçenekler arası | yerleşik davranış |
| UX | varsayılan seçili + yan açıklama | hızlı karar |
- Grubu <fieldset> + <legend> ile sar. Sorunun kendisi legend'dir; bu olmadan ekran okuyucu 'Kart' der ama neyin kartı olduğunu söyleyemez (WCAG 1.3.1).
- Bütün seçenekler AYNI name'i paylaşmalı. Farklı name, tek-seçim garantisini sessizce kaldırır — kod hata vermez, sadece yanlış çalışır.
- Klavye davranışına dokunma: Tab grubun içine girer, oklar seçenekler arasında gezer ve gezerken seçer. Yerleşik radyoyu kullanırsan bu bedava gelir.
- Etiketi ve yan açıklamayı da tıklanabilir yap; yalnız minik yuvarlağı hedef bırakmak dokunmatikte başarısızlık üretir.
- Kartlaştırılmış tasarımlarda içerideki gerçek radio'yu kaldırma. Görsel kart güzel olabilir ama altında yerleşik element durmuyorsa klavye ve okuyucu desteği ölür.
Onay kutusundan farkı. Seçenek düğmeleri bir GRUP oluşturur ve gruptan yalnız biri seçilir; onay kutuları BAĞIMSIZDIR ve hepsi aynı anda seçilebilir. Ayrımı belirleyen soru şudur: cevaplar birbirini dışlıyor mu? Dışlıyorsa seçenek düğmesi, dışlamıyorsa onay kutusu. Bir de geri alınabilirlik farkı vardır: onay kutusunu kaldırabilirsin, seçenek düğmesini yalnız başka birini seçerek değiştirebilirsin.
Seçim kutusundan farkı. İkisi de gruptan tek seçim yaptırır; ayrım GÖRÜNÜRLÜKTE ve ölçekte. Seçenek düğmeleri bütün seçenekleri aynı anda gösterir — kullanıcı karşılaştırarak seçer; seçim kutusu ise onları bir listeye saklar. Pratik kural: yaklaşık beşe kadar seçenekte ve seçenekler karşılaştırılacaksa seçenek düğmesi, uzun ve tanıdık listelerde (ülke, il) seçim kutusu.
- birincilW3C — ARIA APG, Radio Group kalıbı ↗
Resmi kalıp: grup odağı (roving tabindex) ve ok tuşu davranışı burada tanımlı.
- standartMDN — input type="radio" ↗
Ortak name kuralı ve seçimin geri alınamazlığı.
- standartMDN — <fieldset> ↗
Grubu ve sorusunu koda yazmanın yolu.
- standartW3C — WCAG 2.2, Info and Relationships (1.3.1) ↗
Görsel grubun programatik olarak da grup olması şartı.
Onay kutusu checkboxSeçim kutusu selectAnahtar switch / toggleForm alanı form field