سمات دور ARIA المطلوبة
ابحث عن دور ARIA واحصل على متطلباته بدقة: يتطلب checkbox السمة aria-checked، وله 8 سمات موصى بها مثل aria-label وaria-invalid، ويحتاج إلى اسم يمكن الوصول إليه. يستند إلى WAI-ARIA 1.2 ويرفض الأدوار غير المعروفة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- المنصب
- checkbox
- الفئة
- widget
- الفئة العليا
- input
- السمات المطلوبة
- aria-checked
- العدد المطلوب
- 1
تعرّف Accessible Rich Internet Applications (ARIA) عشرات الأدوار حتى تكشف الودجات المخصصة المعنى نفسه الذي تمنحه عناصر HTML الأصلية. لكل دور عقد ثابت: بعض الحالات والخصائص إلزامية، وأخرى موصى بها لدعم حقيقي لتقنيات المساعدة، وكثير من الأدوار يتطلب أيضًا اسمًا يمكن الوصول إليه. تخمين تلك السمات من الذاكرة مصدر شائع لفشل التدقيق — غياب aria-checked على دور checkbox، أو نسيان aria-controls على combobox، أو نشر معلم region بلا تسمية. تقبل هذه القدرة اسم دور ARIA واحدًا، وتُطبّع حالة الأحرف والبادئات الشائعة، وتُرجع حزمة حتمية: السمات المطلوبة، السمات الموصى بها، الفئة، الطبقة العليا، متطلبات الاسم، ووصفًا موجزًا مبنيًا على WAI-ARIA 1.2.
معنى سمات ARIA المطلوبة والموصى بها
في مواصفة WAI-ARIA يسرد كل دور ملموس Required States and Properties — السمات التي يجب أن يوفّرها المؤلف ليكون الدور صالحًا — وSupported States and Properties التي تتوقعها تقنيات المساعدة عندما يحتاج النمط إلى حالة أغنى. السمات المطلوبة غير قابلة للتفاوض: دور checkbox بلا aria-checked، أو slider بلا aria-valuenow، أو combobox بلا aria-controls وaria-expanded يفشل الفحوص الآلية ويُربك قارئات الشاشة.
السمات الموصى بها في هذه الواجهة هي الخصائص المدعومة التي يحتاجها المؤلفون غالبًا لسلوك صحيح للوحة المفاتيح وتقنيات المساعدة: أعلام الاختيار والتوسيع، حدّا القيمة الأدنى والأقصى لوِدجات المدى، والاتجاه لـ toolbars وtablists، ومساعدات التسمية مثل aria-label وaria-labelledby عندما لا يكفي النص الظاهر. تُبلغ الاستجابة أيضًا إن كان الدور يتطلب اسمًا يمكن الوصول إليه وكيف يُحسب ذلك الاسم (سمات المؤلف، محتوى العنصر، أو محظور). تبقى الأدوار الملموسة المهجورة مثل directory قابلة للاستعلام مع علامة تحذير حتى تنبّه أدوات الترحيل دون حجب البحث.
عقد الإدخال وشكل الاستجابة وسلوك الأخطاء
تظهر notes اختيارية عندما يكون المتطلب مشروطًا — مثلًا يحتاج separator القابل للتركيز إلى aria-valuenow وaria-valuemin وaria-valuemax بينما لا يحتاجها separator الزخرفي الثابت. مثال: دور checkbox يُرجع aria-checked مطلوبًا ومجموعة موصى بها تغطي readonly وrequired وdisabled والتسمية ورسائل الخطأ. مثال: دور scrollbar يُرجع الخصائص الأربع المطلوبة aria-controls وaria-valuenow وaria-valuemin وaria-valuemax.
اقرن البحث بوثائق التدقيق أو نظام التصميم لديك؛ فهذه النقطة لا تزحف على صفحة ولا تتحقق من الوسم الحي — تجيب فقط سؤال المواصفة لاسم دور واحد في كل مرة.
أين يفيد البحث عن سمات دور ARIA
تدمج أنظمة التصميم ومكتبات المكوّنات هذا البحث في مواقع الوثائق حتى يرى المهندسون السمات الدقيقة التي يجب أن ينفّذها ودجت مخصّص قبل مراجعة الشيفرة. تستدعي أدوات تدقيق الإتاحة وإضافات CI الواجهة كمرجع: من سلسلة role على عقدة تُجلب السمات المطلوبة ويُفشل البناء إن نقص أيّ منها. تستخدم منصات التدريب ودورات WCAG المسار المجاني في المتصفح حتى يستكشف المتعلمون checkbox مقابل switch أو dialog مقابل alertdialog دون حفظ جداول الخصائص كاملة.
تستفيد مواقع المحتوى التي تنافس على استعلامات سمات أدوار ARIA المطلوبة من ودجت حيّ منطقتُه النقية تطابق مسار الأتمتة المدفوع بايتًا ببايت. ثبّت في اختباراتك المصفوفات المرتّبة المُرجعة، ووثّق رفض الأدوار المجرّدة للمؤلفين الذين ينسخون أسماء التصنيف خطأً، فتحصل على عقد مستقر لأدلة الأسلوب وأدوات MCP ومدقّقات الحافة دون بناء محرك إتاحة كامل.
حالات الاستخدام
توثيق نظام التصميم
أنشئ جداول ARIA لكل مكوّن من سلسلة role حتى يرى المهندسون السمات المطلوبة والموصى بها بجانب واجهة React أو Web Component.
مراجع تدقيق إتاحة في CI
من قيم role المستخرجة من الوسم أو Storybook، تأكد أن كل سمة مطلوبة موجودة قبل الدمج؛ وافشل عند الأدوار المجرّدة أو المجهولة.
الأسئلة الشائعة
ما سمات ARIA المطلوبة لدور معيّن؟
أرسل اسم الدور (مثل checkbox أو combobox أو slider).
هل يتحقق هذا من صفحة HTML الخاصة بي؟
لا. يبحث فقط عن خصائص المواصفة لاسم دور واحد. استخدم مدقق إتاحة (مثل web.accessibility) لفحص الوسم الحي.
ما الفرق بين السمات الإلزامية والموصى بها؟
يجب أن تكون السمات الإلزامية موجودة حتى يكون الدور صالحًا، فالعنصر checkbox بلا aria-checked يفشل في الفحوص الآلية ويربك قارئات الشاشة. أما الموصى بها فهي ما تتوقعه التقنيات المساعدة عندما يحتاج النمط إلى حالة أغنى، مثل التعطيل أو القراءة فقط أو رسائل الخطأ.
هل يحتاج دور checkbox إلى اسم يمكن الوصول إليه؟
نعم. يبيّن البحث أن الاسم إلزامي، وأنه قد يأتي من محتوى العنصر نفسه أو من المؤلف، مثلًا عبر aria-label أو aria-labelledby عندما لا يكفي النص الظاهر.
ماذا يحدث للأدوار المهملة أو المجردة؟
يمكن البحث عن الأدوار المهملة مثل directory، لكنها تظهر مع علامة تنبيه حتى تحذّر أدوات الترحيل دون أن توقف العمل. أما الأدوار المجردة والأسماء غير المعروفة فتُرفض، حتى لا يضيف أحد سمات لدور غير موجود.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/web/aria-role-lookup \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"role":"checkbox"}'const res = await fetch("https://api.kit.forhosting.com/web/aria-role-lookup", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"role": "checkbox"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/aria-role-lookup",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"role": "checkbox"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/aria-role-lookup", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"role":"checkbox"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"role":"checkbox"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/aria-role-lookup", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"role": "checkbox"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.aria_role_lookup",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
timeout_sec | 30 |
max_crawl_pages | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تفشل الأسماء غير المعروفة والأدوار المجرّدة بـ invalid_input حتى لا يخترع المستدعي سمات لأدوار غير موجودة. الجدول النقي نفسه يغذّي أداة المتصفح المجانية وواجهة API المدفوعة مسبقًا بسعر $0.002 لكل عنصر ناجح.
عقد الإدخال وشكل الاستجابة وسلوك الأخطاء
أرسل جسم JSON بحقل نصّي إلزامي واحد role، وقد يصل أيضًا تحت الأسماء البديلة value أو name أو query أو aria_role. يقصّ المحرك المسافات، ويحوّل الرمز إلى أحرف صغيرة، ويزيل البادئات الاختيارية مثل role= أو aria-role، ويحذف المسافات أو الشرطات السفلية الداخلية حتى يُحلّ column header وcolumnheader معًا. عند النجاح يعيد الجسم الدور المُطبَّع وcategory وsuperclass وdescription وabstract false وrequired_attributes وrecommended_attributes كمصفوفات سلاسل مرتّبة وrequired_count وrecommended_count وname_required وname_from وdeprecated وspec مضبوطًا على WAI-ARIA 1.2. غياب role أو سلسلة فارغة أو أسماء مجهولة أو أدوار مجرّدة تُطلق invalid_input برسالة تسمّي المشكلة؛ ولا تُفوتر هذه الإخفاقات.
أين يفيد البحث عن سمات دور ARIA
ولأن التنفيذ من طبقة parse A بنموذج تكلفة تحليلي، يكلّف كل استدعاء ناجح السعر الأساسي المنشور $0.002، ويعمل دون شبكة في عزل العامل، ولا يعتمد على جلب موقع W3C.
حالات التكامل
تدريب وورش WCAG
اسمح للمتعلمين بالبحث التفاعلي عن checkbox وcombobox وregion ومقارنة قواعد name_required دون حفظ جداول WAI-ARIA كاملة.
أسئلة تقنية
ماذا يحدث إذا كان اسم الدور مجهولًا؟
تفشل المهمة بـ invalid_input ورسالة بأن الدور غير معروف. تُرفض أيضًا الأدوار المجرّدة مثل widget أو landmark لأن المؤلفين يجب ألا يستخدموها.
هل يميّز البحث بين الأحرف الكبيرة والصغيرة؟
لا. تُطبَّع أسماء الأدوار إلى أحرف صغيرة؛ تُزال البادئات الاختيارية مثل role=، وتُحذف المسافات أو الشرطات السفلية داخل الرمز.
كم تكلفة البحث عن سمات دور ARIA؟
أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل استدعاء ناجح؛ ولا تُفوتر المدخلات غير الصالحة.