0Pricing
HTML Academy · درس

التنقل باستخدام لوحة المفاتيح وترتيب التركيز

ضمان إمكانية الوصول إلى جميع الوظائف عبر لوحة المفاتيح وبترتيب منطقي

التنقل باستخدام لوحة المفاتيح وترتيب التركيز درس مجاني في HTML Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في HTML Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة HTML Academy 4 دروس في المجموع.

من يحتاج إلى التنقّل باستخدام لوحة المفاتيح؟

يعتمد العديد من المستخدمين على التنقّل باستخدام لوحة المفاتيح:

  • الإعاقات الحركية — لا يستطيعون استخدام الفأرة
  • المستخدمون المحترفون — يفضّلون اختصارات لوحة المفاتيح
  • مستخدمو قارئات الشاشة — يتنقّلون بالكامل باستخدام لوحة المفاتيح
  • مستخدمو الوصول بالمفاتيح — يستخدمون أزرارًا تحاكي ضغطات المفاتيح

العناصر القابلة للتركيز طبيعيًا

عناصر HTML التالية قابلة للتركيز باستخدام لوحة المفاتيح افتراضيًا:

  • <a href> — ينقل Tab التركيز إليها، ويفعّلها Enter
  • <button> — ينقل Tab التركيز إليها، ويفعّلها Enter/Space
  • <input> و<textarea> و<select> — ينقل Tab التركيز إليها
  • <details> / <summary> — Tab + Enter

ترتيب التنقّل باستخدام Tab

يحدّد المتصفح ترتيب التنقّل باستخدام Tab وفقًا لما يلي:

  • ترتيب DOM افتراضيًا — ينتقل Tab بين العناصر بالترتيب الذي تظهر به في HTML
  • قيم tabindex الموجبة — ينتقل Tab إلى هذه العناصر أولًا بترتيب تصاعدي
  • tabindex="0" — يُضاف إلى ترتيب التنقّل الطبيعي في موضعه ضمن DOM
  • tabindex="-1" — لا يُدرج في ترتيب التنقّل؛ ولا يمكن التركيز عليه إلا باستخدام برنامج نصي

ترتيب Tab الطبيعي = ترتيب DOM

ينبغي أن يتطابق ترتيب قراءة HTML مع التخطيط المرئي:

<!-- GOOD: DOM order matches visual left-to-right, top-to-bottom: -->
<header>...</header>
<nav>...</nav>
<main>...</main>
<aside>...</aside>
<footer>...</footer>

<!-- BAD: visually reordered with CSS, DOM order broken:
     CSS flexbox order: doesn't affect tab order!
     Screen readers and keyboard users follow DOM order, not CSS order -->

مؤشر التركيز المرئي

ينص WCAG 2.4.7 (المستوى AA) على وجوب ظهور تركيز لوحة المفاتيح:

/* NEVER do this: */
* { outline: none; }           /* removes all focus outlines */

/* GOOD: styled focus indicator: */
:focus-visible {
  outline: 2px solid #0070f3;
  outline-offset: 3px;
  border-radius: 4px;
}

/* :focus-visible shows outline for keyboard only
   mouse clicks don't trigger :focus-visible -->
/* But outline: none with :focus (not :focus-visible) hides for both */

أنماط التركيز المخصّصة

أنماط التركيز في نظام التصميم:

/* Replace outline with box-shadow for rounded elements: */
button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 112, 243, 0.4);
}

/* Always ensure 3:1 contrast ratio between
   focus indicator and background (WCAG 2.4.11 Level AA) */

ترتيب التركيز المنطقي

ينبغي أن يكون ترتيب التركيز منطقيًا ومتوقعًا — وفقًا لـ WCAG 2.4.3 (المستوى A):

<!-- BAD: focus order jumps around the page -->
<!-- First: footer link (tabindex=5) -->
<!-- Then: sidebar (tabindex=3) -->
<!-- Then: header nav (tabindex=1) -->

<!-- GOOD: natural DOM order matches reading flow: -->
<!-- Header → Nav → Main Content → Sidebar → Footer -->

روابط التخطي

تتيح روابط التخطي لمستخدمي لوحة المفاتيح تجاوز التنقّل المتكرر:

<a href="#main-content" class="skip-link">Skip to main content</a>

<!-- Visually hidden until focused: -->
.skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  background: #0070f3;
  color: white;
  padding: 0.75rem;
  z-index: 9999;
}
.skip-link:focus {
  top: 0;  /* visible when focused -->
}

حصر التركيز في النوافذ المنبثقة

يجب أن تحصر النوافذ المنبثقة التركيز أثناء فتحها:

<!-- When modal opens:
1. Move focus to modal container or first interactive element
2. Tab stays within modal
3. When modal closes, return focus to the trigger button
-->

const modal = document.getElementById('modal');
const trigger = document.getElementById('open-modal');

function openModal() {
  modal.removeAttribute('hidden');
  modal.querySelector('button, [tabindex="0"]').focus();
}

function closeModal() {
  modal.setAttribute('hidden', '');
  trigger.focus();
}

اختصارات لوحة المفاتيح

نفّذوا اختصارات لوحة المفاتيح باستخدام مستمعات الأحداث:

document.addEventListener('keydown', (e) => {
  // Close modal on Escape:
  if (e.key === 'Escape') closeModal();

  // Navigate tabs with arrow keys:
  if (e.key === 'ArrowRight') focusNextTab();
  if (e.key === 'ArrowLeft') focusPrevTab();

  // Submit form on Enter (default behavior in inputs):
  // Nothing needed — browser handles this
});

اختبار التنقّل باستخدام لوحة المفاتيح

كيفية اختبار إتاحة الوصول باستخدام لوحة المفاتيح:

  1. أبعدوا الفأرة واستخدموا لوحة المفاتيح فقط
  2. اضغطوا على Tab — هل يمكنكم الوصول إلى كل عنصر تفاعلي؟
  3. هل يظل مؤشر التركيز مرئيًا دائمًا؟
  4. هل يبدو ترتيب التنقّل باستخدام Tab منطقيًا؟
  5. هل يمكنكم استخدام جميع الميزات (النماذج والنوافذ المنبثقة والقوائم المنسدلة) دون فأرة؟
  6. اضغطوا على Shift+Tab للتنقّل إلى الخلف

تحقق سريع

ما خاصية CSS التي يجب ألا تزيلوها من جميع العناصر من أجل إتاحة الوصول باستخدام لوحة المفاتيح؟

مراجعة: التنقّل باستخدام لوحة المفاتيح

أساسيات إتاحة الوصول باستخدام لوحة المفاتيح:

  • يجب أن يكون الوصول إلى جميع العناصر التفاعلية ممكنًا باستخدام Tab
  • ترتيب DOM = ترتيب Tab — طابقوا التخطيط المرئي
  • لا تزيلوا مخططات التركيز أبدًا — استخدموا :focus-visible للأنماط المخصّصة
  • تتيح روابط التخطي تجاوز التنقّل المتكرر
  • احصروا التركيز في النوافذ المنبثقة؛ وأعيدوا التركيز عند الإغلاق
  • اختبروا الموقع باستخدام لوحة المفاتيح فقط

الأسئلة الشائعة

هل درس «التنقل باستخدام لوحة المفاتيح وترتيب التركيز» مجاني؟

نعم — نص درس «التنقل باستخدام لوحة المفاتيح وترتيب التركيز» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة HTML Academy، انتقل إلى CoddyKit PRO. تتضمن دورة HTML Academy 4 دروس في المجموع.

ماذا ستتعلم في «التنقل باستخدام لوحة المفاتيح وترتيب التركيز»؟

ضمان إمكانية الوصول إلى جميع الوظائف عبر لوحة المفاتيح وبترتيب منطقي تتمرن على HTML Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ HTML Academy؟

لا تُشترط خبرة سابقة. HTML Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «التنقل باستخدام لوحة المفاتيح وترتيب التركيز»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس HTML Academy هذا؟

نعم. كل درس في HTML Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أهمية إمكانية الوصول ومستويات WCAG
  2. تسلسل العناوين لقارئات الشاشة
  3. النص البديل للصور: متى وكيف
  4. التنقل باستخدام لوحة المفاتيح وترتيب التركيز
← العودة إلى HTML Academy