Otomatik algılanan girdi hatalarında hatalı alanın belirlenmesini ve hatanın kullanıcıya metinle açıklanmasını ister.
Yanlış giden bir şeyin işaretini vermeden yeniden yüklenen bir form, insanları tahmine bırakır. Kırmızı çerçeveyi göremeyenler, ekran okuyucu kullananlar ya da bilişsel engeli olanlar, bir hata olduğunu ve nerede olduğunu sözcüklerle öğrenmelidir.
Bu kriter, bir girdi hatası otomatik olarak algılanırsa hatalı öğenin belirlenmesini ve hatanın kullanıcıya metinle açıklanmasını ister.
Kırmızı çerçeveye güvenemeyen körler, az görenler ve renk görme eksikliği olanlar. Bir gönderimin neden başarısız olduğunu anlaması gereken bilişsel, dil ve öğrenme engelli kişiler. Hatanın olduğunu ve nerede olduğunu öğrenmesi gereken ekran okuyucu kullanıcıları. Formun yalnızca bir bölümünü gören büyüteç kullanıcıları.
Avrupa Erişilebilirlik Yasası (Direktif (AB) 2019/882) 28 Haziran 2025'ten sonra piyasaya sunulan kapsamdaki ürün ve hizmetler için geçerlidir. Yasanın 47. gerekçesi web siteleri ve mobil uygulamalar için dört ilkeyi sayar: algılanabilirlik, işletilebilirlik, anlaşılabilirlik ve sağlamlık. Metinle belirlenen hatalar, "anlaşılabilirlik" ilkesinin parçasıdır.
Teknik karşılığı EN 301 549 standardında bulunur. Standart, WCAG 3.3.1'i atıfla alır ve ortama göre ayrı maddelere dönüştürür.
| Madde | Ortam | Ne ister? |
|---|---|---|
| 9.3.3.1 | Web sayfaları | Web içeriğinin WCAG 3.3.1 kriterini karşılamasını ister. |
| 10.3.3.1 | Web dışı dokümanlar (PDF, Office dosyaları) | Standardın kriteri dokümanlara uyguladığı yerlerde, dokümanlar girdi hatalarını belirlemeli ve metinle açıklamalıdır. |
| 11.3.3.1 | Web dışı yazılım (yerel mobil uygulamalar) | Yazılım girdi hatalarını belirlemeli ve metinle açıklamalıdır. |
Kriterin web dışı dokümanlara uygulanıp uygulanmadığı ve nasıl uygulandığı standardın 10. maddesinde belirtilir. Madde numaraları EN 301 549'un "9. + WCAG numarası" düzenine göredir. V3.2.1'de yazılım maddesi, açık ve kapalı işlevsellik için ayrı alt maddelere bölünmüştür. Kaynak gösterirken tam numaraları standarttan kontrol edin.
Standart sürümü: EN 301 549 V4.1.1 (Eylül 2026), WCAG 2.2'yi esas alan ve EAA için hazırlanan ilk sürümdür. Henüz AB Resmî Gazetesi'nde atıf almamıştır; bu nedenle EAA gereksinimlerini karşılamanın gönüllü teknik yolu olarak görülmelidir. Atıf yapıldığında EAA ile ilgili uygunluk karinesi sağlayacaktır. 3.3.1 kriterinin metni WCAG 2.1 ve 2.2'de aynıdır.
EAA bağlamında dikkat: Yasanın Madde 2/4 hükmü bazı içerikleri gereksinimlerin dışında bırakır; örneğin 28 Haziran 2025'ten önce yayımlanmış ofis dosya biçimleri ve bu tarihten sonra güncellenmeyen arşivler. Bu tarihten sonra yayımladığınız ya da değiştirdiğiniz içerik bu istisnaların kapsamında değildir.
Directive (EU) 2019/882, EUR-Lex, İngilizce, yeni sekmede açılır
Kırmızı bir çerçeve tek başına metin açıklaması değildir.
<input id="email" style="border:2px solid red"><label for="email">E-posta</label>
<input id="email" type="email" aria-invalid="true" aria-describedby="email-err">
<p id="email-err" class="error">Bir e-posta adresi girin; örneğin [email protected].</p>aria-invalid alanı işaretler, aria-describedby mesajı ona bağlar.
<input id="phone">
<span class="error">!</span><input id="phone" aria-invalid="true" aria-describedby="phone-err">
<span id="phone-err">Telefon numarası 10 haneli olmalıdır.</span>Hangi zorunlu alanın boş bırakıldığını söyleyin. Form yeniden gösterildiğinde diğer girdileri koruyun.
<p class="error">Lütfen formu düzeltin.</p><p class="error">"Soyadı" alanı zorunludur.</p>Bir canlı bölge ya da role="alert", mesaj göründüğünde ekran okuyucuların onu okumasını sağlar (ARIA19).
<div class="error" style="display:none">…</div> <!-- sessizce gösteriliyor --><div id="errors" role="alert"></div>
<script>
errors.textContent = "\"Soyadı\" alanı zorunludur.";
</script>Hataları en üstte listeleyin; her biri kendi alanına bağlansın ve odağı özete taşıyın.
<!-- Form, özet ve mesaj olmadan yeniden yükleniyor --><div role="alert" tabindex="-1" id="summary">
<h2>2 hata</h2>
<ul>
<li><a href="#email">E-posta: geçerli bir adres girin</a></li>
<li><a href="#phone">Telefon: 10 hane gerekli</a></li>
</ul>
</div>Sayfa kullanıcının girdiği bir değeri değiştiriyorsa, bunu söyleyin.
qty.value = Math.min(qty.value, 10); // mesaj olmadan değiştirildiif (qty.value > 10) {
qty.value = 10;
msg.textContent = "En fazla 10 olabilir, bu yüzden miktar 10 yapıldı.";
}Hatayı alanın yanında metinle gösterin ve ekran okuyuculara bildirildiğinden emin olun. Yerel bir ekranda da renk tek başına yetmez.
import SwiftUI
struct EmailField: View {
@State private var email = ""
@State private var error: String?
var body: some View {
VStack(alignment: .leading) {
TextField("E-posta", text: $email)
.onSubmit { validate() }
if let error {
// Hata yalnızca kırmızı bir çerçeve değil, metindir
Text(error).foregroundStyle(.red)
}
}
}
private func validate() {
if email.contains("@") { error = nil; return }
error = "Bir e-posta adresi girin; örneğin [email protected]."
// VoiceOver kullanıcılarına hatanın göründüğünü bildirin
AccessibilityNotification.Announcement(error ?? "").post()
}
}import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.error
import androidx.compose.ui.semantics.semantics
@Composable
fun EmailField() {
var email by remember { mutableStateOf("") }
val message = if (email.isNotEmpty() && !email.contains("@"))
"Bir e-posta adresi girin; örneğin [email protected]." else null
OutlinedTextField(
value = email,
onValueChange = { email = it },
label = { Text("E-posta") },
isError = message != null,
// Hata yalnızca kırmızı bir çerçeve değil, metindir
supportingText = { message?.let { Text(it) } },
modifier = Modifier.semantics { message?.let { error(it) } }
)
}aria-invalid ve bağlanmamış mesajları bulabilir, ama metnin hatayı açıklayıp açıklamadığını değerlendiremez. Bunu bir kişi okumalıdır.alert(): İletişim kutusu kapatılınca mesaj kaybolur ve alanın yanında kalmaz.Corpowid, dijital erişilebilirlik alanındaki yenilikçi yaklaşımı ve performansı nedeniyle dünyanın önde gelen araştırma ve danışmanlık şirketlerinden biri olan Gartner tarafından takdir edilmiştir. Bu rozetler, yapay zeka destekli ve kapsayıcı web deneyimleri oluşturma konusundaki kararlılığımızı yansıtmaktadır.