إمكانية الوصول
آخر تحديث:
ينبغي أن يكون NoCheck صالحًا لكل من يعتني بمركبة. تذكر هذه الصفحة ما يفعله التطبيق اليوم، وما لم يفعله بعد، وكيف تصل إلينا حين يقف شيء في طريقك.
نفضّل أن نكون محددين على أن نكون مطمئنين. كل ما يرد أدناه شيء بُني التطبيق ليفعله واختُبر عليه؛ وكل ما لم نتحقق منه مذكور تحت ما لا ندّعيه بعد، بدل أن يُغفل. وحيث تكون للقاعدة استثناءات، تُطبع الاستثناءات إلى جوارها بقياساتها — فالقاعدة المقرَّبة إلى أعلى هي بالضبط ما يجعل صفحة عن إتاحة الوصول لا تساوي شيئًا.
ما يدعمه NoCheck اليوم
نص أكبر
يتبع NoCheck حجم النص في نظامك، بما في ذلك أكبر الإعدادات. تُعاد الشاشات إلى التنسيق بدل أن تُقتطع: ترتفع الصفوف، وتلتف التسميات، ويمر كل مكوّن في التطبيق باختبار آلي عند حجم نص 200 ٪ يفشل عند أي تجاوز. وإلى جانب ذلك، لكل ترجمة ميزانية طول لعناصر التحكم التي لا يمكنها أن تكبر — الإنجليزية أقصر لغة نصدرها، فزر قيس على الإنجليزية وحدها كان سيتجاوز حدوده في نصف اللغات الأخرى.
يُضبط ذلك من إعدادات نظام جهازك — تحت تسهيلات الاستخدام على iOS، وتحت الشاشة على Android. يأخذ NoCheck القيمة كما هي، وليس له عمدًا إعداد خاص لحجم النص يمكن أن يخرج عن التوافق معها.
المظهر الداكن
سمة داكنة كاملة، لا مرشّح فوق السمة الفاتحة — كل لون مرسوم لخلفيته الخاصة. تتبع إعداد النظام افتراضيًا، والإعدادات ← التفضيلات ← السمة داخل التطبيق تتجاوز ذلك في الاتجاهين.
ليس اللون وحده أبدًا
لا تُنقل حالة صيانة المركبة باللون وحده أبدًا. كل حالة تحمل تسمية مكتوبة — متأخرة، مستحقة قريبًا، ضمن الموعد — وأيقونتها الخاصة؛ اللون يكرر تلك الرسالة ولا يحملها وحده. القاعدة نفسها تسري على اللوحة الرئيسية وشاشة المركبة وكل قائمة بينهما.
تقليل الحركة
حين يطلب نظامك تقليل الحركة، يلتزم NoCheck بذلك. تتوقف عناصر التحميل النائبة عن اللمعان تمامًا. ولا تزال إجراءات السحب في الصف تتحرك، غير أن الانزلاق يقصُر من 220 مللي ثانية بنابض إلى 100 مللي ثانية بسرعة ثابتة، أما الحركة التلميحية التي تشير إلى وجود شريط الإجراءات فتُحذف بكاملها. نكتبها هكذا لا «بلا حركة»، لأنها ليست عدمًا — فإن كانت مئة المللي ثانية هذه تزعجك رغم ذلك، فنحن نودّ أن نسمع منك.
مساحات اللمس
عناصر التحكم 48 × 48 dp كقاعدة، حتى حين يكون المرئي أصغر: نقطة الحالة بحجم 7 dp، وزر الأيقونة الصغير، ورابط النص — لكلٍّ منها خلفه هدف بحجم الإصبع.
أربعة عناصر أصغر عن قصد، ونحن نفضّل تعدادها على تقريب القاعدة إلى أعلى. فهي مضغوطة بحكم التصميم، ولكل إجراء منها طريق أوسع أيضًا، ويُثبّت اختبار آلي كلًّا منها عند حجمه المقيس حتى لا يصغُر أيٌّ منها أكثر دون أن يُلاحَظ:
| العنصر | الحجم المرسوم | طريق آخر إلى الإجراء نفسه |
|---|---|---|
| مبدّل الوحدات / الوضع | 26 × 47.6 dp | المقاطع عريضة ومتلاصقة، فالنقرة التي تخطئ تقع في المقطع المجاور لا في الفراغ |
| إجراء «تسجيل صيانة» في الترويسة | 22 × 113.7 dp | في شاشة الصيانة يكون الإجراء نفسه زرًّا كاملًا 48 × 48 في الشريط؛ وفي شاشة المركبة يفتح كل صف صيانة أدناه الشيء نفسه |
| زر «تحديث القراءة» | ارتفاع 38 dp | النقر على البطاقة في أي موضع آخر يفتح المركبة، حيث يبعد الإجراء نفسه صفًّا واحدًا |
| تذييل عرض النسخ الاحتياطي | ارتفاع 42 dp | الشاشة نفسها تعرضه أيضًا في صف كامل |
لا يسجّل Flutter نقرة خارج المساحة المرسومة، فهذه أهداف حقيقية لا أهداف منفوخة بالهوامش. وإن كان أحدها خارج متناولك، فذلك يستحق رسالة: الأحجام قرار تصميمي لا قانون.
قارئات الشاشة
تحمل عناصر التحكم التفاعلية تسميات لـ VoiceOver وTalkBack، ولا يوجد في NoCheck إجراء لا يُبلغ إلا بالسحب — فكل إجراء يكشفه السحب يُعرض على قارئ الشاشة بوصفه إجراء صف باسمه، ومن ثم لا يحتاج VoiceOver ولا TalkBack إلى هذه الإيماءة أبدًا.
🚨 من دون قارئ شاشة، تبقى إيماءة واحدة بلا نظير. في معظم القوائم يفتح الضغط المطوّل القائمة نفسها التي يفتحها السحب. أما في صفوف الصيانة فيفعل شيئًا آخر: يبدأ التحديد المتعدد، لوسم عدة أعمال بأنها أُنجزت دفعة واحدة. وحذف بند صيانة هناك يكون بالسحب، أو بإجراء الصف الذي يتلقاه قارئ الشاشة. فإن كنت تستطيع الضغط المطوّل دون السحب، ولا تستخدم قارئ شاشة، فهذا الحذف وحده خارج متناولك في الوقت الحالي. وهو مدرج عندنا.
التباين حيث يهم أكثر ما يهم
يبلغ النص الأساسي 17.4:1 في السمة الفاتحة و15.1:1 في الداكنة — وكلاهما يتجاوز أشد مستويات WCAG. وتسميات الحالة — متأخر، قريبًا، في موعده — عند 10:1 أو أفضل في السمة الفاتحة؛ أما في الداكنة فتعطي التسميات نفسها من 4.7:1 إلى 6.4:1، وهو ما يجتاز WCAG AA لكن دون هامش السمة الفاتحة، ونحن نفضّل طباعة الرقمين على طباعة الأفضل منهما.
تُحسب هذه القيم من لوحة الألوان نفسها باختبار يُسقط البناء بمجرد أن تتزحزح إحداها — فلا تستطيع هذه الصفحة أن تتقادم في صمت؛ وهي ليست مُقدّرة بالعين.
ما لا ندّعيه بعد
التباين الكافي في مجمله
نمتنع عمدًا عن إعلان التباين الكافي في App Store، لأنه ليس صحيحًا في كل مكان بعد. الرمادي الثانوي الذي يستعمله NoCheck للتلميحات والتعليقات والأسطر الفرعية يبلغ 3.25:1 في السمة الفاتحة — دون 4.5:1 التي يطلبها WCAG AA للنص الصغير. هو مقروء، وليس أبدًا المكان الوحيد الذي تظهر فيه معلومة، وهو مدرج على قائمتنا. السمة الداكنة لا تعاني من هذا.
مراجعة كاملة بقارئ شاشة
التسميات موجودة، لكن NoCheck لم يمر بعد بتدقيق من الطرف إلى الطرف بـ VoiceOver أو TalkBack على يد شخص يستعملهما يوميًا. وإلى أن يحدث ذلك، لن نقول إن التطبيق «يدعم VoiceOver» وكأن الأمر محسوم.
شاشات برايل والتحكم بالمفتاح والتحكم الصوتي
غير مُختبرة. ليس لدينا سبب للاعتقاد بأنها معطّلة، ولا دليل على أنها تعمل.
المعايير التي نقيس أنفسنا عليها
- WCAG 2.2 بمستوى AA هدفًا. كُتبت للويب، فبعض أجزائها لا ينتقل إلى تطبيق أصلي إلا على وجه التقريب؛ نتعامل معها بوصفها السقف الذي نسعى إليه، لا شهادة مُنحت لنا.
- Accessibility Nutrition Labels من Apple — لا نعلن إلا الخصائص التي يسندها الكود واختباراته، ولذلك جاءت القائمة على صفحتنا في App Store أقصر مما يمكن أن تكون.
- إرشادات Android لإمكانية الوصول بشأن مساحات اللمس والتسميات وتحجيم النص.
هذا الموقع
تُبقى كل صفحة في هذا الموقع عند درجة Lighthouse كاملة لإمكانية الوصول ضمن التكامل المستمر — وأي إصدار يهبط دون ذلك لا يُنشر. هذا فحص آلي لا يغني عن فحص بشري، لكنه يعني أن أي إصدار لا يتراجع في صمت.
أخبرنا بما يقف في طريقك
اكتب إلى support@nocheck.app. يفيدنا أن تذكر:
- على أي شاشة كنت،
- أي جهاز وأي إصدار من النظام،
- أي تقنية مساعدة كنت تستعمل، إن وُجدت،
- وما الذي توقعت حدوثه بدلًا من ذلك.
نقرأ كل رسالة. وإن كان شيء هنا قديمًا أو خاطئًا فذلك أيضًا يستحق بريدًا — فهذه الصفحة لا تنفع إلا ما دامت صادقة.