ہم نے CI میں Accessibility VPATs کو کیسے خودکار کیا ہم نے CI میں Accessibility VPATs کو کیسے خودکار کیا
Accessibility audits بہت تیزی سے پرانے ہو جاتے ہیں۔ کوڈ کا ایک سنگل مرج (merge) سب کچھ بدل دیتا ہے۔
ہم نے اس کا حل نکال لیا۔ ہم نے اپنی accessibility reports کو ایک continuous build artifact میں تبدیل کر دیا۔
ہمارا پائپ لائن (pipeline) غلطیوں کو تلاش کرنے کے لیے تین تہوں (layers) کا استعمال کرتا ہے:
- Static checks: ہم Storybook میں baseline tests کے لیے axe-core استعمال کرتے ہیں۔
- Interactive tests: ہم keyboard rules کو ٹیسٹ کرنے کے لیے custom Vitest helpers استعمال کرتے ہیں۔
- Manual audits: ہم screen reader کے نتائج کو JSON files کے طور پر محفوظ کرتے ہیں۔
ہمارا CI pipeline ان نتائج کو یکجا (merge) کرتا ہے۔
اگر کوئی ٹیسٹ فیل ہو جائے تو PR فیل ہو جاتی ہے۔ اگر تمام ٹیسٹ پاس ہو جائیں تو سسٹم ایک نئی PDF تیار کرتا ہے۔ یہ PDF آپ کی ریلیز (release) کے ساتھ بھیجی جاتی ہے۔
ہم نے ایک چیز آزمائی جو ناکام رہی۔
ہم نے manual audits کی جگہ LLM استعمال کرنے کی کوشش کی۔ ہم نے اسے فوراً استعمال کرنا بند کر دیا۔ AI کے نتائج بہت زیادہ تبدیل ہوتے رہتے ہیں۔ CI gate کے لیے آپ کو مستحکم (stable) نتائج کی ضرورت ہوتی ہے۔
مکمل تکنیکی تفصیل یہاں پڑھیں:
Source: https://dev.to/yassine_lakhdar_d0226709a/how-we-automated-our-accessibility-vpats-in-ci-46jk
ARTICLE: ایک ڈویلپمنٹ ٹیم نے اپنی continuous-integration (CI) پائپ لائن میں براہ راست accessibility VPATs (Voluntary Product Accessibility Templates) کی تیاری کو خودکار بنا دیا ہے، جس سے ایک ایسی چیز جو پہلے وقتاً فوقتاً کی جانے والی manual report ہوا کرتی تھی، اب ایک build artifact میں بدل گئی ہے جو ہر ریلیز کے ساتھ بھیجی جاتی ہے۔ نیا ورک فلو ان pull requests کو فیل کر دیتا ہے جو accessibility regressions لاتی ہیں، اور جب build کامیاب ہو جاتی ہے تو خودکار طور پر ایک PDF compliance document تیار کرتا ہے، جس سے یہ یقینی بنایا جاتا ہے کہ کوڈ کی ہر تبدیلی accessibility standards کے مطابق رہے۔
خودکاری (Automation) کیوں ضروری ہے
جیسے ہی نیا کوڈ آتا ہے، accessibility audits پرانے ہو جاتے ہیں۔ ایک سنگل مرج (merge) سے missing alt text، غلط focus order، یا screen-reader کے مسائل پیدا ہو سکتے ہیں جو پہلے سے جاری کردہ VPAT کو کالعدم کر دیتے ہیں۔ دستی طور پر (manually) تعمیل (compliance) برقرار رکھنے کا مطلب ہے کہ ہر تبدیلی کے بعد audits کو دوبارہ چلانا، جو کہ ایک مہنگا اور غلطیوں کا شکار ہونے والا عمل ہے اور اکثر ڈویلپمنٹ کی رفتار سے پیچھے رہ جاتا ہے۔ CI میں چیکس کو شامل کر کے، ٹیموں کو فوری فیڈ بیک ملتا ہے، تعمیل کو تازہ رکھا جاتا ہے، اور ناقابل رسائی (inaccessible) سافٹ ویئر ریلیز کرنے کے قانونی اور ساکھ کے خطرات سے بچا جا سکتا ہے۔
تین تہوں والا ٹیسٹنگ طریقہ کار
Static checks – پائپ لائن axe-core چلاتی ہے، جو ایک open-source library ہے اور Storybook میں رینڈر ہونے والے components کو اسکین کرتی ہے تاکہ معلوم violations جیسے کہ missing landmarks یا ناکافی color contrast کا پتہ لگایا جا سکے۔ یہ ٹیسٹ کسی بھی تعامل (interaction) سے پہلے مسائل کو پکڑ لیتے ہیں۔
Interactive checks – Custom Vitest helpers keyboard navigation rules کا تجربہ کرتے ہیں، یہ تصدیق کرتے ہیں کہ focus منطقی طور پر حرکت کرتا ہے اور interactive elements معیاری keyboard events پر ردعمل دیتے ہیں۔ یہ تہہ static analysis سے آگے بڑھ کر حقیقی دنیا کی استعمال پذیری (usability) کو یقینی بناتی ہے۔
Manual audit artifacts – Screen-reader testing کے نتائج JSON files کے طور پر محفوظ کیے جاتے ہیں۔ ڈویلپرز exploratory testing کے دوران مشاہدات ریکارڈ کرتے ہیں اور کوڈ کے ساتھ JSON فائل بھی commit کرتے ہیں۔ CI job ان artifacts کو خودکار نتائج کے ساتھ یکجا کرتا ہے، جس سے VPAT کے لیے ایک واحد مستند ذریعہ (single source of truth) تیار ہوتا ہے۔
جب پہلی دو تہوں میں سے کوئی بھی ٹیسٹ فیل ہوتا ہے، تو pull request بلاک ہو جاتی ہے، جس سے تبدیلی کو production تک پہنچنے سے روکا جاتا ہے۔ اگر تمام ٹیسٹ پاس ہو جائیں، تو پائپ لائن مجموعی ڈیٹا کو ایک PDF میں ترتیب دیتی ہے جو ریلیز کے ساتھ منسلک ہوتی ہے، جس سے اضافی محنت کے بغیر اپ-ٹو-ڈیٹ VPAT فراہم کیا جاتا ہے۔
کیا کام نہیں آیا
ٹیم نے manual audit کے حصے کو خودکار طور پر تیار کرنے کے لیے ایک large language model (LLM) کے استعمال کا تجربہ کیا۔ AI کے ذریعے تیار کردہ نتائج میں بہت زیادہ اتار چڑھاؤ تھا، جس کی وجہ سے CI gate ناقابل اعتبار ہو گیا۔ کسی بھی binary pass/fail چیک کے لیے تسلسل (consistency) ضروری ہے، اس لیے JSON پر مبنی manual artifacts کے حق میں اس تجربے کو ترک کر دیا گیا۔
آگے کیا دیکھنا ہے
فی الحال، تین تہوں والا CI ماڈل VPATs کو تازہ رکھنے، دستی بوجھ کو کم کرنے، اور کوڈ کی ہر تبدیلی میں accessibility کو مرکز میں رکھنے کا ایک عملی راستہ فراہم کرتا ہے۔
