لون يسهل الوصول إليه
لا تستخدِم اللون وحده للإشارة إلى توفّر مكوّن في واجهة المستخدم أو حالته: استخدِم الرموز و/أو الأشكال للمساعدة في التمييز. لا تشِر إلى النجاح أو الأخطاء باستخدام اللون فقط. استخدِم الرموز أو النص.
<!-- Good: Denotes state without colors alone -->
<div class="error-msg">
<span aria-hidden="true">❌</span>
<span>The password entered was invalid.</span>
</div>
التباين
- الحد الأدنى لمعايير التباين: يجب الحفاظ على نسبة 4.5:1 للنص العادي و3:1 للنص الكبير أو الرموز.
- التأكّد من استيفاء معايير تباين العناصر غير النصية: يجب الحفاظ على نسبة تباين لا تقل عن 3:1 لحدود مكوّنات واجهة المستخدم وحالاتها.
- ويشمل ذلك العناصر المرئية (الحدود والخلفيات وظلال المربّعات والخطوط السفلية) التي تشكّل الحدود أو تشير إلى وجود مكوّن في واجهة المستخدم (مثل حدود حقل الإدخال).
- ويشمل ذلك أيضًا العناصر المرئية التي تشير إلى الحالات النشطة داخل مكوّن (مثل علامات الاختيار في مربّعات الاختيار أو أزرار التبديل).
- تنبيه: قد يمثّل استيفاء نسبة التباين 3:1 للعناصر غير النصية تحديًا للتصاميم البسيطة. يمكن أن يؤدي استخدام التدرجات الناعمة أو الظلال الداخلية أو الخارجية الخفيفة إلى تخفيف الحدود المرئية مع تلبية متطلبات تسهيل الاستخدام.
- استخدام
prefers-contrastفقط عند الحاجة: يمكنك استخدام@media (prefers-contrast: more)عندما يتضمّن التصميم عناصر ذات تباين منخفض (مثل الحدود الدقيقة والنصوص الثانوية الخافتة) التي تحتاج إلى تعزيز، ولن تحتاج معظم المواقع الإلكترونية التي تستوفي الحد الأدنى من التباين إلى استخدام هذه الميزة.
أنظمة الألوان الفاتحة والداكنة
- إتاحة أنظمة الألوان الفاتحة والداكنة: يمكنك استخدام
@media (prefers-color-scheme: dark)وإقرانها بسمة CSScolor-schemeلكي تتطابق عناصر التحكّم في النماذج وأشرطة التمرير والأسطح الأخرى التي يعرضها وكيل المستخدم. لمزيد من التفاصيل، يُرجى الاطّلاع على الوضع الداكن.
وضع "الألوان الإلزامية"
- إتاحة "وضع الألوان المفروضة": في "وضع الألوان المفروضة" (التباين العالي في نظام التشغيل Windows)، يتجاهل المتصفّح ألوان المؤلف باستخدام كلمات رئيسية للنظام ويجرّد
background-imageوbox-shadowوborder-image. حدِّد الألوان الاحتياطية للنظام لرموز الألوان باستخدام@media (forced-colors: active). - استخدِم
forced-color-adjust: noneفقط عندما يكون اللون معلومة أساسية (مثل أداة تمييز البنية ونموذج علبة الألوان). لا تستخدِمforced-color-adjust: noneلمجرد الحفاظ على المظهر الجمالي. - لا تعتمد على
background-imageأوbox-shadowأوborder-imageلنقل الحدود أو الفواصل أو الحالة: تختفي هذه العناصر في وضع "الألوان المفروضة" (وغالبًا في الطباعة أيضًا). وإذا كان عليك استخدامها، تأكَّد من توفّر بديل في وضع الألوان المفروضة، مثلoutlineأوborderمع كلمات رئيسية لألوان النظام (CanvasTextأوLinkTextأوButtonTextأوHighlightأوGrayTextأو غيرها).
جارٍ إنشاء تدرّجات اللون
قبل إنشاء تدرجات الألوان ديناميكيًا، تحقَّق مما إذا كان بإمكانك استخدام رمز تصميم حالي ومحدّد مسبقًا. يسمح هذا بمزيد من التحكم في المصمم ويضمن الاتساق.
إذا كنت بحاجة إلى إنشاء ألوان أفتح أو أغمق بشكل ديناميكي:
- لا تكتفِ بضبط قناة الإضاءة في
oklch/oklabأوlch/lab، مثلoklab(from var(--primary) 0.9 a b). على الرغم من أنّ هذه هي الطريقة الصحيحة من الناحية النظرية، لا تطبّق المتصفّحات بعد عملية تعيين النطاق، لذا لا يمكن توقّع اللون الناتج. - يمكنك استخدام
color-mix()للمزج مع الأبيض أو الأسود (يُفضَّل استخدامoklab)، ما يحافظ على اللون بأمان في النطاق، ولكنّه يميل إلى إلغاء تشبُّع الألوان بشكل مفرط وإنتاج تدرّجات وظلال باهتة. - يمكنك الجمع بين تعديل السطوع وأي من الطرق الأخرى (مثل
color-mix(in oklab, oklch(from var(--primary) 0.9 c h), white 30%)) لتحقيق التوازن بين الاثنين، ولكن تجنَّب تجاوز% 30 في تعديل السطوع.