لا أعرف ما إذا كان هذا معروفًا أو مُتتبعًا في أي مكان. إذا كان الأمر كذلك، فسأرحب بأي روابط ذات صلة. لكن، وعلى الرغم من أن الوضع يتحسن، إلا أن تجربة استخدام Discourse مع قارئ الشاشة تواجه بعض التحديات التي أرغب في توثيقها.
أنا مستخدم لقارئ الشاشة، وأردت إعداد نسخة مستضافة ذاتيًا تستهدف بشكل أساسي المستخدمين المكفوفين. عادةً لا أنصح باستخدام Discourse بسبب مشاكل إمكانية الوصول، لكنكم تجعلون الاستضافة الذاتية مع الميزات التي أريدها أمرًا سهلاً للغاية، مما يجعلني أشعر بالحزن لأن إمكانية الوصول ليست متوفرة بالكامل بعد. وفيما يلي بعض التحديات التي أواجهها:
القوائم المنسدلة التي يُبلغ عنها قارئ الشاشة على أنها عناصر HTML <select/> معطلة إلى حد كبير. فهي تتوسع باستخدام تقنيات لوحة المفاتيح التقليدية، لكن هذا هو كل ما يتعلق بإمكانية الوصول. بدأت التحديات عندما اضطررت لاختيار لغة أثناء الإعداد. لست متأكدًا فورًا مما إذا كانت اللغة الإنجليزية: الولايات المتحدة هي الافتراضية، لكن عندما ذهبت للتحقيق، وجدت أنني نجحت في تغيير اللغة إلى الإسبانية وواجهت صعوبة في إعادتها. في النهاية، عثرت على القائمة باستخدام قارئ الشاشة ونجحت في تصحيح الأمر. لكن تقريبًا كل قائمة منسدلة معطلة. لا أريد القول “كل” في حال وجود واحدة في زاوية بعيدة من الواجهة تعمل، لكن كل ما جربته لا يعمل على الإطلاق.
لا أستطيع العثور على طريقة للوصول إلى واجهة الإدارة دون التنقل المباشر. كانت شاشات الإعداد تخبرني أنها موجودة تحت أيقونة الترس، لكنني لا أستطيع العثور على تمثيل نصي لما قد تكون عليه أيقونة الترس، كما أن أي من عناصر التحكم التي يمكن الوصول إليها عبر لوحة المفاتيح التي عثرت عليها لا تبدو أنها تؤدي في النهاية إلى واجهة الإدارة. حاليًا، أستخدم فقط الرابط /admin، لكن هذا يجعلني أتساءل عن الأدوات التي قد لا أكتشفها لأنني لا أستطيع العثور على هذا الترس.
وبالنسبة لقائمة الإعدادات المنسدلة، لا أستطيع استخدام القوائم المنسدلة/عناصر الاختيار في أعلى قوائم الفئات للتنقل إلى قوائم الفئات. أعرف عن رابط “الفئات”، وهو ما أستخدمه عادةً. لكن سيكون من الجيد إذا كانت تلك المحددات تعمل.
في كل مرة لا أقوم فيها بالتسجيل في Discourse، يُقال لي إنه يجب عليّ فعل ذلك جزئيًا لأن المنتدى يتذكر أين توقفت عن القراءة. هذا لم يعمل أبدًا معي باستخدام قارئ الشاشة. كيف من المفترض أن يعمل هذا؟ هل يجب أن ينقل النقر على الرابط التركيز إلى المنشور الذي قرأته آخر مرة؟
وهذه النقطة لا تتعلق بموقعي، لكن تجربة التسجيل المنبثقة هنا كانت بها بعض التحديات. حاولت التسجيل عبر البريد الإلكتروني، لكن نسختكم رفضت عنوان بريدي .info الذي استخدمته منذ ما يقرب من 17 عامًا والذي كان يعمل بشكل جيد على موقعي الخاص. ثم سجلت عبر Google، لكن النافذة المنبثقة التي ظهرت لي عند العودة طرحت بعض التحديات:
لم تستحوذ على تركيز لوحة المفاتيح، لذا اضطررت للبحث عنها والتفاعل معها بنفسي.
بينما كنت أحاول فعل ذلك، كانت قائمة المواضيع ذات التمرير اللانهائي تضيف مواضيع جديدة وتجعل من الصعب على التركيز الوصول فعليًا إلى الحوار. لا أتذكر بالضبط كيف تمكنت من التحرك أسرع من ظهور المواضيع - لم أشرب قهوتي بعد - لكنني هنا.
إذًا، بعض الأسئلة:
أريد حقًا البقاء مع Discourse إذا أمكن. إلى أي مدى يمكنني تغيير هذه الأشياء في موقعي الخاص؟ على وجه الخصوص:
هل يمكنني إزالة محددات قائمة الفئات، بحيث يضطر المستخدمون للتفاعل مع رابط قائمة الفئات مؤقتًا؟
هل يمكنني إزالة محدد الفئة في صفحات الموضوعات الجديدة، بحيث يضطر المستخدمون أولاً إلى إدخال الفئة التي يريدون النشر فيها، ولا يمكنهم عن طريق الخطأ إنشاء موضوعات غير مصنفة أو الوقوع في حيرة؟
هل يمكنني فعل الأمرين بطريقة تسهل الترقية؟ أفضل عدم تعديل قوالب المخزون وتفرع المشروع إذا لم يكن ذلك ضروريًا، ولا أريد بالضرورة سمة جديدة تمامًا.
هل يتم تتبع هذا العمل في أي مكان، وهل هناك شخص مخصص لتولي هذه المهمة؟ منتديات Discourse تلتهم الإنترنت. في كل مكان ألتفت إليه، تتبنى المشاريع أو المجتمعات التي أقضي فيها وقتي هذه المنصة. يا إلهي، كمستخدم مكفوف، أنا أريد تشغيل Discourse لأنكم مرة أخرى تجعلون هذا الأمر سهلاً للغاية. أنا فقط لا أريد أن تكون إمكانية الوصول لأداة حيوية مثل هذه إما تفكيرًا لاحقًا، أو أن تلحق دائمًا بالتطوير الجديد.
تلك مشاركة مدروسة يا @nolan. أنا متأكد من أن أعضاء الفريق الآخرين سيشاركون في الإجابة على أسئلتك، ولكن هل يمكنك مشاركة إعداداتك حتى يتمكن المطور من محاولة إعادة إنتاج المشكلات التي تواجهها؟ أي: نظام التشغيل المستخدم، وقارئ الشاشة، وما إلى ذلك.
نظام التشغيل Windows 10 وقارئ الشاشة NVDA. ومع ذلك، وبصراحة، فإن المشكلة كبيرة لدرجة أنها على الأرجح لن تعمل بشكل جيد في أي مكان، لذا فإن أي مجموعة تقريبًا من نظام التشغيل/قارئ الشاشة ستواجه هذه المشكلة على الأرجح.
شكرًا لك على الملاحظات! نحن ندرك أننا لم نصل بعد إلى مستوى إمكانية الوصول الكامل، وقد عملنا مؤخرًا على تحسين هذا الجانب. في نهاية عام 2020، قمنا بإجراء تدقيق مستقل لإمكانية الوصول على أهم صفحات Discourse غير الإدارية، وقد بدأنا خلال الأسبوعين الماضيين في معالجة القضايا ذات الأولوية العالية.
الآن بعد أن أشرت إلى ذلك، أستطيع أن أفهم لماذا قد يكون العثور على قائمة الإدارة صعبًا. رابط القائمة موجود داخل إحدى القوائم الرئيسية في الرأس… بينما تسمية Aria الخاصة به هي “الانتقال إلى قائمة مواضيع أو فئة أخرى”… وهو ما لا يوضح بالتأكيد وجود روابط إدارية بداخلها.
بخصوص الرسالة التي تقول إن Discourse يتذكر مكان توقفك… فإن السلوك المتوقع هو أنه عند دخولك إلى الموضوع، يتم الانتقال مباشرة إلى المكان الذي توقفت فيه عن القراءة. لقد جربت التنقل باستخدام لوحة المفاتيح للتو، ويمكنني تأكيد أن التركيز لا يتم وضعه في المكان الصحيح.
العديد من القوائم المنسدلة لدينا هي تطبيق مخصص، وهذا أحد المجالات التي تم الإشارة إليها لنا لتحسين إمكانية الوصول. كما أننا على علم بأن النوافذ المنبثقة (modals) لدينا لا تحصر التركيز، مما يؤدي إلى صعوبة الوصول إلى بعض المحتويات، خاصة في الصفحات التي تحتوي على التمرير اللانهائي كما واجهت أنت.
بخصوص أسئلتك حول البقاء مع Discourse… كل ما ذكرته ممكن؛ سيقتصر الأمر على بضع أسطر من CSS لإخفاء تلك العناصر. يجب أن يكون هذا CSS ضمن سمة (theme)، لكنه يمكن أن يوجد داخل مكون من مكونات السمة، والذي يمكن إضافته إلى أي سمة موجودة (لذلك لن تضطر إلى تغيير سمتك الأساسية). السمات أفضل بكثير لعملية الترقية، لأنها تعمل فوق Discourse… بينما تعديل القوالب أو عمل نسخ منها كما ذكرت يجعل التحديث صعبًا للغاية.
نحن نوسم تقارير مشكلات إمكانية الوصول هنا على Meta بوسم accessibility لتسهيل العثور عليها في مكان واحد… ومع ذلك، فإن تقرير إمكانية الوصول المستقل والعمل اللاحق الذي ذكرته سابقًا لا يتم تتبعهما علنًا.
نقدر حقًا ملاحظاتك هنا، خاصةً مع الأخذ في الاعتبار أنها تطلبت جهدًا إضافيًا للنشر. آمل أن يصبح Discourse أسهل بكثير للاستخدام بالنسبة لك خلال الأشهر القليلة القادمة.
تلقّيت سؤالاً في مناقشة على الفديفيست من روبرت كينجيت، الذي يعاني من إعاقة بصرية ويصف نفسه في ملفه الشخصي بـ “متسارع إمكانية الوصول”. كان السؤال كالتالي:
كيف تجعلون مركز التواصل الاجتماعي (Social Hub) متاحًا لقارئات الشاشة وغيرهم من الأشخاص ذوي الإعاقة؟ بما في ذلك حالات النوبات وغيرها.
أيضًا، إذا لم يتم طرح هذه النقطة من قبل، أود تسليط الضوء عليها كطريقة لتحقيق مكاسب سريعة في إمكانية الوصول:
تستفيد قارئات الشاشة بشكل جيد من العديد من الوسوم الدلالية في HTML 5. لا يمكنني التنقل بينها بكفاءة فحسب، بل إنها أيضًا تنطق نوع المحتوى الذي أتعامل معه حاليًا.
سيكون من الجميل أن تكون المنشورات داخل وسم <article> مع وضع الرأس في عنصر <header> والتذييل في عنصر <footer>. إذا لم يكن استبدال العناصر ممكنًا، فإن استخدام سمات role بشكل مناسب ينقل نفس المعنى.
في الوقت الحالي، من الصعب قراءة المواضيع الطويلة. بعد المنشور الأول، يجب علي التمرير عبر قسم المواضيع الموصى بها وما شابه. ثم أقرأ المنشورات اللاحقة بشكل تسلسلي، دون أي وسيلة لتجاوز العناوين نفسها التي سمعتها ملايين المرات دون أي اختلاف سوى التاريخ، أو التذييل الذي يحتوي على نفس عناصر التحكم في الرسائل. بالتأكيد توجد تعديلات متقدمة على ARIA يمكن أن تجعل الأمور أفضل، لكن استبدال الوسوم أو استخدام السمات سيكون إصلاحًا بسيطًا الجهد يحمل فائدة كبيرة في رأيي.
لدينا تحديث في قائمة مراجعتنا سيضيف بعض عناصر ترميز ARIA إلى صفحات المواضيع. وفقًا للمواصفات، يبدو من المنطقي تمييز عناصر التحكم الموجودة تحت المنشورات وفي أسفل الصفحة بدور شريط الأدوات.
لدينا أيضًا منطقة شريط أدوات تسلسل زمني للمواضيع تعمل كشريط تمرير (لقد منحتها الآن دور شريط التمرير) وتحتوي أيضًا على أزرار “الانتقال إلى أول منشور” و"الانتقال إلى آخر منشور" (لقد أضفت أوصافًا لها)…
يجب أن تكون هذه التغييرات متاحة مع تحديثات Discourse الأسبوع القادم.
قد يبدو هذا بديهيًا، لكنني سأذكره على أي حال. تجدر الإشارة إلى أن مجرد إضافة ARIA إلى هذه العناصر والتوقف عند هذا الحد لا يكفي. بعبارة أخرى، تحديد هذه المناطق كأشرطة أدوات دون اتباع نمط شريط الأدوات قد يكون أسوأ من عدم تحديد الدور من الأساس. إذا وصلت إلى شريط أدوات، أتوقع أن يتصرف بطرق لا تتحقق تلقائيًا بمجرد إضافة الدور. أريد فقط أن أوضح ذلك، لأن الخطأ الشائع الذي أراه عند إضافة إمكانية الوصول هو إضافة هذه الأدوار دون إضافة سلوكيات لوحة المفاتيح المرتبطة بها. عندها أجد نفسي أواجه مجموعة من العناصر التي لا تتصرف كما أتوقع، ويكون الكفاح المستمر مع هذه التوقعات أسوأ من عدم وجودها من الأساس.
آمل أن يكون ذلك واضحًا. يسعدني الإجابة على أي أسئلة إضافية.
مرحبًا كريس، قد لا يكون دور شريط التمرير هو ما تبحث عنه بالضبط هنا. سنحتاج إلى رؤية ذلك عمليًا، لكن حتى الآن، لم أره يُستخدم بهذه الطريقة فعليًا. إنه أشبه بعنصر النطاق (range) في HTML5 الذي يمثل موضع تمرير نسبيًا لحاوية معينة. أما عناصر “الانتقال إلى المنشور الأول” و"الانتقال إلى المنشور الأخير" فهي مجرد أزرار قد تقوم بالتمرير في العرض، نعم، لكنني لا أعتقد أن هذه الأزرار مناسبة كمحتوى لحاوية شريط التمرير، والتي تتطلب الحصول على سمات aria-value*.
ملاحظة جانبية: في مجتمع VS Code، أنا معروف بكوني خبيرًا في أدوار ARIA. لا أعرف بالضبط ما الذي منحني هذه السمعة، لكنني معروف بدقتي المفرطة بشأن الأدوار. فقد تُسبب هذه الأدوار ضررًا أكثر من نفعها، لذا قد يكون من الضروري التراجع عن هذا التغيير بالتحديد. وأنا متأكد تقريبًا من أن ذلك سيحدث.
من باب الفضول، هل يوجد في فريقكم شخص يركز على إمكانية الوصول؟ أنا متحمس للتدقيق الأخير في إمكانية الوصول والتغييرات المخطط لها قادمًا، لكن بما أن Discourse يشغّل جزءًا كبيرًا من الإنترنت، فمن المرجح أن يكون هناك شخص ذو خبرة عملية مباشرة يعمل جنبًا إلى جنب مع الفريق ويقدم المشورة بشأن هذه التغييرات. فمن السهل جدًا ارتكاب أخطاء أو جعل الأمور أسوأ دون قصد.
على سبيل المثال، تدّعي Slack التركيز على إمكانية الوصول، وهي تحاول استخدام ARIA، لكن يبدو أن محاولاتها جعلت منطقة الدردشة غير قابلة للوصول تمامًا من خلال قارئ الشاشة الخاص بي. أو إذا كانت قابلة للوصول، فإنني مع عقود من الخبرة لا أستطيع فهم كيفية ذلك. لا أريد أن أرى أن تسير Discourse في هذا المسار دون قصد.
على أي حال، أمارس هذا العمل وما يشبهه كوظيفة رئيسية، وأنا متاح للمساعدة. كما أنني أستخدم العديد من منتديات Discourse، لذا فإن ضمان إمكانية الوصول سيكون تحسينًا ملموسًا لنوعية حياتي. يسعدني التحدث أكثر مع أي شخص مهتم.
@MarcoZehe فيما يتعلق بتحكم الخط الزمني الخاص بنا، كنت مترددًا بعض الشيء بين اختيار دور شريط التمرير أو دور المنزلقة. قررت اختيار دور شريط التمرير لأن هذا التحكم يقوم فعليًا بتمرير الصفحة، ويبدو أنه يتطابق مع الوصف الذي قدمه W3C:
كائن رسومي يتحكم في تمرير المحتوى داخل منطقة عرض، بغض النظر عما إذا كان المحتوى معروضًا بالكامل داخل منطقة العرض.
ومع ذلك، فإن هذا التحكم فريد بعض الشيء في تصميمنا… فهو يقوم بتمرير الصفحة ويعرض موقعك ضمن النطاق الحالي للمشاركات (على سبيل المثال، سيُظهر أنك حاليًا في المشاركة 6 من أصل 12). من الممكن ألا توجد طريقة مثالية لتعريفه بشكل صحيح لقارئات الشاشة، وقد يكون من الأفضل إخفاؤه… حيث أن التمرير العادي للصفحة يعمل كما هو متوقع بدونه. أود تجربته ورؤية رأيك أثناء استخدامه، وإذا لم ينجح يمكننا التراجع عن ذلك.
وللإجابة على سؤالك يا @nolan، توليت مسؤولية تنظيم توصيات إمكانية الوصول وإتمام تدقيقنا، لكن معظم خبرتي السابقة في هذا المجال تأتي من تنفيذ المواصفات التي حددها آخرون. لا نملك خبيرًا مخصصًا يعمل بدوام كامل على إمكانية الوصول، إذ أننا ما زلنا أصغر بكثير من Slack… لكن قد يكون من الضروري في الوقت الراهن التعاقد مع شخص للعمل على هذا الأمر لضمان فعل الصواب وعدم تفاقم الأمور…
متابعةً لدور شريط الأدوات، للتوضيح… هل تقصد أن الدور لا يستحق على الإطلاق ما لم يتبع هذا النمط كما هو موصوف في W3C؟
قم بتنفيذ إدارة التركيز بحيث تتضمن تسلسل التبويب بلوحة المفاتيح نقطة توقف واحدة لشريط الأدوات، وتتحرك مفاتيح الأسهم بالتركيز بين عناصر التحكم في شريط الأدوات.
إذا كان الأمر كذلك، فلن أقوم بتنفيذ الدور حتى نتمكن من ضبط التحكم بالتركيز ومفاتيح الأسهم بشكل صحيح.
لضمان عدم ضياع أي شيء، أوصي بإنشاء موضوع ux جديد (موسوم بـ #إمكانية_الوصول) لكل اكتشاف في تدقيقك الخاص. إذا كانت اكتشافاتك مرتبطة ارتباطًا وثيقًا، فقد يكون من المنطقي استخدام نفس الموضوع لكل منها. بشكل أساسي، نريد تجميع الأمور في كتل صغيرة يمكن تتبعها بشكل مستقل ووسمها بـ “تمّ” دون الحاجة للقلق من أننا أغفلنا عنصرًا واحدًا من قائمة تتكون من 53 عنصرًا في المنشور الأصلي.
استخدام الدور دون تطبيق النمط سيكون أشبه بتنسيق عنصر ليبدو كزر، ثم جعله يستجيب فقط عند تمرير المؤشر فوقه وتدوير عجلة الماوس. إذا انتقلت عبر لوحة المفاتيح إلى شريط أدوات أو ركزت عليه بطريقة أخرى، ثم كشف عن أزراره بشكل منفصل أو لم يستجب للأسهم، فإن ذلك سيشعر وكأنه ذلك الزر الغريب بعجلة الماوس. ستضطر إلى التفكير قبل كل تفاعل، وهو يدعي سلوكًا لا يمتلكه.
أتمنى أن يكون هذا قد أوضح الأمور قليلًا. معرفة أن شيئًا ما هو شريط أدوات تكون ذات قيمة فقط إذا تصرف كشريط أدوات. وإلا فإنه يصبح مشتتًا.
أوه، محبط. لقد جئت هنا لأسأل عن حالة كل هذه التحديثات التي بدت وكأنها قيد التنفيذ عندما نشرت هذا. لم أقم بإطلاق مجتمعنا بعد، لكن منتدى PHP القديم على وشك الزوال، لذا فالآن أو لا أبدًا. ظننت أنه سيكون هناك بعض التغييرات المذهلة حتى الآن.
لكنني لم أستطع معرفة كيفية الوصول إلى منطقة الإدارة الخاصة بموقعي. بالتأكيد يمكنني الوصول إلى /admin، لكن الرابط إلى الموقع لا يزال غير متاح عبر لوحة المفاتيح بأي طريقة وجدتُها. هذا يجعل الأمر صعبًا بعض الشيء عند طلب مساعدة مستخدمي قارئات الشاشة في الإشراف عليّ.
ثم حاولت كتابة هذه الإجابة قبل 5 دقائق، لكنني بالخطأ ضغطت إما على زر تعديل أو اقتباس. فأعادني إلى ما بدا كنسخة قابلة للتعديل من رسالة سابقة أرسلتها. حاولت الضغط على زر Enter على رابط يحمل اسم إلغاء، لكن ذلك لم ينجح. ولم ينجح أيضًا إعادة تحميل الصفحة. في النهاية، أرسلت الإجابة، ثم وجدت ونشرت مع نافذة منبثقة غير قابلة للوصول مثل تلك التي أبلغت عنها في البداية لحذف الرسالة.
هل تغير أي شيء في هذا الصدد، أو هل هناك خارطة طريق عامة حتى الآن؟ كمستخدم لقارئ شاشة يجب عليه التفاعل مع مجتمعات Discourse سواء أراد ذلك أم لا، يمكنني جعلها تعمل من أجلي، لكنني لا أشعر بالراحة الكافية لطلب من مجتمع من المكفوفين استخدام هذا—أو على الأقل، طلب منهم بناء مجتمع سيجدون فيه متعة على Discourse.
يعمل Discourse بالنسبة لي، لكنني أرغب بالتأكيد في رؤية بعض التحسينات في إمكانية الوصول. لقد مر وقت طويل منذ أن استخدمت واجهة المسؤول أو أدرت منتدى Discourse، لكنني أتوقع أن يتم تحقيق الكثير من التقدم خلال ثلاثة أشهر.
أفهم أن ARIA قد يكون تحديًا، لكن هذا لا يعني بأي حال من الأحوال أنه لا يمكن إحراز تقدم. @nolan لقد عانيت من نفس المشكلة من قبل — استغرق مني بعض الوقت لأفهم سبب عدم اختفاء مربع التحرير عند النقر على ‘إلغاء’. أود حقًا استخدام Discourse كمنتدى لمجتمعي الخاص في وقت ما في المستقبل، لكن قد أحتاج إلى إعادة النظر في ذلك إذا لم تُجرَ تحسينات في إمكانية الوصول. وسأكره العودة إلى PHP.
أنتم فعليًا تملكون شخصًا يقدم مساعدته لكم فيما يتعلق بإمكانية الوصول. آسف إذا بدوت مستعجلًا — أعرف أن هذا أمر صعب ويتطلب جهدًا منكم. لكن كلاً من @nolan وأنا مستعدان للمساعدة على أي حال. سأكون سعيدًا بإعداد نسخة تجريبية من Discourse.