CodeBlanks Logo Icon CodeBlanks

States ve properties

HTML kursu · Uzman · Ders 8/39

aria-* durum ve özelliklerini doğru kullanırsın.

State mi, property mi?

ARIA öznitelikleri iki kategoride toplanır. State (durum), öğenin o anki halini anlatır ve sık değişir: aria-expanded, aria-hidden, aria-busy. Property (özellik) ise daha kalıcıdır: aria-label, aria-labelledby, aria-roledescription.

Ayrım sözcüklerde değil, anlamdadır. Bir menü açıkken aria-expanded="true", kapalıyken "false" olur; bu değer kullanıcı her tıkladığında değişir. Oysa aria-label bir kez yazılır, nadiren güncellenir.

aria-expanded ile açılır öğe

Bir açılır menü, accordion ya da detay kutusu açıp kapandığında aria-expanded güncellenir. Açıkken "true", kapalıyken "false" yazılır. Ekran okuyucu bunu görünce 'genişletildi' ya da 'daraltıldı' diye duyurur.

<button aria-expanded="false" aria-controls="menu-1">Menüyü aç</button> örneğinde düğme kapalı bir menüyü yönetir. aria-controls ise düğmenin denetlediği öğenin id'sini taşır; böylece ikisi ilişkilendirilir. İki özniteliği birlikte kullanmak ilişkiyi tam kurar.

HTML yerel özniteliği varsa ARIA ekleme

Bir <button disabled> zaten devre dışıdır; üstüne aria-disabled="true" yazmak gereksizdir. Yerel HTML özniteliği varsa onu kullanın; ARIA yalnızca HTML karşılığı yoksa devreye girer.

Örneğin bir <div role="button"> yaparsanız disabled HTML özniteliği çalışmaz; o zaman aria-disabled="true" yazmanız gerekir. Temel ilke: önce yerel HTML, sonra ARIA. Bu hem kodu kısa tutar hem de tutarsızlığı engeller.

Uygulama Açılır menü başlığı ve içeriği

Body içine bir <button> ekle; aria-expanded özniteliğine false, aria-controls özniteliğine menu-1 ver. Düğme metni Menüyü aç olsun. Body içine bir <div> ekle; id özniteliğine menu-1, role özniteliğine menu ver. İçine bir <a href="/ayarlar">Ayarlar</a> bağlantısı koy.

Örnek çözümü göster
<body>
  <button aria-expanded="false" aria-controls="menu-1">Menüyü aç</button>
  <div id="menu-1" role="menu">
    <a href="/ayarlar">Ayarlar</a>
  </div>
</body>

Kendini test et

  1. Hangisi bir state'tir?

    • aria-expanded
    • aria-label
    • aria-labelledby
    • aria-roledescription
    Cevabı göster

    aria-expanded — Doğru. aria-expanded bir state'tir; açılır öğenin açık/kapalı durumunu bildirir.

  2. aria-hidden değerini tamamla

    <span aria-hidden="____">✓</span>
    Cevabı göster
    <span aria-hidden="true">✓</span>
  3. Özniteliği anlamıyla eşleştir

    aria-expanded="true"
    Açılır öğe açık
    aria-expanded="false"
    Açılır öğe kapalı
    aria-hidden="true"
    Süs öğe gizli
    aria-disabled="true"
    Öğe devre dışı

Uzman bölümündeki tüm dersler