جاري التحميل...
جاري التحميل...
جعل موقعك متاحًا للجميع
إمكانية الوصول (تُعرف أيضاً بـ A11y — عدد الحروف بين A و y هو 11) هي ممارسة تصميم المواقع والتطبيقات بحيث تكون متاحة للجميع، بغض النظر عن قدراتهم أو إعاقاتهم.
إمكانية الوصول تضمن أن جميع المستخدمين — بمن فيهم ذوي الإعاقة — يمكنهم التفاعل مع موقعك واستخدامه بفعالية. هذه ليست "رفاهية" بل مسؤولية أخلاقية وقانونية في كثير من البلدان.
💡 تشبيه بسيط:
تخيّل أنك تبني مبنى. هل ستوفّر فقط الدرج؟ لا، تحتاج مصعداً ومنحدرات للكراسي المتحركة وبطاقات برايل. إمكانية الوصول هي نفس الشيء لكن للمواقع — جعلها متاحة للجميع.
الأرقام تتحدث: حوالي 15-20% من سكان العالم يعانون من شكل من أشكال الإعاقة. تجاهلهم يعني فقدان مجموعة كبيرة من المستخدمين والعملاء المحتملين.
إمكانية الوصول ليست فقط للمكفوفين، بل لجميع المجموعات:
كل صورة يجب أن تحمل نصاً بديلاً يصف محتواها. هذا النص يقرأه قارئ الشاشة و يظهر عند فشل تحميل الصورة.
كل حقل إدخال يجب أن يكون له تسمية واضحة تربطه بالوصف שלו.
استخدم العناوين بترتيب هرمي صحيح (h1 ثم h2 ثم h3) لبناء هيكل واضح للمحتوى.
تأكد من أن النص يكون مقروءاً على الخلفية. النسبة الموصى بها هي 4.5:1 على الأقل.
يجب أن تعمل الصفحة بشكل صحيح عند تكبير النص إلى 200%.
سمات ARIA (Accessible Rich Internet Applications) تُستخدم لتحسين إمكانية الوصول للعناصر التفاعلية:
role: يحدد دور العنصر (مثل role="button"، role="navigation")aria-label: يعطي العنصر اسماً م读不出来的 (يُستخدم عندما لا يوجد نص مرئي)aria-describedby: يربط العنصر بوصف إضافيaria-hidden: يخفي العنصر عن قارئ الشاشة💡 ملاحظة مهمة:
استخدم سمات ARIA فقط عندما لا توجد بدائل HTML أصلية. مثلاً، استخدم <button> بدلاً من <div role="button">.
لماذا نص alt مهم للصور؟
أنشئ صفحة HTML تتضمن: 1. صورة بنص alt وصفي، 2. نموذج بـ labels لكل حقل، 3. تسلسل عنوان صحيح (h1 → h2 → h3)، 4. نص ب alta contrast ratio، 5. عناصر قابلة للوصول بلوحة المفاتيح.
الحل:
<!-- الحل المتوقع -->
<a href="#login-form" class="skip-link">
انتقل لنموذج تسجيل الدخول
</a>
<main>
<article>
<header>
<h1>تسجيل الدخول</h1>
</header>
<form id="login-form" aria-labelledby="form-title">
<h2 id="form-title" class="sr-only">
نموذج تسجيل الدخول
</h2>
<div>
<label for="login-email">
البريد الإلكتروني
<span aria-hidden="true">*</span>
</label>
<input
type="email"
id="login-email"
name="email"
aria-required="true"
autocomplete="email"
/>
</div>
<div>
<label for="login-password">
كلمة المرور
<span aria-hidden="true">*</span>
</label>
<input
type="password"
id="login-password"
name="password"
aria-required="true"
autocomplete="current-password"
/>
</div>
<div>
<input type="checkbox" id="remember" />
<label for="remember">تذكرني</label>
</div>
<button type="submit">تسجيل الدخول</button>
<!-- رسالة خطأ -->
<div role="alert" aria-live="assertive"
id="error-message" style="color: red">
البريد أو كلمة المرور غير صحيحة
</div>
</form>
<p>
ليس لديك حساب؟
<a href="/register">سجّل الآن</a>
</p>
</article>
</main>أنشئ نموذج تسجيل دخول متوافق مع إمكانية الوصول يتضمن:
<label> لكل حقل إدخالaria-required للحقول الإجباريةrole="alert"💡 اختبر نموذجك بالتنقل بلوحة المفاتيح فقط (بدون ماوس). كل حقل يجب أن يكون قابلاً للوصول وله label مرئي. استخدم <code>aria-describedby</code> لربط نص المساعدة بالحقول.
أساسيات إمكانية الوصول:
alt<label>روابط التخطي لمستخدمي لوحة المفاتيح.sr-only لنص قارئ الشاشةالتنقل بلوحة المفاتيح:
tabindex="0" - إضافة لتسلسل Tab الافتراضيtabindex="-1" - وصول программي فقطسمات ARIA الشائعة:
role="alert" - تنبيه عاجلrole="status" - تحديث غير عاجلrole="button" - زر مخصصrole="navigation" - قسم التنقلrole="main" - المحتوى الرئيسيaria-label - اسم مسموعaria-describedby - وصف إضافيaria-required - حقل إجباريaria-invalid - بيانات غير صالحةaria-live - تحديثات مباشرةaria-hidden - مخفي عن قارئ الشاشةالقاعدة الذهبية لـ ARIA: