WCAG 3.3.7 · A Seviyesi

Tekrarlanan Giriş

Aynı işlem sürecinde kullanıcının daha önce girdiği bilgilerin yeniden istenmemesini; gerekiyorsa otomatik doldurulmasını veya seçilebilir olarak sunulmasını ister.

Kısaca

Çok adımlı bir başvuruda ilk adımda girilen adresin üçüncü adımda yeniden istenmesi, çoğu kullanıcı için küçük bir zahmettir. Tek parmakla yazan, ekran okuyucuyla form dolduran veya bellek güçlüğü yaşayan biri için ise işlemi yarıda bırakma sebebi olabilir.

Bu kriter, aynı işlem süreci içinde kullanıcının daha önce verdiği bir bilginin yeniden istenmemesini ister. Bilgi tekrar gerekiyorsa otomatik olarak doldurulmalı ya da kullanıcının seçebileceği biçimde sunulmalıdır. Güvenlik amaçlı tekrarlar (parola), doğrulama amaçlı tekrarlar ve geçerliliğini yitirmiş bilgiler istisnadır.

Neleri kapsar?

  • Çok adımlı işlemler: Başvuru, kayıt, ödeme ve randevu gibi birden fazla adımdan oluşan süreçler.
  • Otomatik doldurma: Daha önce girilen bilginin sonraki adımda kendiliğinden doldurulması.
  • Seçilebilir sunma: Önceki bilginin "Aynı adresi kullan" gibi bir seçenekle veya listeden seçilerek yeniden kullanılabilmesi.
  • İstisnalar: Parola veya doğrulama kodu gibi güvenlik amaçlı tekrarlar; e-posta teyidi gibi doğrulama amaçlı tekrarlar; geçerliliğini yitirmiş veya güncellenmesi gereken bilgiler.
  • Kapsam dışı notlar: Kriter yalnızca aynı oturumdaki aynı süreci kapsar; farklı günlerde yapılan ayrı başvurular arasında bilgi taşımayı zorunlu kılmaz. Tarayıcının otomatik doldurma özniteliği (autocomplete) yardımcı olur ancak tek başına bu kriteri karşılamaz, çünkü kullanıcının tarayıcısında kayıtlı veri olmayabilir.

Kimleri etkiler?

Bilişsel engeli veya bellek sorunu olan kullanıcılar daha önce ne yazdıklarını hatırlamakta zorlanabilir. Motor engelli kişiler için her ek giriş fiziksel çaba demektir. Ekran okuyucu kullanan kör kullanıcılar ve yazmak için ses komutu ya da anahtar cihazı kullanan kişiler, tekrar eden alanlarda gereksiz yere zaman kaybeder. Az gören kullanıcılar da önceki adıma dönüp bilgi kontrol etmekte güçlük çekebilir.

Kontrol listesinde

Bu kriter, Bakanlığın A Seviyesi Kontrol Listesi'nde 121–122 numaralı soruları kapsar. Yönlendirme soruları sayfada ilgili içerik olup olmadığını belirler; yoksa liste sizi sonraki soruya geçirir. Aşağıdaki açıklamalar sorulardan alıntı değil, özetidir. Soruların tam metni için resmî listeye bakın.

BK 30 kapsamındaki sorular
SoruTürüNe kontrol eder?
121YönlendirmeAynı adımlar dizisinde kullanıcıdan daha önce girdiği bir bilgiyi yeniden girmesinin istenip istenmediğini sorar. Güvenlik, doğrulama ve geçerliliğini yitirmiş bilgi durumları istisnadır.
122★ Zorunluİstisna dışında kalan durumlarda daha önce alınan bilgilerin otomatik doldurulup doldurulmadığını veya yeniden kullanılabilir biçimde sunulup sunulmadığını kontrol eder.

Resmî kontrol listesini indirin (PDF), yeni sekmede açılır

Web için kod örnekleri

1. "Aynı adresi kullan" seçeneği

Teslimat ve fatura adresi gibi sık tekrarlanan bilgiler için en yaygın çözüm bir onay kutusudur.

Hatalı
<fieldset>
  <legend>Tebligat adresi</legend>
  <!-- Kullanıcı 1. adımda girdiği ikamet
       adresini yeniden yazmak zorunda -->
  <label for="teb-adres">Açık adres</label>
  <textarea id="teb-adres"></textarea>
</fieldset>
Doğru
<fieldset>
  <legend>Tebligat adresi</legend>
  <input type="checkbox" id="ayni-adres" checked
         aria-controls="teb-adres-alani">
  <label for="ayni-adres">
    İkamet adresimle aynı (Moda Mah. Örnek Sok. No: 5, Kadıköy)
  </label>
  <div id="teb-adres-alani" hidden>
    <label for="teb-adres">Açık adres</label>
    <textarea id="teb-adres"></textarea>
  </div>
</fieldset>

<script>
  document.getElementById("ayni-adres").addEventListener("change", (e) => {
    document.getElementById("teb-adres-alani").hidden = e.target.checked;
  });
</script>

2. Önceki adımın verisiyle ön doldurma

Önceki adımda alınan bilgi, sonraki adımda kullanıcının düzenleyebileceği biçimde doldurulmuş olarak gelebilir.

<!-- 3. adım: iletişim bilgileri (sunucu 1. adımın verisini yerleştirir) -->
<label for="iletisim-eposta">Bildirimlerin gönderileceği e-posta</label>
<input type="email" id="iletisim-eposta"
       value="[email protected]"
       autocomplete="email">

3. Önceki bilgiyi seçilebilir sunmak

Bir süreçte birden fazla kişi veya adres girilmişse, sonraki adımda bunlar arasından seçim yapılabilmelidir.

<fieldset>
  <legend>Randevuya katılacak kişi</legend>
  <input type="radio" id="kisi-1" name="katilimci" value="1" checked>
  <label for="kisi-1">Ayşe Yılmaz (başvuru sahibi)</label>
  <input type="radio" id="kisi-2" name="katilimci" value="2">
  <label for="kisi-2">Mehmet Yılmaz (bakmakla yükümlü olunan kişi)</label>
  <input type="radio" id="kisi-yeni" name="katilimci" value="yeni">
  <label for="kisi-yeni">Başka bir kişi</label>
</fieldset>

4. autocomplete öznitelikleri

Doğru autocomplete değerleri tarayıcının kayıtlı bilgileri önermesini sağlar. Kriteri tek başına karşılamaz, ancak süreç içindeki ön doldurmayla birlikte kullanıldığında kullanıcının işini büyük ölçüde kolaylaştırır.

<label for="ad">Ad Soyad</label>
<input id="ad" autocomplete="name">

<label for="tel">Cep telefonu</label>
<input id="tel" type="tel" autocomplete="tel">

<label for="posta-kodu">Posta kodu</label>
<input id="posta-kodu" autocomplete="postal-code" inputmode="numeric">

5. İstisna: güvenlik ve doğrulama

Parolanın iki kez girilmesi veya e-posta adresinin teyit için yeniden yazılması istisna kapsamındadır. Yine de parolayı göster seçeneği gibi yöntemler tekrar ihtiyacını azaltabilir.

<label for="parola">Parola</label>
<input type="password" id="parola" autocomplete="new-password">
<input type="checkbox" id="parola-goster">
<label for="parola-goster">Parolayı göster</label>

<script>
  document.getElementById("parola-goster").addEventListener("change", (e) => {
    document.getElementById("parola").type = e.target.checked ? "text" : "password";
  });
</script>

Mobil için kod örnekleri

iOS (SwiftUI)

import SwiftUI

struct TebligatAdresiAdimi: View {
    let ikametAdresi: String          // Önceki adımdan gelir
    @State private var ayniAdres = true
    @State private var tebligatAdresi = ""

    var body: some View {
        Form {
            Section("Tebligat adresi") {
                Toggle("İkamet adresimle aynı", isOn: $ayniAdres)
                if ayniAdres {
                    Text(ikametAdresi)
                        .foregroundStyle(.secondary)
                } else {
                    TextField("Açık adres", text: $tebligatAdresi, axis: .vertical)
                        .textContentType(.fullStreetAddress)
                }
            }
        }
    }
}

Android (Jetpack Compose)

import androidx.compose.foundation.layout.*
import androidx.compose.foundation.selection.toggleable
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.Role

@Composable
fun TebligatAdresiAdimi(ikametAdresi: String) {
    var ayniAdres by remember { mutableStateOf(true) }
    var tebligatAdresi by remember { mutableStateOf("") }

    Column {
        Row(
            Modifier.toggleable(
                value = ayniAdres,
                onValueChange = { ayniAdres = it },
                role = Role.Checkbox
            ),
            verticalAlignment = Alignment.CenterVertically
        ) {
            Checkbox(checked = ayniAdres, onCheckedChange = null)
            Text("İkamet adresimle aynı")
        }

        if (ayniAdres) {
            Text(ikametAdresi)
        } else {
            OutlinedTextField(
                value = tebligatAdresi,
                onValueChange = { tebligatAdresi = it },
                label = { Text("Açık adres") }
            )
        }
    }
}

Nasıl test edilir?

  • Süreci baştan sona tamamlayın: Çok adımlı bir işlemi gerçek verilerle doldurun ve her adımda istenen bilgileri not edin.
  • Tekrarları belirleyin: Aynı bilgi birden fazla adımda isteniyor mu? İsteniyorsa otomatik dolu mu geliyor veya seçilebilir mi?
  • İstisnaları ayırın: Tekrar eden giriş güvenlik, doğrulama veya güncelleme amacıyla mı isteniyor?
  • Geri dönüşleri deneyin: Bir önceki adıma dönüp tekrar ilerlediğinizde girdiğiniz bilgiler korunuyor mu?
  • Otomatik araçların sınırı: Otomatik araçlar tek bir sayfayı inceler ve çok adımlı bir süreçteki tekrarları tespit edemez. Bu kriter tamamen elle test edilmelidir.

Sık yapılan hatalar

  • Kimlik bilgilerini her adımda istemek: T.C. Kimlik No, ad soyad veya doğum tarihinin süreç boyunca birkaç kez sorulması.
  • Geri dönünce formun boşalması: Önceki adıma dönüldüğünde girilen bilgilerin kaybolması.
  • Fatura ve teslimat adresini ayrı ayrı istemek: "Aynı adres" seçeneği sunulmaması.
  • autocomplete'i kapatmak: autocomplete="off" ile tarayıcı önerilerinin gereksiz yere engellenmesi.
  • İstisnayı geniş yorumlamak: Güvenlik gerekçesi olmayan bilgilerin "doğrulama" adı altında tekrar istenmesi.

Kaynaklar

Kontrol listesi sürümü: V2.2.30.01 (2026). Bu sayfa bilgilendirme amaçlıdır; bağlayıcı metin için Aile ve Sosyal Hizmetler Bakanlığı'nın resmî kontrol listesini esas alın.

Sitenizde bu kriter nasıl görünüyor?

Ücretsiz tarama, bu kriterdeki sorunları ve diğerlerini Bakanlığın A Seviyesi Kontrol Listesi esas alınarak listeler.

Sitemi ücretsiz tara