Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 7 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
Placeholder, giriş alanının içinde görünen geçici ipucudur; label ise alanın ne olduğunu tanımlayan kalıcı etikettir. Bu nedenle yalnızca placeholder kullanmak, formu anlaşılması, erişilebilirliği ve kullanım sonrası doldurulabilirliği açısından eksik bırakır. Doğru yaklaşım, her form alanına görünür bir label eklemek ve gerekiyorsa placeholder'ı örnek biçiminde yardımcı metin olarak kullanmaktır.

Placeholder ile label arasındaki fark​


placeholder değeri, kullanıcı alana yazmaya başladığında genellikle kaybolur. Alan doldurulduktan sonra kullanıcı hangi bilginin istendiğini tekrar göremez. Ayrıca placeholder, form gönderildiğinde alanın adı olarak gönderilmez ve tek başına alanı erişilebilir biçimde tanımlamaz.

label ise ilgili alanın kalıcı açıklamasıdır. for niteliği ile input öğesinin id değeri eşleştirildiğinde kullanıcı etikete tıklayarak alana odaklanabilir; yardımcı teknolojiler de alanı bu adla duyurabilir.

Karşılaştırmayı şöyle düşünebilirsiniz:

ÖzellikPlaceholderLabel
GörünürlükAlan boşken görünür, yazınca kaybolabilirKalıcıdır
Alanı tanımlamaGeçici ipucu sağlarAlan adını açıkça belirtir
Gönderilen veriForm verisi olarak gönderilmezForm verisi olarak gönderilmez; alanı tanımlar
ErişilebilirlikTek başına güvenilmemelidirAlanla ilişkilendirilebilir

Bu yüzden placeholder, label'ın yerine değil, label'ın yanına kullanılmalıdır. Örneğin e-posta alanında placeholder olarak [email protected] yazmak biçim hakkında fikir verebilir; fakat alanın görünen adı yine E-posta adresi olmalıdır.

Doğru ve çalıştırılabilir örnek​


Aşağıdaki tam HTML örneğinde iki alanın da kalıcı etiketi vardır. Placeholder yalnızca beklenen biçim hakkında ek ipucu verir.

HTML:
<!doctype html>
<html lang="tr">
<head>
  <meta charset="utf-8">
  <title>İletişim formu</title>
</head>
<body>
  <form action="/iletisim" method="post">
    <p>
      <label for="name">Adınız</label>
      <input id="name" name="name" type="text" placeholder="Örneğin Ayşe Yılmaz" required>
    </p>
    <p>
      <label for="email">E-posta adresiniz</label>
      <input id="email" name="email" type="email" placeholder="[email protected]" required>
    </p>
    <button type="submit">Gönder</button>
  </form>
</body>
</html>

Uygulamak için:

  1. Kullanıcının dolduracağı her input için benzersiz bir id belirleyin.
  2. Bu id değerini ilgili label öğesinin for niteliğinde aynen kullanın.
  3. Sunucunun alacağı alan adını name niteliğinde belirtin; id ile name aynı olmak zorunda değildir.
  4. Yalnızca biçim veya örnek gerekiyorsa placeholder ekleyin.
  5. Dosyayı tarayıcıda açıp etiket metnine tıklayın. İmleç ilgili alana geçiyorsa for-id bağlantısı kurulmuştur.
  6. Bir test gönderimi yapın. Sunucu tarafında name="name" ve name="email" alanlarının alınması, formun veri gönderebildiğini gösterir.

Etikete tıklamak alanı seçmiyorsa genellikle for değeri ile id değeri farklıdır. Alan gönderiliyor ancak sunucu beklenen anahtarı bulamıyorsa name eksik veya yanlış olabilir. Bu iki sorun, placeholder ekleyerek çözülmez.

Örnekteki /iletisim yalnız sunucuda sizin oluşturacağınız hedefin yer tutucusudur. HTML dosyasını açmak etiket/odak davranışını gösterir; çalışan bir POST uç noktası yoksa gerçek gönderimin kaydedildiği sonucunu beklemeyin. Placeholder da kullanıcı girdisinin yerine form verisi üretmez; gönderim alanın name/value çiftine bağlıdır.

Sık yapılan hatalar​


  • Placeholder'a soru metnini yazıp görünür label eklememek: Kullanıcı yazmaya başladıktan sonra alanın amacı belirsizleşir.
  • Görsel metni kontrolle ilişkilendirmemek: Bu örnekte açık ilişki için for/id eşleşmesi gerekir. Girişin label öğesinin içine yerleştirilmesiyle örtük etiketleme de mümkündür; düz bir p veya span metni kendiliğinden label olmaz.
  • Örnek değeri gerçek varsayılan değer gibi kullanmak: Kullanıcının yazacağı değeri value ile önceden doldurmak, örneğin yanlışlıkla gönderilmesine neden olabilir.
  • Zorunlu alanı yalnız placeholder ile belirtmek: Zorunluluk required gibi HTML doğrulama araçlarıyla ve açık metinle ifade edilmelidir.

Kaynaklar​



Sık sorulan sorular​


Placeholder yerine açıklama metni ne zaman kullanılmalı?​


Uzun yönergeler, biçim kuralları veya alanla ilgili önemli uyarılar için placeholder yerine alanın dışında kalıcı açıklama metni kullanın. Gerekirse bu metni aria-describedby ile alana bağlayın; böylece bilgi yazı yazılınca kaybolmaz.

Label görünür olmak zorunda mı?​


Label'ın görsel tasarımı değiştirilebilir, ancak alanın erişilebilir adı korunmalıdır. Görünür metni kaldırmak yerine tasarıma uygun biçimde konumlandırmak genellikle daha güvenlidir; yalnızca placeholder'a güvenmek doğru bir ikame değildir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic