تعد إمكانية الوصول جانبًا مهمًا في تطوير الويب، مما يضمن أن جميع المستخدمين، بما في ذلك الأشخاص ذوي الإعاقة، يمكنهم التفاعل مع تطبيقات الويب الخاصة بك بشكل فعال. يساعد اختبار إمكانية الوصول التلقائي في تحديد مشكلات إمكانية الوصول وإصلاحها في وقت مبكر من عملية التطوير. في هذا المنشور، سنستكشف كيفية تنفيذ اختبار إمكانية الوصول الآلي باستخدام Cypress، والاستفادة من أدوات مثل cypress-axe لجعل تطبيقاتك أكثر شمولاً.
لإجراء اختبار إمكانية الوصول الآلي في Cypress، سنستخدم المكون الإضافي cypress-ax، الذي يدمج محرك إمكانية الوصول Ax مع Cypress.
الخطوة 1: تثبيت فأس السرو والسرو
أولاً، تأكد من تثبيت Cypress في مشروعك. إذا لم يكن الأمر كذلك، فيمكنك تثبيته باستخدام الأمر التالي:
npm install cypress --save-dev
بعد ذلك، قم بتثبيت البرنامج المساعد cypress-axe:
npm install cypress-axe --save-dev
الخطوة 2: تكوين فأس السرو
قم بإنشاء ملف جديد في دليل cypress/support يسمى Commands.js وأضف الكود التالي لاستيراد وتكوين cypress-axe:
import 'cypress-axe'; Cypress.Commands.add('injectAxe', () => { cy.window({ log: false }).then(window => { let axe = require('axe-core'); window.eval(axe.source); }); }); Cypress.Commands.add('checkA11y', (selector = null, options = null, violationCallback = null, skipFailures = false) => { cy.window({ log: false }).then(window => { let document = window.document; return axe.run(document, options).then(({ violations }) => { if (violations.length) { cy.wrap(violations, { log: false }).each(violation => { let nodes = Cypress._.get(violation, 'nodes', []); Cypress._.each(nodes, node => { let target = Cypress._.get(node, 'target', []); if (target.length) { Cypress._.each(target, target => { cy.wrap(target, { log: false }).then($target => { if (!skipFailures) { Cypress.log({ name: 'a11y error!', message: violation.help, consoleProps: () => violation }); violationCallback && violationCallback(violation); } }); }); } }); }); } }); }); });
الخطوة 3: إنشاء اختبارات إمكانية الوصول
الآن، لنقم بإنشاء اختبار Cypress للتحقق من إمكانية الوصول إلى صفحة الويب. قم بإنشاء ملف جديد في دليل cypress/e2e يسمى Accessibility.spec.js وأضف الكود التالي:
describe('Automated Accessibility Testing with Cypress', () => { beforeEach(() => { cy.visit('/'); cy.injectAxe(); }); it('should have no detectable accessibility violations on load', () => { cy.checkA11y(); }); it('should have no detectable accessibility violations on specific elements', () => { cy.checkA11y('header'); cy.checkA11y('main'); cy.checkA11y('footer'); }); });
في هذا المثال، نقوم بإجراء عمليات فحص إمكانية الوصول على الصفحة بأكملها بالإضافة إلى عناصر محددة مثل الرأس والمحتوى الرئيسي والتذييل.
يمكنك تخصيص عمليات التحقق من إمكانية الوصول من خلال توفير الخيارات وتكوين القواعد. على سبيل المثال، يمكنك تجاهل قواعد معينة أو إجراء عمليات فحص محددة فقط.
مثال: تجاهل قواعد محددة
cy.checkA11y(null, { rules: { 'color-contrast': { enabled: false } } });
مثال: تشغيل فحوصات محددة
cy.checkA11y(null, { runOnly: { type: 'tag', values: ['wcag2a', 'wcag2aa'] } });
يمكنك التعامل مع انتهاكات إمكانية الوصول من خلال توفير وظيفة رد الاتصال لتسجيل الانتهاكات أو معالجتها. على سبيل المثال:
cy.checkA11y(null, null, (violations) => { violations.forEach((violation) => { cy.log(`${violation.id} - ${violation.description}`); violation.nodes.forEach((node) => { cy.log(`Node: ${node.target}`); }); }); });
يعد اختبار إمكانية الوصول الآلي باستخدام Cypress وcypress-axe وسيلة قوية لضمان إمكانية الوصول إلى تطبيقات الويب الخاصة بك لجميع المستخدمين. من خلال دمج عمليات التحقق من إمكانية الوصول في عملية الاختبار الخاصة بك، يمكنك تحديد المشكلات وإصلاحها مبكرًا، مما يوفر تجربة مستخدم أفضل وضمان الامتثال لمعايير إمكانية الوصول. اتبع أفضل الممارسات الموضحة في هذا الدليل لجعل تطبيقاتك أكثر شمولاً وسهولة في الوصول إليها.
اختبار سعيد!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3