0Pricing
HTML Academy · Ders

aria-selected ve Sekme Kalıpları

Klavye ile erişilebilen sekme arayüzleri uygulayın

aria-selected ve Sekme Kalıpları, CoddyKit'te ücretsiz bir HTML Academy dersidir. Bu, 4 dersinin 2. 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.

Sekme Kalıbına Genel Bakış

Bir tabs arayüzü üç ARIA bileşenine sahiptir:

  • role="tablist" — tüm tabs öğeleri için container
  • role="tab" — tek bir sekme düğmesi
  • role="tabpanel" — her sekmenin içerik paneli

ARIA Sekme Yapısı

Erişilebilir sekme işaretlemesinin tamamı:

<div role="tablist" aria-label="Account Settings">
  <button role="tab" id="tab-1" aria-selected="true"
          aria-controls="panel-1">Profile</button>
  <button role="tab" id="tab-2" aria-selected="false"
          aria-controls="panel-2" tabindex="-1">Security</button>
  <button role="tab" id="tab-3" aria-selected="false"
          aria-controls="panel-3" tabindex="-1">Notifications</button>
</div>

<div id="panel-1" role="tabpanel" aria-labelledby="tab-1">
  Profile content...
</div>
<div id="panel-2" role="tabpanel" aria-labelledby="tab-2" hidden>
  Security content...
</div>

aria-selected

aria-selected, bir seçim bağlamında o anda etkin olan öğeyi belirtir:

<!-- In a tablist: -->
<button role="tab" aria-selected="true">Active Tab</button>
<button role="tab" aria-selected="false">Other Tab</button>

<!-- In a listbox: -->
<ul role="listbox">
  <li role="option" aria-selected="false">Option 1</li>
  <li role="option" aria-selected="true">Option 2</li>
</ul>

Sekmeler İçin Klavye Kalıbı

ARIA kalıpları sekmeler için belirli klavye davranışları tanımlar:

  • Tab — focus'u tablist içine, seçili sekmeye taşır
  • Ok tuşları — sekmeler arasında sırayla geçer
  • Tekrar Tab — focus'u tablist dışına, etkin panele taşır
  • Home — ilk sekmeye gider
  • End — son sekmeye gider

Sekmeler İçin Klavye Uygulaması

Ok tuşlarını kullanarak sekmelerde klavye ile gezinme:

const tabs = document.querySelectorAll('[role="tab"]');

tabs.forEach((tab, i) => {
  tab.addEventListener('keydown', (e) => {
    let target;
    if (e.key === 'ArrowRight') target = tabs[(i + 1) % tabs.length];
    if (e.key === 'ArrowLeft') target = tabs[(i - 1 + tabs.length) % tabs.length];
    if (e.key === 'Home') target = tabs[0];
    if (e.key === 'End') target = tabs[tabs.length - 1];

    if (target) {
      activateTab(target);
      target.focus();
    }
  });
});

activateTab İşlevi

Sekmeleri değiştiren ve ARIA'yı güncelleyen işlev:

function activateTab(selectedTab) {
  // Deactivate all tabs:
  document.querySelectorAll('[role="tab"]').forEach(tab => {
    tab.setAttribute('aria-selected', 'false');
    tab.setAttribute('tabindex', '-1');
    document.getElementById(tab.getAttribute('aria-controls')).hidden = true;
  });

  // Activate selected tab:
  selectedTab.setAttribute('aria-selected', 'true');
  selectedTab.setAttribute('tabindex', '0');
  document.getElementById(selectedTab.getAttribute('aria-controls')).hidden = false;
}

Gezinen tabindex Kalıbı

Sekme grupları, sekmelerden birini sekme sıralamasında tutmak için gezinen tabindex kullanır:

<!-- Only the selected tab has tabindex=0 -->
<button role="tab" aria-selected="true" tabindex="0">Active</button>
<button role="tab" aria-selected="false" tabindex="-1">Other</button>
<button role="tab" aria-selected="false" tabindex="-1">Another</button>

<!-- When user arrows to a new tab:
     1. Set new tab tabindex=0
     2. Set old tab tabindex=-1
     3. Focus new tab -->

aria-selected ve aria-checked Karşılaştırması

aria-selected ile aria-checked farklı bağlamlarda kullanılır:

  • aria-selected — seçim araçlarında kullanılır: sekmeler, listbox içindeki seçenekler, ağaç içindeki öğeler
  • aria-checked — işaretlenebilir öğelerde kullanılır: onay kutuları, onay işaretli menü öğeleri

Sekme Panelinde Focus

Bir sekme etkinleştirildiğinde panel görünür olur, ancak focus sekmenin üzerinde kalır:

// Users can then Tab to move into the panel content
// The panel should not automatically receive focus

// Exception: if the panel is very long, consider moving focus
// to the panel heading for long-form content tabs

// Panel should have tabindex=-1 for programmatic focus:
<div id="panel-1" role="tabpanel" aria-labelledby="tab-1" tabindex="-1">

Otomatik ve Manuel Etkinleştirme

İki sekme etkinleştirme modeli vardır:

  • Otomatik — kullanıcı ok tuşlarıyla sekmeler arasında geçerken sekmeler etkinleşir (daha basit kullanıcı deneyimi)
  • Manuel — kullanıcı ok tuşlarıyla geçtikten sonra etkinleştirmek için Enter veya Space tuşuna basmalıdır (sekme içeriğinin yüklenmesi gerektiğinde daha iyi)

Erişilebilir Sekme Biçimlendirmesi

Erişilebilir sekme seçili durumu için CSS:

[role="tab"] {
  border-bottom: 3px solid transparent;
  padding: 0.75rem 1rem;
  cursor: pointer;
}

[role="tab"][aria-selected="true"] {
  border-bottom-color: #0070f3;
  font-weight: bold;
}

/* :focus-visible for keyboard users: */
[role="tab"]:focus-visible {
  outline: 2px solid #0070f3;
  outline-offset: -2px;
}

Kısa Kontrol

Bir sekme listesinde klavye ile gezinme nasıl çalışmalıdır?

Özet: aria-selected ve Sekmeler

Sekme kalıbı için temel bilgiler:

  • tablist → tab (aria-selected) → tabpanel (aria-labelledby)
  • Ok tuşları sekmeler arasında gezinir; Tab panele girer
  • Gezinen tabindex: yalnızca etkin sekmede tabindex=0 bulunur
  • Etkin sekmede aria-selected="true" bulunur
  • Etkin olmayan paneller hidden özniteliğini kullanır

Sıkça Sorulan Sorular

“aria-selected ve Sekme Kalıpları” dersi ücretsiz mi?

Evet — “aria-selected ve Sekme Kalıpları” 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.

“aria-selected ve Sekme Kalıpları” dersinde ne öğreneceğim?

Klavye ile erişilebilen sekme arayüzleri uygulayın 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 2. dersidir.

“aria-selected ve Sekme Kalıpları” 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