إمكانية الوصول إلى الجداول: 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
- شغّلوا واجهة
pa11yCLI على عنوان 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- table وtr وtd وth
- بنية thead وtbody وtfoot
- colspan وrowspan للامتداد
- إمكانية الوصول إلى الجداول: scope وsummary وcaption