WCAG 3.1.2 · AA Seviyesi · EN 301 549 9.3.1.2

Parçaların Dili

Sayfa varsayılanından farklı dildeki pasaj ve ifadelerin işaretlenmesini ister; yardımcı teknoloji bunları doğru telaffuz etsin.

Kısaca

İçinde Fransızca bir alıntı olan İngilizce bir sayfa ya da içinde İngilizce ürün adı geçen Türkçe bir sayfa, ekran okuyucu baştan sona tek bir dil varsaydığında yanlış okunur. Fransızca ifade İngilizce telaffuzla okunur ve anlaşılmaz hâle gelir.

Bu kriter, içerikteki her pasajın ya da ifadenin insan dilinin programatik olarak belirlenebilmesini ister; özel adlar, teknik terimler, dili belirsiz sözcükler ve çevreleyen metnin günlük diline girmiş sözcükler ya da ifadeler hariç.

Neleri kapsar?

  • Pasajları işaretlemek: Sayfa varsayılanından farklı dilde metin içeren öğeye bir lang özniteliği koyun (H58). Bir ifade tek bir sözcük de olabilir.
  • İstisnalar: Özel adlar, teknik terimler, dili belirsiz sözcükler ve çevreleyen metnin günlük diline girmiş sözcükler.
  • Özel adlar: "Albert Camus" gibi bir ad, başka dildeki bir sayfada bile genellikle dil değişikliği gerektirmez.
  • Teknik terimler: "habeas corpus" ya da "hertz" gibi diller arasında çevrilmeden kullanılan terimler.
  • Günlük dile girmiş sözcükler: İngilizcede "rendezvous" gibi ödünç sözcükler. Emin değilseniz, sözcüğün çevreleyen dildeki gibi telaffuz edilip edilmediğine bakın.
  • En iyi uygulama: İstisna olan sözcüklerde bile kaynak dili işaretlemek telaffuzu iyileştirebilir; zorunlu değildir.
  • Varsayılan dil: lang belirtilmeyen içerik sayfa varsayılanını alır; bu varsayılan 3.1.1 kapsamında belirtilmelidir.

Kimleri etkiler?

Her ifadeyi doğru telaffuzla duyan ekran okuyucu ve konuşma sentezi kullanıcıları. Yazılımı braille tablolarını değiştiren braille kullanıcıları. Konuşma sentezine dayanan okuma, bilişsel ya da dil engelli kişiler. Dil değişimlerini gösteren altyazılara güvenenler. Dil öğrenenler ve çeviri araçları da yararlanır.

EAA ve EN 301 549'da

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. Her pasaj için programatik olarak erişilebilir dil, "anlaşılabilirlik" ilkesinin parçasıdır.

Teknik karşılığı EN 301 549 standardında bulunur. Standart, WCAG 3.1.2'i atıfla alır ve ortama göre ayrı maddelere dönüştürür.

WCAG 3.1.2'in EN 301 549'daki karşılıkları
MaddeOrtamNe ister?
9.3.1.2Web sayfalarıWeb içeriğinin WCAG 3.1.2 kriterini karşılamasını ister.
10.3.1.2Web dışı dokümanlar (PDF, Office dosyaları)Standardın kriteri dokümanlara uyguladığı yerlerde, dokümanlar pasajların dilini işaretlemelidir.
11.3.1.2Web dışı yazılım (yerel mobil uygulamalar)Yazılım, kendi dilinden farklı pasajların dilini belirtmelidir.

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.1.2 kriterinin metni WCAG 2.1 ve 2.2'de aynıdır. AA düzeyinde bir kriterdir.

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

Web için kod örnekleri

1. Cümle içinde yabancı dilde bir ifade

Doğru lang ile sarmalayın (H58).

Hatalı
<p>Fransızların dediği gibi, c'est la vie.</p>
Doğru
<p>Fransızların dediği gibi, <span lang="fr">c'est la vie</span>.</p>

2. Başka dilde bir alıntı

Tüm sayfayı değil, alıntıyı işaretleyin.

Hatalı
<blockquote>Die Bremer Stadtmusikanten …</blockquote>
Doğru
<blockquote lang="de">Die Bremer Stadtmusikanten …</blockquote>

3. Dil değiştirici

Her dilin adını kendi dilinde yazın ve işaretleyin; ekran okuyucu doğru telaffuz etsin.

Hatalı
<a href="/de">Deutsch</a> <a href="/en">English</a>
Doğru
<a href="/de" lang="de" hreflang="de">Deutsch</a>
<a href="/en" lang="en" hreflang="en">English</a>

4. Diğer dildeki sözcük bir özel ad

İstisnalar için işaretleme gerekmez, yine de izin verilir.

Hatalı
<p><span lang="fr">Albert Camus</span> ile buluştuk.</p> <!-- isteğe bağlı, zorunlu değil -->
Doğru
<p>Albert Camus ile buluştuk.</p> <!-- istisna: özel ad -->

5. Bağlantı ya da düğme içinde dil değişimi

lang özniteliğini yabancı metni taşıyan öğeye koyun.

Hatalı
<a href="/menu">Plat du jour</a>
Doğru
<a href="/menu"><span lang="fr">Plat du jour</span></a>

6. Sayfa içinde bölgesel varyant

Bölge alt etiketi bir pasajda da kullanılabilir.

Hatalı
<p>Brezilya'da: obrigado pelo apoio.</p>
Doğru
<p>Brezilya'da: <span lang="pt-BR">obrigado pelo apoio</span>.</p>

Mobil için kod örnekleri

Yerel uygulamalar bir pasajın dilini ekran okuyucuya işaretleyebilir. Öznitelik tüm ekrana değil, metne uygulanır.

iOS (SwiftUI)

import UIKit

// Konuşma dili özniteliği, VoiceOver'a bu pasajı nasıl telaffuz edeceğini söyler
let label = UILabel()
let attributed = NSMutableAttributedString(string: "Fransızların dediği gibi, c'est la vie.")
let range = (attributed.string as NSString).range(of: "c'est la vie")
attributed.addAttribute(.accessibilitySpeechLanguage, value: "fr", range: range)
label.attributedText = attributed
label.accessibilityAttributedLabel = attributed

Android (Jetpack Compose)

import android.os.Bundle
import android.text.SpannableString
import android.text.Spanned
import android.text.style.LocaleSpan
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import java.util.Locale

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val text = SpannableString("Fransızların dediği gibi, c'est la vie.")
        val start = text.indexOf("c'est la vie")
        // LocaleSpan, TalkBack'e pasajın hangi dilde olduğunu söyler
        text.setSpan(LocaleSpan(Locale.FRENCH), start, start + "c'est la vie".length,
            Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
        findViewById<TextView>(R.id.label).text = text
    }
}

Nasıl test edilir?

  • Pasajları bulun: Sayfa varsayılanından farklı dildeki alıntıları, ifadeleri, ürün adlarını, başlıkları ve gezinme öğelerini arayın.
  • İşaretlemeyi kontrol edin: Yabancı metni taşıyan öğede geçerli bir lang özniteliği var mı?
  • İstisnaları uygulayın: Sözcük özel ad mı, teknik terim mi, dili belirsiz mi ya da çevreleyen metnin günlük diline girmiş mi?
  • Dil değiştiricileri kontrol edin: Dillerin adları kendi dillerinde işaretlenmiş mi?
  • Dinleyin: Sesleri değiştiren bir ekran okuyucuyla sayfayı okuyun. Yabancı ifadeler doğru telaffuz ediliyor mu?
  • Yalnızca sese değil işaretlemeye de bakın: Yalnızca yardımcı teknoloji çıktısına güvenmeyin. Bazı araçlar erişilebilir adlardaki dil değişimlerini düşürür; bu yüzden kodu inceleyin.
  • Denetleyiciyi başlangıç olarak kullanın: axe gibi araçlar (valid-lang kuralı) geçersiz değerleri bulur. İşaretlenmesi gereken pasajları bulamazlar; içeriği bir kişi okumalıdır.

Sık yapılan hatalar

  • Başka dildeki pasajlarda lang olmaması: Ekran okuyucu bunları yanlış telaffuz eder.
  • Tüm sayfayı yabancı dil olarak işaretlemek: Sayfa varsayılanını kullanın ve yalnızca pasajı işaretleyin.
  • Geçersiz ya da uyuşmayan kodlar: Fransızca metni lang="fr-FR" olarak işaretlemek uygundur, lang="fransizca" olarak işaretlemek değildir.
  • İşaretlenmemiş dil adları: "Deutsch", "English" ve "Français" listeleyen ama lang taşımayan bir değiştirici.
  • Her şeyi işaretlemek: Özel adlar gibi istisna sözcüklerin işaretlenmesi gerekmez.
  • Hiçbir şeyi işaretlememek: Alıntılar ve yabancı başlıklar gözden kaçar.
  • Dilin yalnızca aria-label içinde olması: Erişilebilir ad içindeki dil değişimleri kaybolabilir; bu yüzden işaretlemeyi kontrol edin ve lang ile işaretlenmiş görünür metni tercih edin.
  • Otomatik dil algılamaya güvenmek: Yardımcı teknoloji kısa ifadelerin dilini güvenilir biçimde tahmin etmez.

Kaynaklar

Standart sürümü: EN 301 549 V4.1.1 (2026-09), WCAG 2.2. Bu sayfa bilgilendirme amaçlıdır ve hukuki tavsiye niteliği taşımaz; bağlayıcı metin için Avrupa Erişilebilirlik Yasası'nın (Direktif (AB) 2019/882) ve EN 301 549 standardının resmî metinlerini esas alın.

Corpowid, Gartner tarafından tanınan bir platformdur.

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.

Corpowid hakkında sorularınız mı var?

Bizimle iletişime geçin.

Size en kısa sürede geri dönüş sağlayacağız.