Part 13 الوصول (Accessibility) FSWD – HTML

🔸 ما هو الوصول (Accessibility)؟
الوصول يعني إتاحة المحتوى لكل المستخدمين، بغض النظر عن قدراتهم الجسدية أو التقنية. الهدف هو ضمان أن الأشخاص ذوي الإعاقة، مثل المكفوفين أو ذوي الإعاقة الحركية أو السمعية، يمكنهم التفاعل مع الموقع بطريقة مريحة.
🔸 1. استخدام السمات aria-*
:
السمات aria-*
(Accessible Rich Internet Applications) هي مجموعة من السمات التي تُستخدم لتحسين الوصول للأشخاص ذوي الإعاقة. يتم استخدام هذه السمات لتوضيح دور العناصر في الصفحة بالنسبة لتقنيات المساعدة مثل قارئات الشاشة.
✅ أهم السمات aria-*
:
-
aria-label
: يتيح لك إضافة تسمية وصفية للعناصر التي قد لا تحتوي على نصوص مرئية. -
aria-hidden
: يُستخدم لإخفاء العناصر عن تقنيات المساعدة (مثل قارئات الشاشة). -
aria-live
: يُستخدم للإشارة إلى محتوى ديناميكي يتغير أثناء التفاعل مع الصفحة. -
aria-role
: يحدد دور العنصر في الصفحة (مثل زر، نافذة منبثقة، إلخ).
✅ مثال على aria-*
:
<img src="logo.png" alt="شعار الموقع الرسمي">
-
في المثال:
-
تم استخدام خاصية
alt
لتوفير وصف لصورة الشعار. إذا كان هناك شخص يستخدم قارئ الشاشة، سيسمع “شعار الموقع الرسمي” بدلاً من عدم وجود نص.
-
✅ النصوص البديلة في حالة صور زخرفية:
-
في بعض الأحيان قد تحتوي الصور على زينة أو زخرفة فقط ولا تحمل أي معلومات مهمة. في هذه الحالة، يمكن ترك
alt=""
ليتم تجاهل الصورة من قبل تقنيات المساعدة
<img src="decorative-image.jpg" alt="">
3. التركيز والتنقل باستخدام الكيبورد:
تسهيل التنقل في الموقع باستخدام الكيبورد مهم جدًا لذوي الإعاقة الحركية أو الأشخاص الذين لا يمكنهم استخدام الفأرة. هناك بعض أفضل الممارسات لجعل التصفح عبر الكيبورد أسهل.
✅ استخدام tabindex
:
-
tabindex
هو السمة التي تحدد الترتيب الذي يمكن للمستخدم التنقل من خلاله باستخدام مفتاح Tab على لوحة المفاتيح. -
tabindex="0"
: يسمح بالانتقال إلى العنصر حسب الترتيب الطبيعي. -
tabindex="-1"
: لا يمكن التفاعل مع العنصر باستخدام مفتاح Tab، ولكن يمكن الوصول إليه باستخدام JavaScript. -
tabindex="1"
: يحدد العنصر الأول في الترتيب الذي يمكن التنقل عبره باستخدام Tab.
✅ مثال على tabindex
<a href="#section1" tabindex="1">الانتقال إلى القسم 1</a>
<a href="#section2" tabindex="2">الانتقال إلى القسم 2</a>
<a href="#section3" tabindex="3">الانتقال إلى القسم 3</a>
-
في المثال:
-
تم استخدام
tabindex
لتحديد ترتيب التنقل بين الروابط باستخدام مفتاح Tab.
-
✅ إضافة السمة accesskey
:
-
accesskey
يُتيح للمستخدمين الانتقال بسرعة إلى العناصر عن طريق استخدام مفتاح مخصص على لوحة المفاتيح
<button accesskey="s">إرسال</button>
-
في المثال:
-
باستخدام
accesskey="s"
، يمكن للمستخدمين الضغط على مفتاح “S” للوصول مباشرة إلى الزر.
-
✅ التفاعل مع العناصر باستخدام الكيبورد:
-
تأكد من أن جميع العناصر القابلة للتفاعل مثل الأزرار و الروابط يمكن التفاعل معها باستخدام لوحة المفاتيح
<button onclick="alert('تم النقر!')" tabindex="0">انقرني</button>
-
في المثال:
-
يمكن التفاعل مع الزر باستخدام لوحة المفاتيح (عن طريق مفتاح Enter أو Space).
-
✅ المثال الكامل لتحسين الوصول باستخدام aria-*
والنصوص البديلة والكيبورد
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>تحسين الوصول (Accessibility)</title>
</head>
<body>
<h1>موقع لتحسين الوصول</h1>
<!-- صورة مع النص البديل -->
<img src="logo.png" alt="شعار الموقع الرسمي">
<!-- زر مع aria-label -->
<button aria-label="إغلاق القائمة" onclick="closeMenu()">X</button>
<!-- روابط قابلة للتنقل باستخدام الكيبورد -->
<nav>
<ul>
<li><a href="#home" tabindex="1">الصفحة الرئيسية</a></li>
<li><a href="#about" tabindex="2">من نحن</a></li>
<li><a href="#contact" tabindex="3">اتصل بنا</a></li>
</ul>
</nav>
<!-- زر مع accesskey -->
<button accesskey="s" onclick="submitForm()">إرسال</button>
</body>
</html>
💡 ملخص الوصول (Accessibility):
السمة | الوصف |
---|---|
aria-label |
توفير تسمية وصفية للعناصر غير النصية |
aria-hidden |
إخفاء العناصر عن تقنيات المساعدة مثل قارئات الشاشة |
aria-live |
إعلام تقنيات المساعدة بالتغيرات الديناميكية |
alt |
النص البديل للصور لتمكين القارئات من فهم الصورة |
tabindex |
تحديد ترتيب التنقل بين العناصر باستخدام الكيبورد |
accesskey |
تخصيص مفتاح للوصول السريع إلى العنصر |