CodeBlanks Logo Icon CodeBlanks

Erişilebilirlik temelleri

Erişilebilir bileşenlerin neden önemli olduğunu öğrenirsin.

Erişilebilirlik temelleri

Erişilebilirlik (a11y), uygulamayı ekran okuyucu, klavye ve sesli komut kullanan herkesin rahatça kullanabilmesi demektir. Semantik HTML işin çoğunu yapar: <button> doğal olarak odaklanılabilir ve Enter ile tetiklenir.

Özel bileşenlerde role ve aria-label ile anlam eklersin. Odak sırası görsel sırayla aynı olmalıdır. Renk tek başına anlam taşımamalı; metinle birlikte bir ikon da göster.

Erişilebilirlik klavye kısayolu seven herkes için de konfor sağlar.

ARIA ve klavye

ARIA yalnızca semantik HTML yetersiz kaldığında kullanılır. En sık karşılaşılan öznitelikler aria-label, aria-expanded ve aria-hidden'dır.

Bir açılır menüde düğme aria-expanded ile açık/kapalı durumunu bildirmelidir. Klavye kullanıcısı Tab ile gezer, Enter ve Esc ile etkileşir.

tabIndex değerini 0 yaparak özel bir elemanı sekme sırasına alabilirsin; -1 ile yalnızca programatik odak verirsin.

Uygulama IconButton bileşenini yaz

IconButton bileşeni yaz. label özelliğini alsın ve <button aria-label={label}> içinde bir <svg> göstersin. Dışa aktar.

Başlangıç kodu

App.jsx
// IconButton bileşenini buraya yaz

Örnek çözüm

App.jsx
function IconButton({ label }) {
  return (
    <button aria-label={label}>
      <svg width="16" height="16" />
    </button>
  );
}
export default IconButton;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Aşağıdakilerden hangisi erişilebilir bir buton için en iyisidir?

  • <button onClick={save}>Kaydet</button> Doğru cevap
  • <div onclick="...">Kaydet</div>
  • <span role="button">Kaydet</span>
  • <a href="#">Kaydet</a>

Açıklama: button doğal olarak odaklanılabilir ve klavyeyle çalışır.

2 Boşluğu doldur: açılır menü düğmesine durum ekle

Soru
function Menu({ open }) {
  return (
    <button aria-expanded={____}>
      Menü
    </button>
  );
}
Cevap
function Menu({ open }) {
  return (
    <button aria-expanded={open}>
      Menü
    </button>
  );
}

Açıklama: aria-expanded, open değerini alır.

3 Erişilebilirlik kavramlarını eşleştir

Kavram Anlamı
aria-label Görünür metin yokken etiket
tabIndex 0 Sekme sırasına al
role Anlam ekler
Esc Menüyü kapatır

İleri seviye bölümündeki tüm dersler