0Pricing
HTML Academy · درس

إمكانية الوصول إلى الجداول: scope وsummary وcaption

أضف عناوين توضيحية وسمات scope لدعم قارئات الشاشة

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

لماذا تهم إمكانية الوصول إلى الجداول؟

يتنقل مستخدمو قارئات الشاشة في جداول البيانات خليةً تلو الأخرى — ويحتاجون إلى سياق الرأس لكل خلية بيانات يقرؤونها.

  • من دون ترميز مناسب، تقرأ قارئات الشاشة القيم الخام فقط من دون سياق العمود أو الصف
  • تجعل الجداول الميسّرة البيانات مفهومة للجميع

العنصر caption

يوفّر <caption> عنوانًا ظاهرًا للجدول:

<table>
  <caption>Q4 2024 Product Sales by Region</caption>
  <thead>...</thead>
  <tbody>...</tbody>
</table>
<!-- caption is the first child of table -->
<!-- Screen readers announce it when entering the table -->
<!-- Helps all users understand the table's purpose at a glance -->

تنسيق caption

نسّقوا caption وموضعه باستخدام CSS:

caption {
  caption-side: bottom;  /* or top (default) */
  font-style: italic;
  font-size: 0.875rem;
  color: #666;
  text-align: left;
  padding: 0.5rem 0;
}

السمة scope على th

تخبر السمة scope قارئات الشاشة بالخلايا التي ينطبق عليها الرأس:

<thead>
  <tr>
    <th scope="col">Name</th>      <!-- header for a column -->
    <th scope="col">Score</th>
    <th scope="col">Grade</th>
  </tr>
</thead>
<tbody>
  <tr>
    <th scope="row">Alice</th>    <!-- header for a row -->
    <td>95</td>
    <td>A</td>
  </tr>
</tbody>

قيم scope

قيم السمة scope:

  • col — ينطبق الرأس على الخلايا الموجودة في العمود نفسه
  • row — ينطبق الرأس على الخلايا الموجودة في الصف نفسه
  • colgroup — ينطبق الرأس على الخلايا الموجودة في مجموعة أعمدة
  • rowgroup — ينطبق الرأس على الخلايا الموجودة في مجموعة صفوف (tbody/thead)

scope للرؤوس المعقدة

تستخدم الرؤوس الممتدة scope من نوع colgroup أو rowgroup:

<thead>
  <tr>
    <th rowspan="2" scope="col">Name</th>
    <th colspan="2" scope="colgroup">2024</th>   <!-- colgroup -->
  </tr>
  <tr>
    <th scope="col">Q1</th>
    <th scope="col">Q2</th>
  </tr>
</thead>

السمة headers على td

بالنسبة إلى الجداول المعقدة جدًا، استخدموا headers لربط الخلايا برؤوسها صراحةً:

<thead>
  <tr>
    <th id="hname">Name</th>
    <th id="hq1">Q1</th>
    <th id="hq2">Q2</th>
  </tr>
</thead>
<tbody>
  <tr>
    <th id="ralice" headers="hname">Alice</th>
    <td headers="hq1 ralice">95</td>
    <td headers="hq2 ralice">88</td>
  </tr>
</tbody>

متى نستخدم scope مقابل headers

الإرشادات:

  • الجداول البسيطة ذات الرؤوس في صف واحد ← استخدموا scope="col" وscope="row"
  • الرؤوس الممتدة المعقدة ← استخدموا السمة headers مع مراجع ID
  • يتطلب WCAG 1.3.1 ربط رؤوس الجدول بخلايا البيانات الخاصة بها برمجيًا

aria-label على table

عندما لا يكون caption مناسبًا بصريًا، استخدموا aria-label:

<!-- caption with visually-hidden class -->
<table aria-label="Q4 2024 Product Sales by Region">
  ...
</table>
<!-- Or use aria-labelledby to reference a heading -->
<h2 id="table-title">Sales Data</h2>
<table aria-labelledby="table-title">...</table>

اختبار إمكانية الوصول إلى الجداول

كيفية التحقق من إمكانية الوصول إلى جدولكم:

  • استخدموا لوحة Tables في قارئ الشاشة (VoiceOver وNVDA)
  • ثبّتوا إضافة المتصفح axe DevTools
  • شغّلوا واجهة pa11y CLI على عنوان URL لصفحتكم
  • يتحقق W3C Markup Validator من غياب caption

السمة summary (مهملة)

كانت السمة summary تُستخدم لقارئات الشاشة مع الجداول المعقدة — لكنها مهملة الآن في HTML5:

<!-- Old HTML 4.01 — do not use: -->
<table summary="This table shows quarterly sales...">

<!-- Modern HTML5 replacement: -->
<table>
  <caption>This table shows quarterly sales...</caption>
</table>
<!-- Or: aria-describedby to a paragraph -->

قائمة التحقق من إمكانية الوصول إلى الجداول

قائمة تحقق لجداول البيانات:

  • استخدموا <caption> لتسمية الجدول
  • استخدموا <th> لجميع خلايا الرأس
  • أضيفوا scope إلى جميع عناصر <th>
  • استخدموا <thead> و<tbody> و<tfoot> للبنية
  • بالنسبة إلى الجداول المعقدة، استخدموا id + headers

تحقق سريع

ما قيمة scope التي ينبغي استخدامها مع th الذي يمثل رأس عمود كامل؟

مراجعة: إمكانية الوصول إلى الجداول

أساسيات الجداول الميسّرة:

  • <caption> — عنوان ظاهر للجدول تعلن عنه قارئات الشاشة
  • scope="col" — رأس عمود
  • scope="row" — رأس صف
  • scope="colgroup/rowgroup" — رؤوس ممتدة
  • id + headers — للرؤوس المعقدة متعددة المستويات
  • اختبروا باستخدام axe أو pa11y أو VoiceOver

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

هل درس «إمكانية الوصول إلى الجداول: scope وsummary وcaption» مجاني؟

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

ماذا ستتعلم في «إمكانية الوصول إلى الجداول: scope وsummary وcaption»؟

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

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

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

كم من الوقت يستغرق درس «إمكانية الوصول إلى الجداول: scope وsummary وcaption»؟

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

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

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

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

  1. table وtr وtd وth
  2. بنية thead وtbody وtfoot
  3. colspan وrowspan للامتداد
  4. إمكانية الوصول إلى الجداول: scope وsummary وcaption
← العودة إلى HTML Academy