حساب فرق السطوع W3C
قارن بين لونين باختبار السطوع القديم من W3C: الفرق بين الأسود والأبيض 255، أي أعلى بكثير من 125 المطلوبة للنجاح. مفيد لإعادة التدقيقات القديمة، أما قرارات إمكانية الوصول الحالية فاعتمد فيها على فحص تباين WCAG. مجاناً في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- اللون 1
- #000
- اللون 2
- #fff
- اللون 1
- #000000
- اللون 2
- #FFFFFF
- السطوع 1
- 0
- السطوع 2
- 255
تقارن هذه الحاسبة لونين سداسيين باستعمال الصيغة التاريخية للسطوع المدرك المرتبطة بمسودة AERT لدى W3C. وتحول كل لون إلى قيمة موزونة، ثم تحسب الفرق المطلق وتبين هل يتجاوز 125. تتضمن النتيجة الحتمية اللونين بعد توحيدهما، وقيمتي السطوع، والفرق، والحد، وحالة النجاح. تفيد الأداة في إعادة إنتاج عمليات التدقيق القديمة، لكنها لا تحل محل نسبة التباين الحديثة في WCAG.
ما الذي يقيسه اختبار السطوع التاريخي
يقدر الاختبار مدى ظهور كل لون فاتحا أو داكنا عبر إعطاء أوزان مختلفة لقنوات الأحمر والأخضر والأزرق. فالعين البشرية أكثر حساسية للأخضر، ثم الأحمر، ثم الأزرق؛ لذلك تضرب الصيغة الأحمر في 299، والأخضر في 587، والأزرق في 114، ثم تقسم المجموع على 1000. تحسب القدرة سطوع اللونين وتأخذ الفرق المطلق بينهما.
لا تنجح النتيجة إلا إذا كانت أكبر من 125؛ أما القيمة 125 بالضبط فلا تنجح. ولهذا لا يؤثر ترتيب اللونين في الحكم. تقيس هذه العملية انفصال السطوع فقط، ولا تطبق صيغة فرق اللون التاريخية المكملة، ولا تنتج نسبة التباين التي تفرضها WCAG الحديثة.
استخدمها عندما يلزم إعادة إنتاج قاعدة قديمة، أو مقارنة نتائج أداة موروثة، أو صيانة نظام يذكر هذه الصيغة صراحة. أما في أعمال الإتاحة الجديدة، فينبغي عد النتيجة معلومة مساندة لا دليلا كاملا على المطابقة.
كيفية إدخال اللونين وقراءة الاستجابة
أدخل كل لون بترميز RGB سداسي يبدأ بعلامة الرقم. تقبل الصيغة المختصرة ذات الخانات الثلاث مثل #0AF، والصيغة الكاملة ذات الخانات الست مثل #00AAFF. توسع القيم المختصرة بتكرار كل خانة، وتعيد الأداة الألوان موحدة في ست خانات كبيرة.
ترفض قنوات ألفا، وأسماء ألوان CSS، ودوال rgb()، والمسافات، والقيم التي لا تبدأ بالعلامة، بدلا من تخمين المقصود.
استخدام النتيجة في التدقيق والأتمتة
تلائم هذه القدرة المواصفات واختبارات الانحدار وأرشيفات التصميم والتطبيقات القديمة التي تذكر فرق السطوع وفق W3C صراحة. احفظ اللونين الموحدين والفرق المعاد ضمن سجل التدقيق، كي يتمكن مراجع آخر من إعادة الحكم من دون الاعتماد على لقطة شاشة أو محلل ألوان المتصفح. وفي الأتمتة، اقرأ passes واستعمل القيم التفصيلية في التقارير والتشخيص.
يعني الفشل فقط أن الزوج لا يتجاوز الحد التاريخي، ويعني النجاح فقط أنه يتجاوزه. ولا تثبت أي من النتيجتين مستوى حديثا من WCAG، لأن القواعد الحالية تستخدم النصوع النسبي ونسبة التباين وحدودا تختلف بحسب النص. إذا احتاج مشروعك إلى المعيارين، فنفذ هذا الاختبار التاريخي واختبار WCAG منفصلا.
حالات الاستخدام
إعادة إنتاج تدقيق إتاحة قديم
أعد حساب نتيجة تاريخية بالأوزان الدقيقة وبشرط التجاوز الصارم للحد.
حماية اختبارات الانحدار
قارن أزواجا ثابتة من الألوان واكتشف أي تغيير في قاعدة قبول موروثة.
مراجعة أنظمة التصميم المؤرشفة
وثق أداء لوحات الألوان القديمة وفق اختبار السطوع المستخدم عند إنشائها.
الأسئلة الشائعة
ما الصيغة التي تستخدمها هذه الحاسبة؟
تحسب (299 × الأحمر + 587 × الأخضر + 114 × الأزرق) / 1000 لكل لون، ثم تأخذ الفرق المطلق.
ما القيمة التي تنجح في الاختبار القديم؟
يجب أن يكون فرق السطوع أكبر من 125. أما القيمة 125 بالضبط فلا تنجح.
هل يعني النجاح استيفاء تباين WCAG الحالي؟
لا. تستخدم WCAG الحديثة النصوع النسبي ونسبة التباين؛ وهذا اختبار تاريخي مختلف.
ما صيغ الألوان المقبولة؟
استخدم الترميز #RGB أو #RRGGBB. لا تقبل ألفا، أو أسماء CSS، أو صيغة rgb()، أو المسافات المحيطة.
هل يؤثر ترتيب اللونين؟
لا. لأن الفرق مطلق، فإن عكس اللونين يبقي الفرق والحكم من دون تغيير.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/color/brightness-diff-w3c \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color_1":"#000000","color_2":"#FFFFFF"}'const res = await fetch("https://api.kit.forhosting.com/color/brightness-diff-w3c", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color_1": "#000000",
"color_2": "#FFFFFF"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/brightness-diff-w3c",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color_1": "#000000",
"color_2": "#FFFFFF"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/brightness-diff-w3c", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color_1":"#000000","color_2":"#FFFFFF"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color_1":"#000000","color_2":"#FFFFFF"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/brightness-diff-w3c", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"color_1": "#000000",
"color_2": "#FFFFFF"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.brightness_diff_w3c",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_color_chars | 7 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
كيفية إدخال اللونين وقراءة الاستجابة
تعرض الاستجابة brightness_1 وbrightness_2 على المقياس من 0 إلى 255، وbrightness_difference بوصفه الفرق المطلق، وthreshold بقيمة 125، وpasses كقيمة منطقية. تقرب الأرقام المعروضة إلى ثلاث منازل لضمان ثبات JSON، لكن الحكم يعتمد على القيمة غير المقربة. لذلك لا يغير العرض حالة قريبة من الحد. وإذا بدلت color_1 وcolor_2، تتبادل قيمتا السطوع الفرديتان فقط، ويبقى الفرق والحكم كما هما.
استخدام النتيجة في التدقيق والأتمتة
تبلغ كلفة كل طلب API مقدار $0.002، بينما يشغل المتصفح المنطق الحتمي نفسه بلا شبكة أو عشوائية أو وقت أو حالة خفية.
أسئلة تقنية
كم تبلغ كلفة طلب API؟
تبلغ كلفة كل طلب API مقدار $0.002. وينفذ المتصفح المنطق الحتمي نفسه محليا.