متوفر أيضًا بلغات أخرى: English · Español · Português · Français
أدوار ARIA: أي عنصر يحتاج دورًا وأيّها يحمله أصلًا
ابحث عن أي عنصر HTML وأي دور ARIA لتعرف: أينبغي لك كتابته، أم يجوز لك، أم أن العنصر هو ذلك الشيء أصلًا.
ما دور ARIA؟
دور ARIA يخبر التقنيات المساعدة بما يكونه جزء من الترميز: زرًّا أو منطقة تنقّل أو عنوانًا أو مربّع حوار. وتكتبه هكذا role="button"، فيغيّر طريقة إعلان قارئ الشاشة عنه وما يستطيع المستخدم فعله به.
تعرّف WAI-ARIA الأدوار نفسها. وتجيب مواصفة ثانية هي ARIA in HTML عن السؤال الذي يأتي به الناس فعلًا — أي الأدوار يجوز وضعها على أي عنصر HTML — وتفعل ذلك في جدول يغطي 139 عنصرًا. وهذا الجدول هو أساس هذه الصفحة، وهو الجدير بالقراءة، لأن الأدوار ليست متبادلة بين العناصر.
وأنفع ما فيه يكاد يمرّ دون انتباه: فواحد وثمانون من تلك العناصر تحمل دورًا أصلًا بلا أي سمة، وترويسة الجدول نفسها تقول إن إسنادها في الترميز غير موصى به. فعنصر button زرٌّ بالفعل، وh1 عنوانٌ بالفعل بمستواه. وفي أغلب الأحيان يكون الجواب الصحيح عن «أي دور أضع هنا» هو: لا دور.
طريقة الاستخدام
- اكتب العنصر. اسم الوسم وحده، ولا تضرّ أقواس الزاوية ولا الحروف الكبيرة. وحيث تقيّد المواصفة عنصرًا يقودك الاسم المجرّد إلى الصف المقيَّد: فكتابة a تعطيك قاعدة a with href.
- اكتب الدور الذي كنت ستضعه. تحصل على واحد من أربعة أجوبة: العنصر يحمله أصلًا، أو هو مسموح، أو غير مسموح هنا، أو القاعدة مشروطة فلا جواب قاطع.
- ثم انظر الفهرس العكسي أسفله. يعدّد العناصر التي تحمل ذلك الدور أصلًا بلا سمة، منفصلةً عمّا يقبله منها إن طلبته. وهذا في الغالب أفضل سبيل لحلّ المسألة.
الزائد ليس هو الخطأ
كتابة role="button" على عنصر button ترميزٌ صحيح. ليست خطأً ولا تكسر شيئًا. وإنما تعدّها المواصفة غير موصى بها لأنها لا تضيف شيئًا ولأنها قد تتخلّف: فإن غيّرت العنصر لاحقًا بقي الدور يصف شيئًا لم يعد موجودًا. وتذكر هذه الصفحة تلك الحالة حكمًا مستقلًّا بدل خلطها بالأخطاء الحقيقية، لأن إخبار أحدهم بأن ترميزه السليم معطوب أسوأ من السكوت.
أما الحالات الممنوعة حقًّا فشأن آخر. فواحد وخمسون عنصرًا لا تقبل دورًا سوى الذي تحمله — main وbody وhtml وbase وcaption وأمثالها — فـrole="navigation" على main غير مسموح ببساطة. وسبعة وثلاثون آخر لا تقبل إلا مجموعة محدّدة: فـa with href يقبل button وcheckbox وmenuitem وmenuitemcheckbox وmenuitemradio وoption وradio وswitch وtab أو tree، لا غير. وواحد وأربعون عنصرًا، وهي الصفحات البيضاء مثل span وabbr، تقبل أي دور كان.
ويبقى الأدوار نفسها، وقد سمّى الجدول منها خمسة وسبعين. فإن احتجت إلى واحد فالفهرس العكسي هو الطريق المختصر: اسأل أي العناصر زرٌّ أصلًا قبل أن تقرّر صنع زرّ من div.
عشرة عناصر لا تحكم فيها هذه الصفحة
عشر من القواعد الـ139 مكتوبة بشرط، والأداة تأبى أن تحكم فيها بدل أن تخمّن. فـtd وth وtr تتوقف على دور عنصر table الحاوي لها. وdiv يتوقف على كونه ابنًا مباشرًا لـdl. وfigure يتوقف على وجود figcaption في ذريّته. وlabel يتوقف على ارتباطه بعنصر قابل للتسمية.
وفي كل تلك الحالات تمتنع المواصفة عن إعطاء قاعدة مطلقة، فالأداة التي تخرج بنعم أو لا واثقة إنما تخترع قاعدة. ويُعرض نصّ المواصفة نفسه بدلًا من ذلك ليُقرأ في ضوء ترميزك الحقيقي. وهذا هو الجواب الأمين، ولهذا تعرض الصفحة النصّ الأصلي لكل عنصر لا خلاصتها هي فحسب.
وحدّان آخران يستحقان الذكر: هذا جدول العناصر وحده، ولمواصفة ARIA in HTML جدولان آخران، أحدهما عن خصائص HTML والآخر عن الذريّات التي يسمح بها كل دور، وليس واحد منهما مشمولًا هنا. ثم إن الصفحة تخبرك بما هو مسموح لا بما هو صواب: فالدور المسموح قد يظلّ الدور الخطأ، ولا جدول يعرف هل يسلك مكوّنك فعلًا سلوك تبويب.
لماذا هي مجانية؟
الجدول يسافر مع الصفحة في بضعة كيلوبايتات، وكل بحث يجري في متصفحك أنت. فلا يُرفع شيء مما تكتبه، ولا يُسجَّل شيء، ولا حساب عليك إنشاؤه.
بلا تسجيل، وبلا حدود، وبلا علامة مائية على أي شيء تنسخه.