HTML Academy · Ders

Geçişler için aria-expanded ve aria-controls

ARIA ile erişilebilir açılır içerik ve akordeon bileşenleri oluşturun

1. ders / 413 adım

Geçişler için aria-expanded ve aria-controls, CoddyKit'te ücretsiz bir HTML Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, HTML Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. HTML Academy kursu toplamda 4 dersten oluşur.

Açılır Kapanır Denetimlere Genel Bakış

Açılır kapanır denetimler (akordeonlar, açılır listeler, menüler), açık veya kapalı durumlarını bildirmek için ARIA gerektirir:

  • aria-expanded — bir denetimin açık veya kapalı durumunu belirtir
  • aria-controls — denetimi, yönettiği öğeye bağlar

aria-expanded

aria-expanded, denetlenen bir öğenin genişletilmiş mi yoksa daraltılmış mı olduğunu bildirir:

<button aria-expanded="false" aria-controls="menu">
  Menu
</button>
<ul id="menu" hidden>
  <li><a href="/">Home</a></li>
</ul>
<script>
btn.addEventListener('click', () => {
  const expanded = btn.getAttribute('aria-expanded') === 'true';
  btn.setAttribute('aria-expanded', !expanded);
  menu.hidden = expanded;
});
</script>

aria-controls

aria-controls, denetlenen öğenin id değerine başvurur:

<button
  id="details-btn"
  aria-expanded="false"
  aria-controls="details-panel"
>
  Show Details
</button>
<div id="details-panel" hidden>
  <p>Additional details go here...</p>
</div>
<!-- Screen reader: 'Show Details, button, collapsed'
     After click: 'Show Details, button, expanded' -->

Akordeon Kalıbı

aria-expanded kullanan erişilebilir akordeon:

<div class="accordion">
  <h3>
    <button
      aria-expanded="false"
      aria-controls="panel-1"
    >Section 1</button>
  </h3>
  <div id="panel-1" hidden>
    <p>Panel 1 content...</p>
  </div>

  <h3>
    <button
      aria-expanded="false"
      aria-controls="panel-2"
    >Section 2</button>
  </h3>
  <div id="panel-2" hidden>
    <p>Panel 2 content...</p>
  </div>
</div>

Açılır Menü Kalıbı

Erişilebilir gezinme açılır menüsü:

<nav>
  <button
    aria-expanded="false"
    aria-haspopup="true"
    aria-controls="products-menu"
  >Products</button>

  <ul id="products-menu" role="menu" hidden>
    <li role="menuitem"><a href="/widget">Widget</a></li>
    <li role="menuitem"><a href="/gadget">Gadget</a></li>
  </ul>
</nav>

aria-haspopup

aria-haspopup, denetimi etkinleştirmenin bir açılır pencere açacağını belirtir:

<button aria-haspopup="menu">File</button>
<!-- Values: true (menu), menu, listbox, tree, grid, dialog -->
<!-- Screen reader: 'File, button, has popup' -->

<!-- Note: aria-haspopup="true" is equivalent to "menu" -->
<!-- Use specific values when the popup type matters -->

Details/Summary ARIA Ek Bilgileri

Yerleşik details/summary öğeleri genişleme durumunu zaten bildirir; ARIA gerekmez:

<details>
  <summary>FAQ Question</summary>
  <p>Answer goes here.</p>
</details>
<!-- Browser automatically provides aria-expanded
     and the disclosure widget semantics -->
<!-- No need to add aria-expanded manually to summary -->

aria-expanded Durumu İçin CSS

aria-expanded özelliğini bir CSS kancası olarak kullanınız:

/* Panel hidden by default: */
[aria-controls] + [hidden] {
  display: none;
}

/* Or using aria-expanded on the button: */
[aria-expanded="false"] + .panel {
  display: none;
}

[aria-expanded="true"] + .panel {
  display: block;
}

/* Rotate arrow icon: */
[aria-expanded="true"] .arrow {
  transform: rotate(180deg);
}

Açılır Kapanır Denetimler İçin Klavye Gereksinimleri

Açılır kapanır bileşenler klavye etkileşimini desteklemelidir:

  • Enter veya Space — açılır kapanır düğmeyi etkinleştirir
  • Escape — bir açılır listeyi veya menüyü kapatır
  • Ok tuşları — açık bir menü içinde gezinir

Açılır Kapanır Denetimden Sonra Focus Yönetimi

İçeriği açıp kapattıktan sonra focus'u uygun şekilde yönetiniz:

// Accordion: focus stays on the button (usually OK)
// Dropdown menu: move focus to first menu item on open

button.addEventListener('click', () => {
  const expanded = button.getAttribute('aria-expanded') === 'true';
  button.setAttribute('aria-expanded', !expanded);
  panel.hidden = expanded;

  if (!expanded) {
    // Opening a dropdown: focus first item
    panel.querySelector('a, button, [tabindex]')?.focus();
  }
});

Mobil Kullanım Hususları

Mobil cihazlardaki açılır kapanır bileşenler:

  • Dokunma target'ları en az 44×44px olmalıdır (WCAG 2.5.5)
  • aria-expanded, mobil ekran okuyucular tarafından desteklenir (iOS VoiceOver, Android TalkBack)
  • Kaydırma hareketleri klavye veya düğmeyle etkinleştirmenin yerini tutmaz

Kısa Kontrol

Denetlenen bölüm gizlendiğinde aria-expanded hangi değere sahip olmalıdır?

Özet: aria-expanded ve aria-controls

Açılır kapanır denetimler için ARIA temel bilgileri:

  • aria-expanded="true/false" — denetimin açık veya kapalı durumu
  • aria-controls="id" — denetimi paneline bağlar
  • aria-haspopup — bir açılır pencerenin kullanılabilir olduğunu belirtir
  • Her açılıp kapanmada aria-expanded değerini güncelleyiniz
  • Focus'u açılan menünün içine taşıyınız; kapatıldığında tetikleyiciye geri döndürünüz
Başlamak ücretsiz

Yapay zeka eğitmeniyle HTML öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
40
Dersler
159

Sıkça Sorulan Sorular

“Geçişler için aria-expanded ve aria-controls” dersi ücretsiz mi?

Evet — “Geçişler için aria-expanded ve aria-controls” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve HTML Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. HTML Academy kursu toplamda 4 dersten oluşur.

“Geçişler için aria-expanded ve aria-controls” dersinde ne öğreneceğim?

ARIA ile erişilebilir açılır içerik ve akordeon bileşenleri oluşturun HTML Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

HTML Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te HTML Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Geçişler için aria-expanded ve aria-controls” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu HTML Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her HTML Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Geçişler için aria-expanded ve aria-controls
  2. aria-selected ve Sekme Kalıpları
  3. Canlı Bölgeler: aria-live aria-atomic aria-relevant
  4. Ekran Okuyucularla Test Etme
← HTML Academy Sayfasına Dön