CodeBlanks Logo Icon CodeBlanks

Focus-visible

CSS kursu · İleri seviye · Ders 32/52

:focus-visible ile erişilebilir odak stillerini öğrenirsin.

:focus-visible nedir?

CSS'te :focus sözde sınıfı bir öğe odaklandığında devreye girer; fare tıklamasında da klavyeyle gelişte de. :focus-visible ise yalnızca klavye veya başka bir yardımcı teknolojiyle odaklanıldığında devreye girer; fare tıklamasında çoğu zaman görünmez.

Bu, fare kullananları çirkin odak halkalarından kurtarmak için tasarlanmıştır. Klavye kullananlar ise hâlâ net bir odak çerçevesi görür; erişilebilirlik korunur.

outline: none tuzağı

Bazı tasarımlar outline: none yazarak varsayılan odak çerçevesini kaldırır. Bu, klavye kullananlar için bir felakettir: odakların nerede olduğunu göremezler. Çözüm, varsayılanı kaldırmak değil, :focus-visible ile açık ve kontrastlı bir çerçeve vermektir.

Örnek: :focus-visible { outline: 3px solid #ffba00; outline-offset: 2px; }. Çerçeve kalın, kontrastlı ve öğeden biraz dışarıda durur; görme zorluğu olanlar da rahatça görür.

Uygulama a:focus-visible için çerçeve tanımla

a:focus-visible seçicisi için bir bildirim bloğu yaz. İçinde outline: 3px solid #ffba00 ve outline-offset: 2px bildirimleri bulunsun.

Örnek çözümü göster
/* odak çerçevesini tanımla */
a:focus-visible {
  outline: 3px solid #ffba00;
  outline-offset: 2px;
}

Kendini test et

  1. :focus-visible hangi durumda :focus'tan farklı davranır?

    • Hiçbir zaman, ikisi de aynıdır
    • Klavyeyle odakta görünür, fare tıklamasında çoğu zaman görünmez
    • Yalnızca fare tıklamasında görünür, klavyede değil
    • Yalnızca dokunmatik ekranlarda görünür
    Cevabı göster

    Klavyeyle odakta görünür, fare tıklamasında çoğu zaman görünmez — Doğru. :focus-visible klavyeyle odakta görünür; fare tıklamasında çoğu zaman görünmez.

  2. Odak çerçevesi bildirimini yaz

    a:focus-visible {
      ____;
      outline-offset: 2px;
    }
    Cevabı göster
    a:focus-visible {
      outline: 3px solid #ffba00;
      outline-offset: 2px;
    }
  3. Odak sözde sınıflarını eşle

    :focus
    Her odak türü
    :focus-visible
    Yalnız klavye odak
    :focus-within
    Kendinde ya da çocuğunda odak
    outline: none
    Odak çerçevesini kaldır

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