فحص الحد الأدنى لحجم هدف اللمس
تقارن أداة فحص حجم هدف اللمس العرض والارتفاع الظاهرين لزر أو رابط أو عنصر تحكم بأيقونة أو أي عنصر تفاعلي آخر بالحد الأدنى الذي تختارونه. تستخدم افتراضيًا هدفًا بمقاس 44 في 44 نقطة، وهو مرجع شائع في تصميم الأجهزة المحمولة، مع إمكان تحديد عتبة ووحدة أخريين. تعرض النتيجة نجاح كل بُعد والحكم الإجمالي ومقدار النقص الدقيق الواجب تصحيحه.
شغّل الأداة مجانًا
قيسوا الهدف التفاعلي لا الأيقونة الظاهرة وحدها
ترتبط سهولة الوصول باللمس بالمساحة التي تستجيب للنقرة. فقد توجد أيقونة صغيرة داخل زر ذي حشو مريح، ولذلك قد يجعل قياس الرسم وحده عنصر تحكم جيدًا يبدو غير ناجح. وقد يحدث العكس أيضًا: تبدو الأيقونة كبيرة بينما يشغل عنصرها القابل للنقر مربعًا أصغر. افحصوا العنصر التفاعلي بعد عرضه وأدخلوا عرضه وارتفاعه. استخدموا الوحدة نفسها لقيم المقاسات الأربع كلها. تعتمد الأداة افتراضيًا النقاط وحدًا أدنى يبلغ 44 في 44، لكنها لا تحول تلقائيًا بين النقاط والبكسلات والبكسلات المستقلة عن الكثافة والمليمترات، لأن هذه الوحدات تعتمد على التصميم وسياق التشغيل. تُسجَّل الوحدة في النتيجة كي تظل التقارير واضحة المعنى. يجب أن يكون العرض والارتفاع عددين موجبين ومحدودين. تُرفض القيمة صفر والقيم السالبة والأبعاد الناقصة والنصوص والأعداد غير المحدودة بدلًا من إصدار حكم مضلل بشأن سهولة الوصول. لذلك تناسب النتيجة المراجعات اليدوية وفحوص أنظمة التصميم والاختبارات الآلية الحتمية.
افهموا فحوص الأبعاد ومقادير النقص
لا ينجح هدف اللمس إلا عندما يبلغ كلا البعدين الحد الأدنى المقابل له أو يتجاوزه. تفصل الاستجابة بين width_passes وheight_passes لأن عنصر التحكم العريض والقصير يظل محتاجًا إلى المعالجة حتى إن بدت مساحته الكلية كبيرة. لا تكون meets_minimum صحيحة إلا إذا كانت العلامتان صحيحتين. عند فشل أحد البعدين، يبين مقدار النقص بالضبط ما يجب إضافته بالوحدة المختارة، أما البعد الناجح فمقدار نقصه صفر. على سبيل المثال، يفشل إجمالًا هدف مقاسه 40 في 52 نقطة أمام حد أدنى 44 في 44: ينجح الارتفاع ويفشل العرض، وتكون قيمة width_shortfall هي 4. تُعد المساواة نجاحًا، ولذلك يطابق مقاس 44 في 44 العتبة الافتراضية تمامًا. تقارن العملية البعدين بصورة مستقلة ولا تعتبر المستطيل ذا المساحة المساوية مكافئًا للمربع. لهذا الفرق أهمية في اللمس، فالهدف الضيق جدًا أو القصير جدًا يظل صعب الإصابة حتى إذا كانت مساحته كبيرة حسابيًا. لا يُطبَّق أي تقريب، ولذلك تحتفظ القياسات العشرية والحدود الدنيا المخصصة بالدقة التي تقدمونها.
اختاروا الحد الأدنى الموافق لمعياركم
تنشر أنظمة التصميم ومعايير سهولة الوصول أحجامًا مختلفة للأهداف، ولا تكون الوحدات المتشابهة في المظهر قابلة للتبادل تلقائيًا. استخدموا القيمة الافتراضية 44 في 44 نقطة عندما تكون هذه هي القاعدة المراد فحصها. إذا كان منتجكم يحدد هدفًا آخر، فأدخلوا minimum_width وminimum_height صراحة بالوحدة نفسها المستخدمة لقياس العنصر. مثلًا، يستطيع فريق يفحص قاعدة 48 في 48 بكسلًا مستقلًا عن الكثافة ضبط الحدين على 48 واختيار dp. وفي تدقيق الويب يمكن اختيار px وإدخال عتبة بكسلات CSS التي يفرضها المعيار المعتمد. تقدم الأداة مقارنة هندسية؛ ولا تدعي أن قيمة افتراضية واحدة تثبت الامتثال لكل معايير سهولة الوصول، كما لا تفحص استثناءات التباعد أو الأهداف المتداخلة أو سلوك التكبير أو الإيماءات البديلة أو حجم عناصر التحكم المجاورة. تتطلب هذه الجوانب مراجعة التخطيط والتفاعل. استخدموا النتيجة فحصًا محددًا قابلًا للتكرار ضمن تلك العملية الأوسع. ولأن الخوارزمية لا تستخدم الشبكة أو الساعة أو العشوائية أو استعلامات الجهاز، فإن المدخل نفسه يعطي دائمًا المخرج نفسه في المتصفح وعبر API.
حالات الاستخدام
مراجعة مواصفات تصميم للأجهزة المحمولة
قارنوا المقاسات المقترحة للأزرار وعناصر التحكم ذات الأيقونات بالحد الأدنى للمس الذي يعتمده نظام تصميم المنتج.
فرز نتائج تدقيق سهولة الوصول
حولوا أبعاد العناصر المقيسة إلى نتائج مستقلة للعرض والارتفاع، مع مقادير نقص دقيقة لإدراجها في مهام الإصلاح.
اختبار مكونات نظام التصميم
استخدموا نتائج حتمية في الفحوص الآلية للأنواع الصغيرة والعادية والكبيرة قبل الإصدار.
الأسئلة الشائعة
ما الحد الأدنى الذي تستخدمه الأداة افتراضيًا؟
تستخدم 44 في 44 نقطة. اضبطوا minimum_width وminimum_height وunit إذا كان معياركم يعتمد عتبة أخرى.
هل ينجح الهدف إذا كان أحد البعدين وحده كبيرًا بما يكفي؟
لا. يُفحص العرض والارتفاع كل على حدة، ولا تكون meets_minimum صحيحة إلا عندما ينجح كلاهما.
هل تحول الأداة بين النقاط والبكسلات وdp والمليمترات؟
لا. يجب استخدام الوحدة المختارة نفسها لأبعاد العنصر والحدود الدنيا؛ وتتجنب الأداة التحويلات التي تعتمد على السياق.
هل أقيس الأيقونة أم المساحة القابلة للنقر؟
قيسوا مساحة الاستجابة التفاعلية كاملة، بما فيها الحشو القابل للنقر، لا الأيقونة أو التسمية الظاهرة وحدها.
هل تضمن النتيجة الناجحة الامتثال لمتطلبات سهولة الوصول؟
لا. تتحقق الأداة فقط من الأبعاد المقدمة وفق الحد المحدد. أما التباعد والاستثناءات والإيماءات والمتطلبات الأخرى فتحتاج إلى مراجعة منفصلة.
ما تكلفة استخدام API؟
يبدأ الوصول عبر API من $0.002 لكل طلب. تنفذ نسخة المتصفح العملية الحتمية نفسها محليًا.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/verify/touch-target-size-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":48,"height":48}'const res = await fetch("https://api.kit.forhosting.com/verify/touch-target-size-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 48,
"height": 48
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/touch-target-size-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 48,
"height": 48
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/touch-target-size-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":48,"height":48}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":48,"height":48}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/touch-target-size-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"width": 48,
"height": 48
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.touch_target_size_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |