العربية

تعلم كيفية جعل مواقعك الإلكترونية متاحة للجميع من خلال تطبيق إرشادات WCAG في CSS الخاص بك. أنشئ تصميمات شاملة لجمهور عالمي.

إمكانية الوصول في CSS: دليل عملي للامتثال لمعايير WCAG

في عالم اليوم الرقمي المتزايد، لم يعد ضمان إمكانية الوصول إلى الويب مجرد ممارسة فضلى، بل أصبح ضرورة أخلاقية. توفر المواقع الإلكترونية المتاحة وصولاً وفرصاً متكافئة لجميع المستخدمين، بغض النظر عن قدراتهم. يركز هذا الدليل على كيفية الاستفادة من CSS لإنشاء تجارب ويب متاحة وشاملة، مع الالتزام بإرشادات إتاحة محتوى الويب (WCAG).

ما هي إرشادات WCAG ولماذا هي مهمة؟

إرشادات إتاحة محتوى الويب (WCAG) هي مجموعة من التوصيات المعترف بها دولياً لجعل محتوى الويب أكثر إتاحة للأشخاص ذوي الإعاقة. توفر WCAG، التي طورها اتحاد شبكة الويب العالمية (W3C)، معياراً مشتركاً لإمكانية الوصول إلى الويب يلبي احتياجات الأفراد والمؤسسات والحكومات على الصعيد الدولي. تعتبر WCAG مهمة لأنها:

مبادئ WCAG: POUR

تستند WCAG إلى أربعة مبادئ أساسية، غالباً ما يتم تذكرها بالاختصار POUR:

تقنيات CSS لإمكانية الوصول

تلعب CSS دوراً حاسماً في تحقيق الامتثال لمعايير WCAG. إليك بعض تقنيات CSS الرئيسية التي يجب أخذها في الاعتبار:

1. HTML الدلالي و CSS

استخدام عناصر HTML الدلالية بشكل صحيح يمنح معنى وهيكلاً لمحتواك، مما يجعله أكثر إتاحة لقارئات الشاشة والتقنيات المساعدة الأخرى. ثم تقوم CSS بتعزيز عرض هذه العناصر الدلالية.

مثال:

بدلاً من استخدام عناصر <div> العامة لكل شيء، استخدم عناصر دلالية مثل <article>, <nav>, <aside>, <header>, <footer>, <main>, <section>، وعلامات العناوين (<h1> إلى <h6>).

HTML:

<article> <h2>Article Title</h2> <p>Article content goes here.</p> </article>

CSS:

article { margin-bottom: 20px; } h2 { font-size: 1.5em; font-weight: bold; margin-bottom: 10px; }

باستخدام <article> و <h2>، فإنك توفر معنى دلالياً للمحتوى، مما يساعد التقنيات المساعدة على فهم الهيكل والسياق.

2. اللون والتباين

تأكد من وجود تباين لوني كافٍ بين النص وألوان الخلفية لجعل المحتوى قابلاً للقراءة للمستخدمين الذين يعانون من ضعف البصر أو عمى الألوان. يتطلب المستوى AA من WCAG 2.1 نسبة تباين لا تقل عن 4.5:1 للنص العادي و 3:1 للنص الكبير (18pt أو 14pt غامق).

أدوات للتحقق من تباين الألوان:

مثال:

/* تباين جيد */ body { background-color: #000000; /* أسود */ color: #FFFFFF; /* أبيض */ } /* تباين ضعيف */ body { background-color: #FFFFFF; /* أبيض */ color: #F0F0F0; /* رمادي فاتح */ }

المثال الأول يوفر تبايناً جيداً، بينما المثال الثاني لديه تباين ضعيف وسيكون من الصعب قراءته للعديد من المستخدمين.

ما هو أبعد من اللون: لا تعتمد فقط على اللون لنقل المعلومات. استخدم تسميات نصية أو أيقونات أو إشارات مرئية أخرى بالإضافة إلى اللون لضمان إتاحة المعلومات للجميع. على سبيل المثال، بدلاً من تمييز حقول النموذج المطلوبة باللون الأحمر، استخدم مزيجاً من حدود حمراء وتسمية نصية مثل "(مطلوب)".

3. مؤشرات التركيز

عندما يتنقل المستخدمون في موقعك باستخدام لوحة المفاتيح (على سبيل المثال، باستخدام مفتاح Tab)، من الضروري توفير مؤشرات تركيز مرئية واضحة حتى يعرفوا أي عنصر لديه التركيز حالياً. يمكن أن يكون مؤشر التركيز الافتراضي للمتصفح غير كافٍ أو حتى غير مرئي في بعض الحالات. استخدم CSS لتخصيص مؤشر التركيز لجعله أكثر بروزاً.

مثال:a:focus, button:focus, input:focus, textarea:focus, select:focus { outline: 2px solid #007bff; /* إطار أزرق */ outline-offset: 2px; /* ينشئ مسافة بين العنصر والإطار */ }

يضيف كود CSS هذا إطاراً أزرق للعناصر عندما تتلقى التركيز. تضيف خاصية outline-offset مسافة صغيرة بين العنصر والإطار، مما يحسن الرؤية. تجنب إزالة مؤشر التركيز تماماً دون توفير بديل مناسب، حيث يمكن أن يجعل ذلك موقعك غير قابل للاستخدام لمستخدمي لوحة المفاتيح.

4. التنقل بلوحة المفاتيح

تأكد من أن جميع العناصر التفاعلية (الروابط، الأزرار، حقول النماذج، إلخ) قابلة للتنقل باستخدام لوحة المفاتيح. هذا ضروري للمستخدمين الذين لا يستطيعون استخدام الماوس. يجب أن يتطابق ترتيب العناصر في كود مصدر HTML مع الترتيب المرئي على الصفحة لضمان تدفق تنقل منطقي. استخدم CSS لإعادة ترتيب العناصر بصرياً مع الحفاظ على ترتيب تنقل منطقي بلوحة المفاتيح.

مثال:

فكر في سيناريو تريد فيه عرض قائمة تنقل على الجانب الأيمن من الشاشة باستخدام CSS. ومع ذلك، من أجل إمكانية الوصول، تريد أن تظهر قائمة التنقل أولاً في كود مصدر HTML حتى يواجهها مستخدمو قارئات الشاشة قبل المحتوى الرئيسي.

HTML:

<nav> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul> </nav> <main> <h1>Main Content</h1> <p>This is the main content of the page.</p> </main>

CSS:

body { display: flex; } nav { order: 1; /* ينقل التنقل إلى اليمين */ width: 200px; padding: 20px; } main { order: 0; /* يبقي المحتوى الرئيسي على اليسار */ flex: 1; padding: 20px; }

باستخدام خاصية order في CSS، يمكنك إعادة ترتيب قائمة التنقل بصرياً إلى الجانب الأيمن من الشاشة مع الحفاظ على موضعها الأصلي في كود مصدر HTML. هذا يضمن أن مستخدمي لوحة المفاتيح سيواجهون قائمة التنقل أولاً، مما يحسن إمكانية الوصول.

5. إخفاء المحتوى بمسؤولية

في بعض الأحيان تحتاج إلى إخفاء المحتوى عن العرض المرئي ولكن مع إبقائه متاحاً لقارئات الشاشة. على سبيل المثال، قد ترغب في توفير سياق إضافي لرابط أو زر يتم تمثيله بصرياً فقط بواسطة أيقونة. تجنب استخدام display: none أو visibility: hidden، حيث ستخفي هذه الخصائص المحتوى عن المستخدمين المرئيين وقارئات الشاشة. بدلاً من ذلك، استخدم تقنية تخفي المحتوى بصرياً مع إبقائه متاحاً للتقنيات المساعدة.

مثال:

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

يخفي هذا الكلاس CSS العنصر بصرياً مع إبقائه متاحاً لقارئات الشاشة. طبق هذا الكلاس على النص الذي تريد أن تقرأه قارئات الشاشة ولكن لا يتم عرضه بصرياً.

مثال HTML:

<a href="#">Edit <span class="sr-only">item</span></a>

في هذا المثال، النص "item" مخفي بصرياً ولكنه سيقرأ بواسطة قارئات الشاشة، مما يوفر سياقاً لرابط "Edit".

سمات ARIA (تطبيقات الإنترنت الغنية المتاحة): استخدم سمات ARIA بحكمة لتعزيز إمكانية الوصول للمحتوى الديناميكي ومكونات واجهة المستخدم المعقدة. توفر سمات ARIA معلومات دلالية إضافية للتقنيات المساعدة. ومع ذلك، تجنب استخدام سمات ARIA لإصلاح مشكلات إمكانية الوصول التي يمكن حلها باستخدام HTML الدلالي. على سبيل المثال، استخدم أدوار وسمات ARIA لتعريف الأدوات المخصصة وتوفير تحديثات الحالة لقارئات الشاشة عندما يتغير المحتوى ديناميكياً.

6. التصميم المتجاوب وإمكانية الوصول

تأكد من أن موقعك متجاوب ويتكيف مع أحجام الشاشات والأجهزة المختلفة. هذا أمر بالغ الأهمية للمستخدمين ذوي الإعاقة الذين قد يستخدمون التقنيات المساعدة على الأجهزة المحمولة أو الأجهزة اللوحية. استخدم استعلامات الوسائط في CSS لضبط تخطيط وعرض المحتوى الخاص بك بناءً على حجم الشاشة واتجاهها.

مثال:

@media (max-width: 768px) { nav ul { flex-direction: column; /* يكدس عناصر التنقل عمودياً على الشاشات الأصغر */ } }

يستخدم كود CSS هذا استعلام وسائط لتغيير اتجاه عناصر التنقل إلى الوضع العمودي على الشاشات الأصغر، مما يسهل التنقل على الأجهزة المحمولة.

7. الرسوم المتحركة والحركة

يمكن أن تسبب الرسوم المتحركة المفرطة أو المنفذة بشكل سيء نوبات أو دوار حركة لبعض المستخدمين. استخدم CSS لتقليل أو تعطيل الرسوم المتحركة للمستخدمين الذين يفضلون الحركة المخفضة. يسمح لك استعلام الوسائط prefers-reduced-motion باكتشاف ما إذا كان المستخدم قد طلب من النظام تقليل كمية الرسوم المتحركة أو الحركة التي يستخدمها.

مثال:

@media (prefers-reduced-motion: reduce) { .animated-element { animation: none !important; transition: none !important; } }

يعطل كود CSS هذا الرسوم المتحركة والانتقالات للمستخدمين الذين قاموا بتمكين إعداد "الحركة المخفضة" في نظام التشغيل الخاص بهم. ضع في اعتبارك توفير عنصر تحكم يسمح للمستخدمين بتعطيل الرسوم المتحركة يدوياً على موقعك.

8. الاختبار باستخدام التقنيات المساعدة

الطريقة الأكثر فعالية لضمان إتاحة موقعك هي اختباره باستخدام التقنيات المساعدة، مثل قارئات الشاشة ومكبرات الشاشة وبرامج التعرف على الكلام. استخدم مجموعة متنوعة من التقنيات المساعدة للحصول على فهم شامل لإمكانية الوصول إلى موقعك.

قارئات الشاشة الشائعة:

نصائح اختبار إضافية:

تقنيات CSS المتقدمة لإمكانية الوصول

1. الخصائص المخصصة (متغيرات CSS) للتصميم

استخدم خصائص CSS المخصصة (المتغيرات) لإنشاء سمات متاحة مع خيارات تباين عالية. يتيح ذلك للمستخدمين تخصيص مظهر موقعك لتلبية احتياجاتهم الفردية.

مثال:

:root { --text-color: #333; --background-color: #fff; --link-color: #007bff; } body { color: var(--text-color); background-color: var(--background-color); } a { color: var(--link-color); } /* سمة التباين العالي */ .high-contrast { --text-color: #fff; --background-color: #000; --link-color: #ff0; }

يحدد هذا المثال خصائص CSS المخصصة للون النص ولون الخلفية ولون الرابط. يقوم الكلاس .high-contrast بتجاوز هذه المتغيرات لإنشاء سمة تباين عالية. يمكنك بعد ذلك استخدام JavaScript لتبديل الكلاس .high-contrast على عنصر <body> للتبديل بين السمات.

2. CSS Grid و Flexbox لتخطيطات يمكن الوصول إليها

CSS Grid و Flexbox هما أدوات تخطيط قوية يمكن استخدامها لإنشاء تخطيطات متاحة ومتجاوبة. ومع ذلك، من المهم استخدامها بعناية لضمان تطابق الترتيب المرئي للعناصر مع ترتيب DOM.

مثال:

عند استخدام Flexbox أو Grid، تأكد من أن ترتيب التنقل (tab order) يظل منطقياً. يمكن لخاصية order أن تعطل ترتيب التنقل إذا لم تستخدم بعناية.

3. `clip-path` وإمكانية الوصول

يمكن استخدام خاصية `clip-path` لإنشاء أشكال وتأثيرات مثيرة للاهتمام بصرياً. ومع ذلك، كن حذراً عند استخدام `clip-path` حيث يمكن أن تحجب المحتوى أحياناً أو تجعل التفاعل معه صعباً. تأكد من أن المحتوى المقصوص يظل متاحاً وأن القص لا يتعارض مع التنقل بلوحة المفاتيح أو وصول قارئ الشاشة.

4. خاصية `content` وإمكانية الوصول

يمكن استخدام خاصية `content` في CSS لإدراج محتوى تم إنشاؤه قبل أو بعد عنصر ما. ومع ذلك، لا يكون المحتوى الذي تم إنشاؤه متاحاً دائماً لقارئات الشاشة. استخدم خاصية `content` بحكمة وفكر في استخدام سمات ARIA لتوفير معلومات دلالية إضافية للتقنيات المساعدة.

أمثلة واقعية ودراسات حالة

دعنا نفحص بعض الأمثلة الواقعية لتوضيح كيفية تطبيق هذه المبادئ عبر مختلف المناطق والسياقات.

أخطاء شائعة في إمكانية الوصول يجب تجنبها

الخلاصة: تبني إمكانية الوصول من أجل ويب أفضل

إمكانية الوصول ليست مجرد متطلب تقني؛ إنها جانب أساسي لإنشاء ويب شامل ومتاح للجميع. من خلال تنفيذ تقنيات CSS هذه والالتزام بإرشادات WCAG، يمكنك إنشاء مواقع ويب ليست جذابة بصرياً فحسب، بل قابلة للاستخدام وممتعة لجميع المستخدمين، بغض النظر عن قدراتهم. تبنَّ إمكانية الوصول كجزء لا يتجزأ من عملية تطوير الويب الخاصة بك، وستساهم في عالم رقمي أكثر شمولاً وإنصافاً.

المصادر وقراءات إضافية

إمكانية الوصول في CSS: دليل عملي للامتثال لمعايير WCAG | MLOG