CodeBlanks Logo Icon CodeBlanks

Menu ve menubar

HTML kursu · Uzman · Ders 11/39

ARIA menu ve menubar desenlerini öğrenirsin.

role="menu" ve role="menubar"

role="menu" dikey açılan bir menü içindir; role="menubar" yatay bir menü çubuğu için. Her ikisinde de öğeler role="menuitem", role="menuitemcheckbox" ya da role="menuitemradio" olur.

Bir uygulama menüsü (Dosya, Düzenle gibi) menubar olurken her başlığın altı menu olur. Klavyeyle ok tuşları menüde gezinir; Esc menüyü kapatır. Sıradan site menüleri için <nav> ve <ul> çoğu zaman yeterlidir; ARIA menu rollerini yalnızca uygulama benzeri davranış istendiğinde kullanın.

aria-haspopup ile alt menü

Bir menü öğesi alt menü açıyorsa aria-haspopup ile bildirilir. En açık değer "menu"'dür; ayrıca "true", "listbox", "tree", "grid", "dialog" da yazılabilir. Alt menü açıkken aria-expanded="true" eklenir.

Örnek: <button aria-haspopup="menu" aria-expanded="false">Dosya</button>. Bu düğme tıklanınca bir role="menu" açar. Ekran okuyucu 'alt menü var' diyerek kullanıcıyı hazırlar; klavye kullanıcıları da Alt tuşuyla menüye erişebilir.

menuitemcheckbox ve menuitemradio

Menü öğeleri bazen seçim de taşır. role="menuitemcheckbox" bir öğeyi açıp kapatır; durum aria-checked="true" ya da "false" ile bildirilir. role="menuitemradio" ise tek seçimlik gruplarda kullanılır; bir öğe seçilince diğerleri otomatik kapatılır.

Örnek bir görünüm menüsü: <li role="menuitemcheckbox" aria-checked="true">Karanlık tema</li>. Birden fazla seçenek tek seçimlikse menuitemradio kullanılır; örneğin görünüm boyutu Küçük/Orta/Büyük gibi. Bu roller menu ya da menubar içinde yer alır.

Uygulama Menubar ve alt menü iskeleti

Body içine bir <ul role="menubar"> ekle; içine iki <li role="menuitem"> koy. Birinci menuitem'a aria-haspopup="menu" ve aria-expanded="false" ver; metni Dosya olsun. Bu menuitem'ın içinde bir <ul role="menu"> aç; içinde bir <li role="menuitem">Yeni</li> olsun. İkinci üst menuitem'ın metni Yardım olsun.

Örnek çözümü göster
<body>
  <ul role="menubar">
    <li role="menuitem" aria-haspopup="menu" aria-expanded="false">Dosya
      <ul role="menu">
        <li role="menuitem">Yeni</li>
      </ul>
    </li>
    <li role="menuitem">Yardım</li>
  </ul>
</body>

Kendini test et

  1. Yatay bir menü çubuğu için hangi role kullanılır?

    • menubar
    • menu
    • navigation
    • tablist
    Cevabı göster

    menubar — Doğru. role="menubar" yatay menü çubuğu için kullanılır.

  2. aria-haspopup değerini yaz

    <button aria-haspopup="____" aria-expanded="false">Dosya</button>
    Cevabı göster
    <button aria-haspopup="menu" aria-expanded="false">Dosya</button>
  3. Rolü yeriyle eşleştir

    role="menu"
    Dikey menü
    role="menubar"
    Yatay menü çubuğu
    role="menuitem"
    Menü öğesi
    aria-haspopup="menu"
    Alt menü var

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