Çok satırlı kutu textarea
bilinen diğer adları textarea · çok satırlı girdi · uzun metin alanı
Böyle diyorsan: "büyük yazı kutusu" · "mesaj yazılan geniş alan" → bunun adı çok satırlı kutu.
Birden çok satır alabilen uzun metin alanı.
Çok satırlı kutu, birden fazla satır kabul eden yazı alanıdır. Tek satırlıdan ayrıldığı asıl yer uzunluk değil ENTER DAVRANIŞIDIR: burada Enter yeni satır açar, formu göndermez. Bu yüzden çok satırlı kutuda gönderme işini ayrı bir buton üstlenir. İkinci mesele boyuttur — kutunun yüksekliği kullanıcıya ne kadar yazması beklendiğini SÖYLER: iki satırlık bir kutu kısa cevap ister, sekiz satırlık kutu hikâye davet eder. Yanlış boyut, kullanıcının yazdığını silip kısaltmasına ya da tam tersine gereğinden fazla yazmasına yol açar.
Kapsam: Bu madde uzun serbest metin alanını kapsar. Tek satırlık girdi Metin Kutusu, zengin biçimlendirme (kalın, liste, link) sunan editörler ise ayrı bir sınıftır ve bu sözlükte yer almaz.
Yapıştır, sonuna belirtiyi ekle — ajana klasik hata kalıplarını önden verir.
- 1Etiket
<label>Alanın adı; textarea'ya bağlı.
- 2Çok satırlı kutu
<textarea rows>Uzayan metnin evi; başlangıç yüksekliği rows ile, içerikle büyümesi field-sizing ile.
- 3Karakter sayacı
128/500Limitin canlı göstergesi; maxlength ile AYNI sayıyı konuşmalı, limite yaklaşınca renk değiştirir.
- 4Boyutlandırma
resize-yKullanıcının kutuyu büyütme tutamacı; yalnız dikeye sınırlanır — yataya izin yerleşimi kırar.
- ABoş
:placeholder-shownYükseklik beklentiyi anlatır. Placeholder yönerge yeri değildir; 'en az 50 karakter' gibi kural yardım satırına yazılır, yazmaya başlayınca kaybolmasın.
- BYazılıyor
input olayıKarakter sayacı varsa canlı güncellenir. Sayaç ile maxlength AYNI sayı olmalı; farklı olduklarında kullanıcı sayaca güvenip yazar ve kesilir.
- CBüyüyor
field-sizing: contentİçerikle birlikte uzayan kutu. Sınırsız büyüme sayfayı bozar; makul bir üst sınır koy, sonrasında kendi içinde kaydırsın.
- DSınıra yaklaştı
kalan karakterUyarı sınıra VARMADAN gelmeli. Yazarken kesilmek, en can sıkıcı form deneyimlerinden biridir.
- EDevre dışı / salt okunur
disabled, readonlyreadonly metnin seçilip kopyalanmasına izin verir ve gönderilir; disabled ikisini de yapmaz.
| HTML | <textarea rows maxlength> | temel + limit |
| CSS | resize: vertical / field-sizing: content | kontrollü büyüme |
| UX | sayaç = maxlength senkronu | tek doğru limit |
- Etiketi <label> ile bağla; çok satırlı kutularda etiket sık sık başlık gibi yazılıp bağlanmadan bırakılıyor.
- maxlength ile sessizce kesme. Sınır varsa kalan karakteri göster ve sınıra yaklaşırken uyar; kullanıcı neden yazamadığını anlamalı.
- resize'ı tamamen kapatma. Kullanıcının kutuyu büyütebilmesi bir erişilebilirlik kolaylığıdır; kısıtlaman gerekiyorsa yalnız dikey büyümeye izin ver.
- Otomatik büyüyen kutuda odak kaybolmasın: içerik uzarken imleç görünür alanda kalmalı.
- Uzun metin girişinde otomatik kaydetme yapıyorsan bunu söyle; sessiz kaydetme kullanıcıyı 'kayboldu mu' endişesinde bırakır.
Metin kutusundan farkı. Ayrım uzunlukta değil ENTER DAVRANIŞINDA: burada Enter yeni satır açar, tek satırlıda formu gönderir. Bu yüzden 'kısa açıklama' alanını tek satırlı yaparsan kullanıcı Enter'a bastığında formu istemeden gönderir. Kutunun yüksekliği de bir vaattir: iki satır kısa cevap ister, sekiz satır hikâye davet eder.
Form alanından farkı. Çok satırlı kutu girdinin kendisidir; form alanı ise onun etiketi, yardım satırı ve hata satırıyla oluşturduğu bütündür. Karakter sayacı da yardım satırının bir türüdür ve girdiye aria-describedby ile bağlanmalıdır — bağlanmazsa ekran okuyucu kullanıcısı sınırı hiç öğrenemez.
- standartMDN — <textarea> ↗
rows, maxlength ve yeniden boyutlandırma davranışı.
- birincilWHATWG HTML — Forms ↗
Alanın standarttaki tanımı ve gönderim davranışı.
- standartW3C — WCAG 2.2, Labels or Instructions (3.3.2) ↗
Uzunluk sınırı gibi kuralların önceden söylenmesi şartı.
Metin kutusu inputForm alanı form fieldİskelet yükleme skeleton