iToverDose/Yazılım· 22 MAYIS 2026 · 12:05

Web Tasarımlarında Renk Kontrastı: Erişilebilirliğin En Kritik Adımı

Web sitelerinin %83,6’sında karşılaşılan renk kontrastı sorunları, kullanıcı deneyimini kökten etkiliyor. Peki, bu basit ancak yaygın hatanın çözümü nedir? İşte erişilebilir tasarım için kritik ipuçları.

DEV Community3 dk okuma0 Yorumlar

Web dünyasında karşılaşılan en yaygın erişilebilirliğe ilişkin sorunlardan biri, renk kontrastıdır. DEV Community tarafından yapılan araştırmaya göre, incelenen web sitelerinin %83,6’sında renk kontrastı yetersizliği tespit edildi. Oysa bu sorun, doğru yaklaşımlarla kolayca çözülebilir. Peki, renk kontrastı nedir ve nasıl optimize edilir?

Renk Kontrastı Neden Önemli?

Renk kontrastı, metnin ve arka planın arasındaki parlaklık farkını ifade eder. Düşük kontrast, özellikle görme engelli kullanıcılar için okunabilirliği ciddi şekilde azaltır. Web Content Accessibility Guidelines (WCAG) 2.2, bu konuda net standartlar belirlemiştir. Bu standartlara göre, normal metinler için minimum 4,5:1, büyük metinler için ise 3:1 kontrast oranı gereklidir.

  • Normal metin (14pt altı ya da 14pt bold altı): Minimum 4,5:1 kontrast oranı
  • Büyük metin (18pt üstü ya da 14pt bold üstü): Minimum 3:1 kontrast oranı
  • Arayüz bileşenleri ve grafikler: Minimum 3:1 kontrast oranı

Kontrast Oranı Nasıl Hesaplanır?

Kontrast oranı, (L1 + 0,05) / (L2 + 0,05) formülüyle hesaplanır. Burada L1, daha açık rengin göreli parlaklığı; L2 ise daha koyu rengin göreli parlaklığıdır. Göreli parlaklık ise, insan gözünün farklı dalga boylarına nasıl tepki verdiğini dikkate alır. Bu hesaplama, sadece parlaklık değil, aynı zamanda renk algısını da içerir.

Aşağıdaki JavaScript fonksiyonu, göreli parlaklığı hesaplamak için kullanılır:

function relativeLuminance(r, g, b) {
  const [rs, gs, bs] = [r, g, b].map(c => {
    const sRGB = c / 255;
    return sRGB <= 0.04045 ? sRGB / 12.92 : Math.pow((sRGB + 0.055) / 1.055, 2.4);
  });
  return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
}

function contrastRatio(hex1, hex2) {
  const lum1 = relativeLuminance(...hexToRgb(hex1));
  const lum2 = relativeLuminance(...hexToRgb(hex2));
  const [lighter, darker] = lum1 > lum2 ? [lum1, lum2] : [lum2, lum1];
  return (lighter + 0.05) / (darker + 0.05);
}

Yaygın Hatalar ve Çözümleri

Gri Metinler ve Beyaz Arka Planlar

Açık gri (#767676) metnin beyaz arka plan üzerinde kontrast oranı 4,54:1’dir ve bu, minimum gereksinimi karşılar. Ancak #757575 kullanıldığında kontrast oranı 4,5:1’in altına düşer. Güvenli bir seçenek olarak, normal metinler için #595959 ya da daha koyu tonlar tercih edilmelidir.

Mavi Bağlantılar ve Koyu Renkli Arka Planlar

Birçok tasarım sistemi, bağlantı rengi olarak marka mavisini (#0066CC) kullanır. Ancak bu renk, koyu mavi (#003366) arka plan üzerinde sadece 2,6:1 kontrast oranı sunar. Bu durumda, bağlantı rengini daha koyu bir tona değiştirmek gerekir.

Yer Tutucu Metinler

Yer tutucu metinler, normal metin olarak değerlendirilir ve kontrast gerekliliklerine tabidir. Tipik gri yer tutucu (#B0B0B0), beyaz arka plan (#FFFFFF) üzerinde 2,5:1 kontrast oranıyla yetersiz kalır. Bu sorunu çözmek için, yer tutucu rengini #767676 ya da daha koyu bir tona ayarlayın:

/* ❌ WCAG standartlarını karşılamıyor */
input::placeholder {
  color: #B0B0B0;
}

/* ✅ WCAG AA standartlarını karşılıyor */
input::placeholder {
  color: #767676;
}

Devre Dışı Bileşenler

Devre dışı bırakılmış bileşenler, kontrast gerekliliklerinden muaftır. Ancak bu muafiyetin geçerli olması için bileşenin gerçekten devre dışı olması gerekir. Görsel olarak devre dışı görünen ancak işlevsel olan bileşenler, kontrast gerekliliklerini karşılamalıdır.

Zorlu Durumlar ve Çözüm Önerileri

Gradientler Üzerine Metinler

Gradient arka planlar üzerinde yer alan metinler için, kontrast oranının gradientin tüm noktalarında minimum gereksinimleri karşılaması gerekir. Bu nedenle, gradientin en düşük kontrast oranına sahip olduğu noktada metnin okunabilirliğini test edin.

Resimler Üzerine Metinler

Resim arka planları, ekranın boyutu, tarayıcının render etme şekli ve resmin yüklenme süresine göre değişkenlik gösterebilir. En güvenli yaklaşım, yarı saydam bir örtü ya da metin gölgesi kullanmaktır:

.hero-text {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
  /* Veya */
  background: rgba(0, 0, 0, 0.5);
  padding: 0.5em 1em;
}

Odak Göstergeleri

WCAG 2.2, odak göstergeleri için yeni bir başarı ölçütü (2.4.11) getirmiştir. Buna göre, odak göstergelerinin komşu renklere karşı en az 3:1 kontrast oranına sahip olması gerekir.

Otomasyon ve Kontrol Araçları

Web sitenizdeki tüm metin ve arka plan kombinasyonlarını manuel olarak kontrol etmek pratik değildir. Bu nedenle otomatik araçlardan yararlanabilirsiniz. AccessiScan gibi araçlar, web sayfalarınızı taramakta ve 201 farklı WCAG 2.2 ölçütüne göre (kontrast dahil) raporlar sunmaktadır. Bu raporlar, başarısız olan unsurları belirleyerek düzeltme sürecini kolaylaştırır.

Erişilebilir tasarımın temelini oluşturan renk kontrastı, küçük CSS değişiklikleriyle büyük bir fark yaratabilir. Özellikle görme engelli kullanıcılar için hayati önem taşıyan bu detay, tüm kullanıcıların deneyimini iyileştirir. Başlangıç olarak, WCAG AA standartlarına odaklanarak bu sorunu kökten çözebilirsiniz.

Yapay zeka özeti

Web sitelerinin %83,6’sında yer alan renk kontrastı sorunları nasıl çözülür? WCAG standartları, hesaplama yöntemleri ve pratik çözümler hakkında detaylı rehber.

Yorumlar

00
YORUM BIRAK
ID #31W85J

0 / 1200 KARAKTER

İnsan doğrulaması

5 + 7 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.