CI-இல் Accessibility VPAT-களை நாங்கள் எவ்வாறு தானியக்கமாக்கினோம் CI-இல் Accessibility VPAT-களை நாங்கள் எவ்வாறு தானியக்கமாக்கினோம்
Accessibility தணிக்கைகள் (audits) மிக விரைவாக காலாவதியாகிவிடும். ஒரு சிறிய குறியீடு இணைப்பு (code merge) அனைத்தையும் மாற்றிவிடும்.
நாங்கள் இதைச் சரிசெய்தோம். எங்கள் accessibility அறிக்கைகளை ஒரு தொடர்ச்சியான build artifact-ஆக மாற்றினோம்.
பிழைகளைக் கண்டறிய எங்கள் pipeline மூன்று அடுக்குகளைப் பயன்படுத்துகிறது:
- Static checks: Storybook-இல் அடிப்படைத் தேர்வுகளுக்காக axe-core-ஐப் பயன்படுத்துகிறோம்.
- Interactive tests: விசைப்பலகை விதிகளை (keyboard rules) சோதிக்க custom Vitest helpers-ஐப் பயன்படுத்துகிறோம்.
- Manual audits: screen reader முடிவுகளை JSON கோப்புகளாகச் சேமிக்கிறோம்.
எங்கள் CI pipeline இந்த முடிவுகளை ஒருங்கிணைக்கிறது.
ஒரு சோதனை தோல்வியடைந்தால், PR தோல்வியடையும். அனைத்துச் சோதனைகளும் வெற்றி பெற்றால், சிஸ்டம் ஒரு புதிய PDF-ஐ உருவாக்கும். இந்த PDF உங்கள் release-உடன் இணைக்கப்படும்.
நாங்கள் ஒரு விஷயத்தை முயற்சி செய்தோம், அது தோல்வியடைந்தது.
Manual audits-க்கு மாற்றாக ஒரு LLM-ஐப் பயன்படுத்த முயற்சி செய்தோம். அதை உடனடியாக நிறுத்திவிட்டோம். AI முடிவுகள் மிகவும் மாறுகின்றன. ஒரு CI gate-க்கு நிலையான முடிவுகள் தேவை.
முழுமையான தொழில்நுட்ப விவரங்களை இங்கே படிக்கவும்:
ஆதாரம்: https://dev.to/yassine_lakhdar_d0226709a/how-we-automated-our-accessibility-vpats-in-ci-46jk
ARTICLE: ஒரு மேம்பாட்டுத் குழு (development team), அதன் continuous-integration (CI) pipeline-இல் நேரடியாக accessibility VPAT-களை (Voluntary Product Accessibility Templates) உருவாக்கும் முறையைத் தானியக்கமாக்கியுள்ளது. இது ஒரு குறிப்பிட்ட கால இடைவெளியில் செய்யப்படும் manual report-ஐ, ஒவ்வொரு release-உடனும் வரும் ஒரு build artifact-ஆக மாற்றியுள்ளது. இந்த புதிய பணிப்பாய்வு (workflow), accessibility குறைபாடுகளை (regressions) ஏற்படுத்தும் pull requests-களைத் தடுத்து நிறுத்துகிறது மற்றும் build வெற்றி பெறும்போது தானாகவே ஒரு PDF compliance ஆவணத்தை உருவாக்குகிறது, இதன் மூலம் ஒவ்வொரு குறியீடு மாற்றமும் accessibility தரநிலைகளுக்குள் இருப்பதை உறுதி செய்கிறது.
ஏன் தானியக்கமாக்கல் முக்கியமானது
புதிய குறியீடு சேர்க்கப்பட்ட அடுத்த கணமே accessibility தணிக்கைகள் காலாவதியாகிவிடும். ஒரு சிறிய இணைப்பு (merge), விடுபட்ட alt text, தவறான focus order அல்லது screen-reader சிக்கல்களை ஏற்படுத்தி, ஏற்கனவே வழங்கப்பட்ட VPAT-ஐ செல்லாததாக்கிவிடக்கூடும். Compliance-ஐ கைமுறையாகப் பராமரிப்பது என்பது ஒவ்வொரு மாற்றத்திற்குப் பிறகும் தணிக்கைகளை மீண்டும் இயக்குவதாகும்; இது அதிக செலவு மற்றும் பிழைகள் ஏற்படக்கூடிய ஒரு செயல்முறையாகும், இது பெரும்பாலும் மேம்பாட்டு வேகத்திற்குப் பின் தங்கிவிடுகிறது. CI-இல் சோதனைகளை இணைப்பதன் மூலம், குழுக்கள் உடனடித் தகவல்களைப் பெறுகிறார்கள், compliance-ஐத் தற்போதைய நிலையில் வைத்திருக்கிறார்கள் மற்றும் அணுக முடியாத மென்பொருளை வெளியிடுவதால் ஏற்படும் சட்ட மற்றும் நற்பெயர் அபாயங்களைத் தவிர்க்கிறார்கள்.
மூன்று அடுக்கு சோதனை அணுகுமுறை
Static checks – Storybook-இல் காட்டப்படும் (rendered) கூறுகளை (components), விடுபட்ட landmarks அல்லது போதுமான வண்ண வேறுபாடு (color contrast) இல்லாதது போன்ற அறியப்பட்ட விதிமீறல்களைத் தேடி ஸ்கேன் செய்ய, pipeline axe-core என்ற open-source library-ஐ இயக்குகிறது. இந்தச் சோதனைகள் எந்தவொரு தொடர்பிற்கும் (interaction) முன்னரே சிக்கல்களைக் கண்டறிகின்றன.
Interactive checks – Custom Vitest helpers விசைப்பலகை வழிசெலுத்தல் (keyboard navigation) விதிகளைச் சோதிக்கின்றன, இதன் மூலம் focus தர்க்கரீதியாக நகர்கிறதா என்பதையும், interactive கூறுகள் நிலையான விசைப்பலகை நிகழ்வுகளுக்கு (keyboard events) பதிலளிக்கின்றனவா என்பதையும் உறுதி செய்கின்றன. இந்த அடுக்கு, நிஜ உலகப் பயன்பாட்டை (real-world usability) உறுதி செய்வதற்காக static analysis-க்கு அப்பால் செல்கிறது.
Manual audit artifacts – screen-reader சோதனையின் முடிவுகள் JSON கோப்புகளாகச் சேமிக்கப்படுகின்றன. மேம்பாட்டாளர்கள் (developers) ஆய்வுக் சோதனை (exploratory testing) செய்யும் போது தங்களது அவதானிப்புகளைப் பதிவு செய்து, குறியீட்டுடன் (code) சேர்த்து JSON கோப்பையும் commit செய்கிறார்கள். CI job இந்த artifacts-களை தானியக்க முடிவுகளுடன் ஒருங்கிணைத்து, VPAT-க்கான ஒரு ஒற்றை ஆதாரத்தை (single source of truth) உருவாக்குகிறது.
முதல் இரண்டு அடுக்குகளில் ஏதேனும் ஒரு சோதனை தோல்வியடைந்தால், pull request தடுக்கப்படும், இதனால் அந்த மாற்றம் production-க்குச் செல்வது தடுக்கப்படுகிறது. அனைத்துச் சோதனைகளும் வெற்றி பெற்றால், pipeline ஒருங்கிணைக்கப்பட்ட தரவை ஒரு PDF-ஆகத் தொகுத்து release-உடன் இணைக்கிறது, இதன் மூலம் கூடுதல் முயற்சி இன்றி தற்போதைய நிலையில் உள்ள VPAT வழங்கப்படுகிறது.
எது வேலை செய்யவில்லை
manual audit பகுதியைத் தானாகவே உருவாக்க ஒரு large language model (LLM)-ஐப் பயன்படுத்தும் முயற்சியில் குழு ஈடுபட்டது. AI மூலம் உருவாக்கப்பட்ட முடிவுகள் மிகவும் மாறுபட்டு இருந்ததால், CI gate நம்பகத்தன்மையற்றதாக மாறியது. ஒரு pass/fail சரிபார்ப்பிற்குத் தொடர்ச்சியான தன்மை (consistency) அவசியம், எனவே அந்த முயற்சி கைவிடப்பட்டு, JSON அடிப்படையிலான manual artifacts முறை பின்பற்றப்பட்டது.
அடுத்து கவனிக்க வேண்டியவை
தற்போதைக்கு, இந்த மூன்று அடுக்கு CI மாதிரி, VPAT-களைத் தற்போதைய நிலையில் வைத்திருக்கவும், manual overhead-ஐக் குறைக்கவும் மற்றும் ஒவ்வொரு குறியீடு மாற்றத்திலும் accessibility-ஐ முதன்மையாக வைத்திருக்கவும் ஒரு நடைமுறை வழியை வழங்குகிறது.
