التخطّي إلى المحتوى
menumenu tanreiexpand_morecontrasttranslate
tanreiexpand_more
البدءWebReactSwiftUIJetpack ComposeFlutterReact Nativeالإعدادات الجاهزةنظام التصميم الخاص بكاستخدام Tanrei مع وكلاء الذكاء الاصطناعيالعلامة التجاريةرموز التصميمأنظمة التصميم والتخصيصTheme Studioاللونالطباعةالأيقوناتالشكلالارتفاعالحركةحالات التفاعلالسلوكالتخطيطإمكانية الوصولالكلماترموز الألوانرموز السلّم الطباعيرموز الشكلرموز الارتفاعرموز الحركةرموز الحالةرموز التباعد والقياسالمكوّناتالزرزر الإجراء الرئيسيالزر المقسَّممجموعة الأزرارزر مع قائمةشريط الأدواتزر النسخخانة الاختيارزر الاختيارمفتاح التبديلالرقاقةقائمة الخياراتشريط التمريرحقل شريط التمريرالتقويمDateTimePickerمجموعة الحقولمجموعة أزرار الاختيارمجموعة خانات الاختيارعنصر الاختيارحقل الاختيارشريط القوائمرفع الملفاتمنتقي الملفات متقدّمساحة الإفلاتحقل إدخال النص متقدّمحقل النصحقل الرقاقاتالحقلمربع التحرير والسرد متقدّمحقل التحرير والسردحقل إدخال العدد متقدّمحقل العددحقل إدخال اللون متقدّمحقل اللونحقل إدخال الرمز لمرة واحدة متقدّمحقل الرمز لمرة واحدةحقل إدخال النص المدمج متقدّممربع كتابة الرسائلالبطاقةالفاصلالطبقة النمطية متقدّممربع الحوارالقائمة (list)صف القائمةاللوحة السفليةاللوحة الجانبيةالعرض الدوّاركتلة الشيفرةالجدولاللوحة المنبثقةالخطواتالأكورديونقائمة الوصفالشكل التوضيحيهيكل التطبيقرأس الصفحةالعرض الشجريالخط الزمنيمعاينة الصورمقبض تغيير الحجمالإطار القابل لتغيير الحجممنطقة التمريرالشارةمؤشر التقدمالعدّادعارض الأرقام المتحرّكمؤشر التحميلشريط الإشعار (Snackbar)التلميحاختصار لوحة المفاتيحالوسمالشيفرة المضمَّنةالتنويهالصورة الرمزيةالحالة الفارغةمجموعة الوسومهيكل التحميلعنصر الملفمربع اللونالنص المتحركعلامات التبويبعرض التبويباتشريط التطبيقشريط التنقلدرج التنقلالبحثالرابطالتنقل بين الصفحاتروابط السابق والتاليمؤشر الخطواتمسار التنقلجدول المحتوياتبطاقة الرابطقائمة FABالحالةكيف يُبنى Tanreiالمساهمةالترخيص والإسناد
الرئيسيةالأسسإمكانية الوصول

إمكانية الوصول

متطلبات إمكانية الوصول التي يبنيها Tanrei في الرموز ومواصفات المكوّنات، والفحوص التي تفرضها.

content_copyعرض بتنسيق Markdown

إمكانية الوصول في Tanrei مجموعة قيود على النظام نفسه. يرفض بناء الرموز (tokens) إنتاج مخطط لوني يخفق في التباين، ولا تصحّ مواصفة مكوّن بلا دوره وجدول مفاتيحه وضمان هدفه.

التباين

يقيس بناء الرموز كل مخطط لوني، الفاتح والداكن عند التباين القياسي والمتوسط والعالي، بهذه العتبات، ويفشل حين يقصر عنها زوج:

المحتوى التباين القياسي والمتوسط التباين العالي
النص، والأيقونات المرسومة بلون محتوى 4.5:1 7:1
علامة حالة على حاويتها اللونية الخاصة 3:1 3:1
الحدود والرسوم اللازمة لتمييز عنصر تحكم أو تشغيله 3:1 3:1
حلقة التركيز مقابل الأسطح المجاورة 3:1 3:1

لا عتبة أدنى للنص الكبير. تقبل WCAG تباينًا أقل للنص الذي يبلغ نحو 24px بالوزن العادي، أو 19px بالوزن العريض، فما فوق، لكن البناء يُلزم كل أدوار النص بنسبة 4.5:1، و 7:1 عند التباين العالي: فدور اللون لا يعرف الحجم الذي سيُستخدم به.

العناصر المعطَّلة والزينة الخالصة معفاة، وكذلك الخط الرفيع بالدور outline-variant عند التباين القياسي. وهذا الإعفاء هو السبب في أن الحدّ الذي يكون العلامة الوحيدة على عنصر تحكم يجب أن يستخدم outline لا outline-variant.

الثوابت المفروضة

تصحّ هذه الشروط لكل سمة عند كل مستوى تباين، أي ست تركيبات في المجموع، وإلا فشل البناء:

  • كل زوج أدوار (X, on-X)، وكل دور نص (on-surface و on-surface-variant و link ولون أي غرض) على كل دور سطح، لا يقل عن 4.5:1، ولا يقل عن 7:1 في المخططين عاليي التباين؛
  • لون كل حالة لا يقل عن 3:1 مقابل حاويتها اللونية الخاصة؛
  • outline لا يقل عن 3:1 مقابل كل دور سطح؛
  • في النظام الافتراضي عند التباين المتوسط والعالي، outline-variant لا يقل عن 3:1 و 4.5:1 مقابل كل دور سطح، ويبقى outline أقوى منه؛
  • focus-ring لا يقل عن 3:1 مقابل الأسطح.

تمنع قواعد المشروع تخفيف عتبة لكي ينجح فحص.

حجم الهدف

The least sizes of what a person presses. minimum is the least height (and, for an icon-only control, width) anything pressable is drawn at; touch and pointer are the least hit areas, which a control reaches past what it draws where it stands alone.

الرمز القيمة معاينة
--tanrei-sys-target-minimum 32px
--tanrei-sys-target-pointer 44px
--tanrei-sys-target-spacing 8px
--tanrei-sys-target-touch 48px

مولَّد من design/tokens/tanrei.light.tokens.json, tokens/sys/measure.tokens.json

الحجم المرئي ليس مساحة اللمس. ارتفاع الزر الصغير في Tanrei هو 32 وحدة، وهذا يناسب شريط أدوات كثيفًا، لكنه يستجيب مع ذلك على امتداد 48 وحدة على الأقل للّمس و 44 للمؤشر. تمدّ المكوّنات مساحة لمسها على نحو غير مرئي، وتُبقي 8 وحدات على الأقل بين الأهداف المتجاورة. تعلن كل مواصفة هذا الضمان، وتختبره كل منصة.

التركيز

يعرض كل مكوّن تفاعلي مؤشر التركيز المكوَّن من فجوة ثم حلقة عند التركيز بلوحة المفاتيح أو بالتقنيات المساعدة، فورًا وبلا حركة. يتبع ترتيب التركيز ترتيب القراءة. وتخرج المكوّنات المعطَّلة من ترتيب التركيز.

لوحة المفاتيح

تحتوي مواصفة كل مكوّن على جدول بالمفاتيح والإجراءات، يُعرض في صفحة توثيقه تحت إمكانية الوصول. والمنصات التي تدعم لوحة مفاتيح مادية تنفّذ الجدول بحذافيره.

تكبير النص

يجب أن تبقى الواجهات صالحة للاستخدام والنص عند 200%. تكبر الحاويات مع نصها، وتلتفّ التسميات على أسطر قبل أن تُقتطع، ولا شيء يعتمد على ارتفاع ثابت ليسع سطرًا من النص. وتستخدم التنفيذات الأصلية آلية النص القابل للتكبير في كل منصة.

تقليل الحركة

حين يطلب النظام تقليل الحركة، تُزال الحركة المكانية أو يحلّ محلّها تلاشٍ وجيز، ولا يتكرر شيء في حلقة. انظر الحركة.

الدلالات

تسمّي المواصفة دور WAI-ARIA للمكوّن وطريقة تكوين اسمه المتاح للتقنيات المساعدة. وتقابل كل منصة الدور بنظيره الأصلي: صفات إمكانية الوصول (accessibility traits) في SwiftUI، وخصائص الدلالات (semantics) في Compose و Flutter، و accessibilityRole في React Native. وعلى الويب يفضّل Tanrei العناصر الأصلية داخل shadow root، حتى ترى المتصفحات وأدوات الاختبار دلالات حقيقية.

كيف تُختبر

المنصة الفحص الآلي
Web axe-core في Playwright
SwiftUI تدقيق إمكانية الوصول في XCTest
Compose فحوص Accessibility Test Framework
Flutter مطابِقات meetsGuideline
React Native تأكيدات الدور والتسمية، مع تدقيقات أصلية عبر تطبيق المعرض

ملاحظة

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