Ax هو محرك اختبار إمكانية الوصول لمواقع الويب وواجهات المستخدم الأخرى المستندة إلى HTML. إنه سريع وآمن وخفيف الوزن، وقد تم تصميمه للتكامل بسلاسة مع أي بيئة اختبار موجودة حتى تتمكن من أتمتة اختبار إمكانية الوصول إلى جانب الاختبار الوظيفي العادي.
قم بالتسجيل للحصول على أخبار الفأس للحصول على أحدث ميزات الفأس والإصدارات المستقبلية والأحداث.
يحتوي Axe-core على أنواع مختلفة من القواعد، لـ WCAG 2.0 و2.1 و2.2 على المستوى A وAA وAAA بالإضافة إلى عدد من أفضل الممارسات التي تساعدك على تحديد ممارسات إمكانية الوصول الشائعة مثل التأكد من أن كل صفحة تحتوي على عنوان h1
، وللمساعدة يمكنك تجنب "مسكتك" في ARIA مثل حيث سيتم تجاهل سمة ARIA التي استخدمتها. يمكن العثور على القائمة الكاملة للقواعد ومستوى WCAG المجمع وأفضل الممارسات في doc/rule-descriptions.md.
باستخدام Axe-core، يمكنك العثور على 57% من مشكلات WCAG في المتوسط تلقائيًا . بالإضافة إلى ذلك، ستعيد النواة المحورية العناصر باعتبارها "غير مكتملة" حيث لا يمكن التأكد من النواة المحورية، وتلزم المراجعة اليدوية.
لاكتشاف الأخطاء في مرحلة مبكرة من دورة التطوير، نوصي باستخدام ملحق axe-linter vscode. لتحسين تغطية الاختبار بشكل أكبر، نوصي بالاختبارات الموجهة الذكية في ملحق الفأس.
قم أولاً بتنزيل الحزمة:
npm install axe-core --save-dev
قم الآن بتضمين ملف جافا سكريبت في كل إطار من إطارات iframe الخاصة بك في التركيبات أو أنظمة الاختبار الخاصة بك:
< script src =" node_modules/axe-core/axe.min.js " > script >
الآن قم بإدراج الاستدعاءات في كل نقطة في اختباراتك حيث تصبح قطعة جديدة من واجهة المستخدم مرئية أو مكشوفة:
axe
. run ( )
. then ( results => {
if ( results . violations . length ) {
throw new Error ( 'Accessibility issues found' ) ;
}
} )
. catch ( err => {
console . error ( 'Something bad happened:' , err . message ) ;
} ) ;
لا يمكن للويب أن يصبح مساحة شاملة يسهل الوصول إليها إلا إذا تم تمكين المطورين لتحمل مسؤولية اختبار إمكانية الوصول وممارسات البرمجة التي يمكن الوصول إليها.
يعد اختبار إمكانية الوصول الآلي بمثابة توفير كبير للوقت، ولا يتطلب خبرة خاصة، ويسمح للفرق بتركيز موارد الخبراء على مشكلات إمكانية الوصول التي تحتاج إليها حقًا. لسوء الحظ، فإن معظم أدوات إمكانية الوصول مخصصة للتشغيل على المواقع والتطبيقات التي وصلت إلى نهاية عملية التطوير وغالبًا لا تعطي نتائج واضحة أو متسقة، مما يسبب الإحباط والتأخير فقط عندما تعتقد أن منتجك جاهز للشحن.
تم تصميم Axe ليعكس كيفية عمل تطوير الويب فعليًا. وهو يعمل مع جميع المتصفحات والأدوات وبيئات الاختبار الحديثة التي قد يستخدمها فريق التطوير. باستخدام الفأس، يمكن إجراء اختبار إمكانية الوصول كجزء من اختبار الوحدة الخاصة بك، واختبار التكامل، واختبار المتصفح، وأي اختبار وظيفي آخر يقوم به فريقك بالفعل على أساس يومي. يؤدي دمج اختبار إمكانية الوصول في عملية التطوير المبكرة إلى توفير الوقت والموارد وجميع أنواع الإحباط.
تدعم واجهة برمجة تطبيقات axe-core المتصفحات التالية بشكل كامل:
الدعم يعني أننا سنقوم بإصلاح الأخطاء ومحاولة اختبار كل متصفح بانتظام. يتم حاليًا اختبار Chrome وFirefox فقط عند كل طلب سحب.
هناك دعم محدود لـ JSDOM. سنحاول أن نجعل جميع القواعد متوافقة مع JSDOM، لكن عندما لا يكون ذلك ممكنًا، نوصي بإيقاف تشغيل هذه القواعد. من المعروف حاليًا أن قاعدة color-contrast
لا تعمل مع JSDOM.
يمكننا فقط دعم البيئات التي تكون فيها الميزات إما مدعومة أصلاً أو مملوءة بشكل صحيح. نحن لا ندعم تطبيق v0 Shadow DOM المهمل.
تتكون حزمة API ax-core من:
axe.js
- ملف JavaScript الذي يجب تضمينه في موقع الويب الخاص بك قيد الاختبار (API)axe.min.js
- نسخة مصغرة من الملف أعلاه يمكن بناء الفأس باستخدام لغتك المحلية. للقيام بذلك، يجب إضافة ملف الترجمة إلى الدليل ./locales
. يجب تسمية هذا الملف بالطريقة التالية:
. لإنشاء ax باستخدام هذه اللغة، بدلًا من الإعداد الافتراضي، قم بتشغيل ax باستخدام علامة --lang
، كما يلي:
grunt build --lang=nl
أو ما يعادله:
npm run build -- --lang=nl
سيؤدي هذا إلى إنشاء بنية جديدة لـ axe، تسمى axe.
و axe.
. إذا كنت تريد إنشاء جميع الإصدارات المترجمة، فما عليك سوى تمرير --all-lang
بدلاً من ذلك. إذا كنت تريد إنشاء إصدارات مترجمة متعددة (ولكن ليس جميعها)، فيمكنك تمرير قائمة لغات مفصولة بفواصل إلى علامة --lang
، مثل --lang=nl,ja
.
لإنشاء ترجمة جديدة لـ axe، ابدأ بتشغيل grunt translate --lang=
. سيؤدي هذا إلى إنشاء ملف json في دليل ./locales
، مع النص الإنجليزي الافتراضي الذي يمكنك ترجمته. وبدلاً من ذلك، يمكنك نسخ ./locales/_template.json
. نحن نرحب بأي ترجمة لـ Ax-core. للحصول على تفاصيل حول كيفية المساهمة، راجع قسم المساهمة أدناه. للحصول على تفاصيل حول بناء جملة الرسالة، راجع التحقق من قالب الرسالة.
لتحديث ملف ترجمة موجود، أعد تشغيل grunt translate --lang=
. سيؤدي هذا إلى إضافة رسائل جديدة مستخدمة باللغة الإنجليزية وإزالة الرسائل التي لم يتم استخدامها باللغة الإنجليزية.
بالإضافة إلى ذلك، يمكن تطبيق اللغة في وقت التشغيل عن طريق تمرير كائن locale
إلى axe.configure()
. يجب أن يكون كائن الإعدادات المحلية بنفس شكل الإعدادات المحلية الموجودة في دليل ./locales
. على سبيل المثال:
axe . configure ( {
locale : {
lang : 'de' ,
rules : {
accesskeys : {
help : 'Der Wert des accesskey-Attributes muss einzigartig sein.'
}
// ...
} ,
checks : {
abstractrole : {
fail : 'Abstrakte ARIA-Rollen dürfen nicht direkt verwendet werden.'
} ,
'aria-errormessage' : {
// Note: doT (https://github.com/olado/dot) templates are supported here.
fail : 'Der Wert der aria-errormessage ${data.values}` muss eine Technik verwenden, um die Message anzukündigen (z. B., aria-live, aria-describedby, role=alert, etc.).'
}
// ...
}
}
} ) ;
يدعم Axe-core اللغات التالية. لاحظ أنه نظرًا لأن مجتمعنا يساهم باللغات المحلية، فلا نضمن تضمين جميع الترجمات المطلوبة في الإصدار.
لدى Axe-core إصدار ثانوي جديد كل 3 إلى 5 أشهر، والذي يقدم عادةً قواعد وميزات جديدة. نوصي بجدولة الوقت للترقية إلى هذه الإصدارات. سيتم توفير التحديثات الأمنية لخطوط الإصدارات الثانوية التي يصل عمرها إلى 18 شهرًا .
DEQUE، وDEQUELABS، وAXE®، وAXE-CORE® هي علامات تجارية مملوكة لشركة Deque Systems, Inc. ويجب أن يكون استخدام العلامات التجارية Deque متوافقًا مع سياسة العلامات التجارية الخاصة بـ Deque.
راجع دعم ARIA المحوري للحصول على قائمة كاملة بالأدوار والسمات المدعومة من ARIA حسب المحور.
اقرأ دليل اقتراح قواعد الفأس الأساسية
اقرأ الوثائق المتعلقة بالهندسة المعمارية
اقرأ الوثائق الخاصة بالمساهمة
قائمة المشاريع التي تستخدم الفأس الأساسية
شكرًا لـ Marat Dulin على تطبيقه لمحلل محدد CSS والذي تم تضمينه لدعم Shadow DOM. شكرًا آخر لمنفذي Slick Parser على مساهمتهم، لقد استخدمنا بعض خوارزمياتهم في كود دعم Shadow DOM الخاص بنا. شكرًا لـ Lea Verou وChris Lilley على مكتبة colorjs.io التي استخدمناها للتحويل بين تنسيقات الألوان.
يتم توزيع Axe-core بموجب ترخيص Mozilla العام، الإصدار 2.0. يأتي مزودًا بالعديد من التبعيات التي يتم توزيعها وفقًا لشروطها الخاصة. (راجع LICENSE-3RD-PARTY.txt)