Modallarda Odağı ve Klavye Kapanlarını Yönetme
useRef ve olay dinleyicilerini kullanarak erişilebilirlik için odağı açık modalların içinde tutun.
Modallarda Odağı ve Klavye Kapanlarını Yönetme, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. 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, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.
Hoş Geldiniz
Odak Tuzakları Neden Gereklidir
Odak Tuzağı Nedir?
Odaklanabilir Öğeleri Bulma
const FOCUSABLE = [
'a[href]', 'button:not([disabled])',
'input:not([disabled])', 'select', 'textarea',
'[tabindex]:not([tabindex="-1"])'
].join(',');
const focusable = Array.from(
modalRef.current.querySelectorAll(FOCUSABLE)
);Tuzağı Uygulama
function handleTab(e) {
const focusable = /* array of focusable elements */;
const first = focusable[0];
const last = focusable[focusable.length - 1];
if (e.key !== 'Tab') return;
if (e.shiftKey) {
if (document.activeElement === first) {
e.preventDefault(); last.focus();
}
} else {
if (document.activeElement === last) {
e.preventDefault(); first.focus();
}
}
}Açılışta Odağı Taşıma
useEffect(() => {
if (isOpen) {
const first = modalRef.current?.querySelector(FOCUSABLE);
first?.focus();
}
}, [isOpen]);Kapanışta Odağı Geri Yükleme
const previousFocus = useRef(null);
useEffect(() => {
if (isOpen) {
previousFocus.current = document.activeElement;
} else {
previousFocus.current?.focus();
}
}, [isOpen]);focus-trap-react Kitaplığını Kullanma
import FocusTrap from 'focus-trap-react';
{isOpen && (
<FocusTrap>
<div role="dialog" aria-modal="true">
{children}
</div>
</FocusTrap>
)}Modallar için ARIA Öznitelikleri
<div
role="dialog"
aria-modal="true"
aria-labelledby="modal-title"
>
<h2 id="modal-title">Confirm Delete</h2>
...
</div>Arka Plan için Inert Özniteliği
useEffect(() => {
const root = document.getElementById('root');
if (isOpen) root.setAttribute('inert', '');
else root.removeAttribute('inert');
}, [isOpen]);Kısa Kontrol
Özet
Sırada
Sıkça Sorulan Sorular
“Modallarda Odağı ve Klavye Kapanlarını Yönetme” dersi ücretsiz mi?
Evet — “Modallarda Odağı ve Klavye Kapanlarını Yönetme” 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 React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.
“Modallarda Odağı ve Klavye Kapanlarını Yönetme” dersinde ne öğreneceğim?
useRef ve olay dinleyicilerini kullanarak erişilebilirlik için odağı açık modalların içinde tutun. React 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.
React Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te React 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 3. dersidir.
“Modallarda Odağı ve Klavye Kapanlarını Yönetme” 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 React Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her React 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
- React Portalları Nedir
- Portallarla Modal Bileşeni Oluşturma
- Modallarda Odağı ve Klavye Kapanlarını Yönetme
- Portallarla İpuçları ve Açılır Menüler