بتذكر منيح هذاك اليوم، قبل كم سنة. كنت قاعد في مكتبي، مبسوط على حالي وفنجان القهوة بإيدي. كنا لسه مطلقين تطبيق جديد للمدينة، تطبيق فيه كل إشي: أخبار، فعاليات، خدمات… شغل متعوب عليه، وتصميمه “مودرن” وحركات. كنت بتابع ردود الفعل الأولية، وكلها مديح وإعجاب. “شغل مرتب يا أبو عمر”، “واجهة بتجنن”، “أخيرًا صرنا عالميين”.
لحد ما وصلتني رسالة على الإيميل من حدا مسمي حاله “أبو أحمد”. الرسالة كانت قصيرة، وبسيطة، بس وقعها علي كان زي الصاعقة. كتبلي: “يعطيك العافية يا ابني، الشغل حلو، بس أنا زلمة كبير بالعمر ونظري على قدي. الألوان فايعة ببعضها ومش شايف أقرأ إشي، والحكي صغير كثير. حاولت أكبره، خرب كل إشي. الله يرضى عليك، لو تشوفولنا حل”.
في هذيك اللحظة، حسيت كل الفخر اللي كنت حاسس فيه تبخر. واجهتنا اللي كنا بنعتبرها تحفة فنية، كانت بالنسبة لأبو أحمد ولكثيرين غيره مجرد جدار، حصن منيع بيمنعهم من الوصول للمعلومة. تطبيقنا اللي كان المفروض يخدم “كل” أهل المدينة، كان في الحقيقة بيخدم بس اللي نظرهم 6/6 واللي أصابعهم سريعة. يومها، أدركت إننا بنينا قصرًا جميلًا، لكن نسينا نبني له مدخلًا للجميع. من هنا بدأت رحلتي الحقيقية مع عالم “الوصول الرقمي” أو الـ Accessibility.
ما هي “معايير الوصول الرقمي” (WCAG)؟ وليش هي مهمة؟
ببساطة شديدة يا جماعة، الـ Web Content Accessibility Guidelines أو (WCAG) هي مش مجرد كتالوج تقني أو قوانين جامدة. هي فلسفة، هي بوصلة أخلاقية بتوجهنا عشان نبني منتجات رقمية (مواقع، تطبيقات، أنظمة) للجميع، بدون أي استثناء.
فكر فيها هيك: لما تبني عمارة، القانون بيلزمك تعمل رامبات ومصاعد لذوي الاحتياجات الحركية. ليش؟ عشان المبنى يكون للكل. نفس المبدأ تمامًا بينطبق على العالم الرقمي. الـ WCAG هي “كود البناء” الرقمي اللي بيضمن إنه منتجك ما يستبعد حدا، سواء كان شخص كفيف بيستخدم قارئ شاشة، أو شخص عنده ضعف في رؤية الألوان، أو شخص ما بيقدر يستخدم الماوس بسبب إعاقة حركية، أو حتى شخص كبير في السن زي أبو أحمد.
الأهمية مش بس أخلاقية وإنسانية، مع إنها أهم إشي. الأهمية كمان تجارية! لما تصمم للجميع، أنت بتوسع شريحة مستخدميك بشكل هائل. وبتكسب ولائهم، لأنه المستخدم اللي بتحترمه وبتسهل عليه حياته، عمره ما بينساك.
الأركان الأربعة للوصول الرقمي (POUR)
عشان تسهل علينا المهمة، جماعة الخير اللي وضعوا معايير WCAG لخصوا كل المبادئ في أربعة أركان أساسية، وسموها (POUR). خلينا نفصصهم وحدة وحدة:
1. قابلية الإدراك (Perceivable)
المبدأ: لازم المستخدمين يقدروا يدركوا ويفهموا المحتوى المعروض بكل حواسهم المتاحة. يعني مش كل إشي بالنظر يا حبايب، في ناس “بتسمع” المحتوى سمع، وفي ناس “بتقرأه” بطريقة برايل.
نصيحة أبو عمر: غمّض عيونك لمرة، وخلّي حدا يوصفلك موقعك. هل الوصف واضح؟ إذا لأ، عندك مشكلة.
أمثلة عملية:
- النص البديل للصور (Alt Text): هاي مش بس عشان الـ SEO! قارئات الشاشة بتستخدمها عشان توصف الصورة للمستخدم الكفيف. الصورة بدون نص بديل هي مجرد فراغ بالنسبة له.
<!-- خطأ -->
<img src="knafeh.jpg">
<!-- صح -->
<img src="knafeh.jpg" alt="صورة لطبق كنافة نابلسية ساخنة بالجبنة البيضاء والقطر الذهبي">
- التباين اللوني (Color Contrast): مشكلة أبو أحمد الأساسية. لازم يكون في تباين كافٍ بين لون النص ولون الخلفية عشان الناس اللي عندها ضعف نظر أو عمى ألوان تقدر تقرأ بسهولة. في أدوات مجانية كثير بتفحصلك هالشي (زي “Adobe Color” أو إضافات للمتصفح مثل “WAVE”).
- التعليقات النصية للفيديو (Captions): أي فيديو فيه حكي لازم يكون معه تعليقات نصية (Captions)، مش بس للناس اللي عندها ضعف سمع، بل كمان للي بيتصفح في مكان عام وما معه سماعات!
2. قابلية التشغيل (Operable)
المبدأ: لازم كل مكونات الواجهة، من أزرار وقوائم وروابط، تكون قابلة للاستخدام والتشغيل بطرق مختلفة، ومش بس بالماوس.
نصيحة أبو عمر: قبل ما تسلّم أي صفحة، اترك الماوس على جنب، وحاول تتصفح كل إشي باستخدام كيبوردك فقط (مفاتيح Tab, Shift+Tab, Enter, Space). إذا علّقت في مكان وما قدرت تطلع منه (ما يسمى بالـ Keyboard Trap)، أو ما قدرت توصل لزر معين، معناها عندك شغل لازم تعمله.
أمثلة عملية:
- التنقل بالكيبورد: لازم المستخدم يقدر ينتقل بين كل العناصر التفاعلية باستخدام زر Tab، ويشوف بوضوح هو وين واقف (Focus Indicator). هاي أهم نقطة!
- استخدم العناصر الصحيحة (Semantic HTML): البركة في البساطة. ليش تخترع العجل وتعمل زر من عنصر `
` وتبرمجه من الصفر، بينما HTML معطيك عنصر `
سجل دخولك لعمل نقاش تفاعلي
كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياًآراء من النقاشات
لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!
آخر المدونات
الحوسبة السحابيةكانت فاتورة السحابة تلتهم أرباحنا: كيف أنقذتنا ممارسات FinOps من جحيم الإنفاق؟
في هذه المقالة، أشارككم قصة حقيقية عن كيف كادت فواتير الحوسبة السحابية أن تدمر مشروعنا الناشئ، وكيف كانت ممارسات FinOps هي طوق النجاة الذي أعادنا...
التوظيف وبناء الهوية التقنيةكان حسابي على GitHub مقبرة للمشاريع الميتة: كيف أنقذتني ‘المساهمات المفتوحة المصدر’ من جحيم السيرة الذاتية الفارغة؟
أشارككم تجربتي الشخصية كأبو عمر، من مطور بحساب GitHub أشبه بمقبرة للمشاريع غير المكتملة، إلى بناء هوية تقنية قوية من خلال المساهمة في المصادر المفتوحة....
التوسع والأداء العالي والأحمالكان فشل خدمة واحدة يُسقط نظامنا بأكمله: كيف أنقذنا نمط ‘قاطع الدائرة’ من جحيم الفشل المتتالي؟
أتذكر ليلة كادت فيها خدمة واحدة أن تدمر مشروعنا بالكامل بسبب الفشل المتتالي. في هذه المقالة، أشارككم قصة كيف أنقذنا نمط 'قاطع الدائرة' (Circuit Breaker)،...
التكنلوجيا المالية Fintechكانت أرصدتنا تتبخر في الهواء: كيف أنقذنا ‘دفتر الأستاذ المزدوج’ من جحيم التسويات اليدوية؟
قصة حقيقية من قلب معركة برمجية في شركة تكنولوجيا مالية ناشئة. أشارككم يا جماعة كيف انتقلنا من فوضى الأرصدة المختفية والتسويات اليدوية المُرهقة، إلى نظام...
البنية التحتية وإدارة السيرفراتكانت أسرارنا تتسرب من كل مكان: كيف أنقذتنا ‘إدارة الأسرار المركزية’ من كابوس المفاتيح المسروقة؟
أشارككم قصة حقيقية عن كابوس أمني كاد أن يدمر مشروعنا، وكيف كانت "إدارة الأسرار المركزية" طوق النجاة. اكتشفوا معنا كيف تحمون مفاتيحكم الرقمية وتنتقلون من...
ادارة الفرق والتنمية البشريةكان الخوف من الفشل يشلّ فريقنا: كيف أنقذتنا ‘السلامة النفسية’ من جحيم الأفكار التي لم تولد قط؟
أنا أبو عمر، مبرمج فلسطيني، وأروي لكم كيف حوّلنا فريقاً مشلولاً بالخوف من الفشل إلى بيئة إبداعية مزدهرة. هذه ليست مجرد قصة، بل دليل عملي...
اختبارات الاداء والجودةتغطية 100% وكود هش: كيف أنقذنا “الاختبار الطفري” من جحيم الثقة الزائفة؟
كانت مقاييس تغطية الكود في مشروعنا تشير إلى 100%، لكننا كنا نعيش كابوسًا من الأخطاء غير المتوقعة. هذه قصة كيف أنقذنا الاختبار الطفري (Mutation Testing)...
أدوات وانتاجيةكانت أخطاؤنا الصغيرة تتسلل للإنتاج: كيف أنقذتنا خطافات Git (Git Hooks) من جحيم التسليمات المحرجة؟
أشارككم قصة من قلب المعركة البرمجية، كيف أنقذتنا أداة بسيطة في Git تسمى "الخطافات" (Hooks) من أخطاء محرجة كانت تتسلل إلى بيئة الإنتاج. هذه المقالة...
أتمتة العملياتكانت أوامرنا تضيع في الضجيج: كيف أنقذنا ChatOps من جحيم تبديل السياق؟
أشارككم قصتي مع الفوضى التي كانت تعم فريقنا أثناء الطوارئ التقنية، وكيف تبنينا ثقافة الـ ChatOps لنجعل عملياتنا أكثر شفافية وسرعة. هذه ليست مجرد مقالة...