CIలో అక్సెసిబిలిటీ (Accessibility) VPATలను మేము ఎలా ఆటోమేట్ చేశాము CIలో అక్సెసిబిలిటీ (Accessibility) VPATలను మేము ఎలా ఆటోమేట్ చేశాము
అక్సెసిబిలిటీ ఆడిట్లు చాలా వేగంగా పాతబడిపోతాయి. ఒకే ఒక కోడ్ మెర్జ్ (merge) అన్నింటినీ మార్చేస్తుంది.
మేము దీనిని పరిష్కరించాము. మా అక్సెసిబిలిటీ రిపోర్టులను కంటిన్యూయస్ బిల్డ్ ఆర్టిఫ్యాక్ట్గా (continuous build artifact) మార్చాము.
లోపాలను గుర్తించడానికి మా పైప్లైన్ మూడు పొరలను (layers) ఉపయోగిస్తుంది:
- స్టాటిక్ చెక్స్ (Static checks): Storybookలో బేస్లైన్ పరీక్షల కోసం మేము axe-coreని ఉపయోగిస్తాము.
- ఇంటరాక్టివ్ టెస్ట్లు (Interactive tests): కీబోర్డ్ నియమాలను పరీక్షించడానికి మేము కస్టమ్ Vitest హెల్పర్లను ఉపయోగిస్తాము.
- మాన్యువల్ ఆడిట్లు (Manual audits): స్క్రీన్ రీడర్ ఫలితాలను మేము JSON ఫైల్లుగా నిల్వ చేస్తాము.
మా CI పైప్లైన్ ఈ ఫలితాలను విలీనం (merge) చేస్తుంది.
ఒక పరీక్ష విఫలమైతే, PR విఫలమవుతుంది. అన్ని పరీక్షలు విజయవంతమైతే, సిస్టమ్ కొత్త PDFని రూపొందిస్తుంది. ఈ PDF మీ రిలీజ్తో పాటు వస్తుంది.
మేము ఒక ప్రయత్నం చేశాము, అది విఫలమైంది.
మాన్యువల్ ఆడిట్లకు బదులుగా LLMని ఉపయోగించడానికి ప్రయత్నించాము. మేము దానిని వెంటనే నిలిపివేశాము. AI ఫలితాలు మరీ ఎక్కువగా మారుతుంటాయి. CI గేట్ కోసం మీకు స్థిరమైన ఫలితాలు అవసరం.
పూర్తి సాంకేతిక విశ్లేషణను ఇక్కడ చదవండి:
మూలం: https://dev.to/yassine_lakhdar_d0226709a/how-we-automated-our-accessibility-vpats-in-ci-46jk
ARTICLE: ఒక డెవలప్మెంట్ టీమ్ అక్సెసిబిలిటీ VPATల (Voluntary Product Accessibility Templates) సృష్టిని నేరుగా తన కంటిన్యూయస్-ఇంటిగ్రేషన్ (CI) పైప్లైన్లో ఆటోమేట్ చేసింది. ఇది గతంలో ఒక కాలక్రమ మాన్యువల్ రిపోర్ట్గా ఉండే ప్రక్రియను, ప్రతి రిలీజ్తో పాటు వచ్చే బిల్డ్ ఆర్టిఫ్యాక్ట్గా మార్చింది. కొత్త వర్క్ఫ్లో అక్సెసిబిలిటీ లోపాలను (regressions) పరిచయం చేసే పుల్ రిక్వెస్ట్లను (pull requests) నిలిపివేస్తుంది మరియు బిల్డ్ విజయవంతమైనప్పుడు ఆటోమేటిక్గా ఒక PDF కంప్లయన్స్ డాక్యుమెంట్ను రూపొందిస్తుంది, తద్వారా ప్రతి కోడ్ మార్పు అక్సెసిబిలిటీ ప్రమాణాల లోపే ఉండేలా చూస్తుంది.
ఆటోమేషన్ ఎందుకు ముఖ్యం
కొత్త కోడ్ రాగానే అక్సెసిబిలిటీ ఆడిట్లు పాతబడిపోతాయి. ఒకే ఒక మెర్జ్ వల్ల మిస్ అయిన alt text, తప్పుగా ఉన్న focus order, లేదా స్క్రీన్-రీడర్ సమస్యలు తలెత్తవచ్చు, ఇవి అంతకుముందు జారీ చేసిన VPATని చెల్లకుండా చేస్తాయి. మాన్యువల్గా కంప్లయన్స్ నిర్వహించడం అంటే ప్రతి మార్పు తర్వాత ఆడిట్లను మళ్ళీ నిర్వహించడం, ఇది ఖర్చుతో కూడుకున్నది మరియు తప్పులు జరిగే అవకాశం ఉన్న ప్రక్రియ, ఇది తరచుగా డెవలప్మెంట్ వేగానికి వెనుకబడి ఉంటుంది. CIలో చెక్లను చేర్చడం ద్వారా, టీమ్లు తక్షణ ఫీడ్బ్యాక్ను పొందుతాయి, కంప్లయన్స్ను తాజాగా ఉంచుతాయి మరియు అక్సెసిబిలిటీ లేని సాఫ్ట్వేర్ను విడుదల చేయడం వల్ల కలిగే చట్టపరమైన మరియు ప్రతిష్టాత్మక రిస్క్లను నివారిస్తాయి.
మూడు-పొరల టెస్టింగ్ విధానం
స్టాటిక్ చెక్స్ (Static checks) – పైప్లైన్ axe-coreని రన్ చేస్తుంది. ఇది Storybookలో రెండర్ చేయబడిన కాంపోనెంట్లను స్కాన్ చేసి, మిస్ అయిన ల్యాండ్మార్క్లు లేదా తక్కువ కలర్ కాంట్రాస్ట్ వంటి తెలిసిన ఉల్లంఘనలను గుర్తిస్తుంది. ఇంటరాక్షన్ జరగకముందే ఈ పరీక్షలు సమస్యలను పట్టుకుంటాయి.
ఇంటరాక్టివ్ చెక్స్ (Interactive checks) – కస్టమ్ Vitest హెల్పర్లు కీబోర్డ్ నావిగేషన్ నియమాలను పరీక్షిస్తాయి, దీని ద్వారా ఫోకస్ లాజికల్గా కదులుతుందో లేదో మరియు ఇంటరాక్టివ్ ఎలిమెంట్స్ స్టాండర్డ్ కీబోర్డ్ ఈవెంట్లకు స్పందిస్తున్నాయో లేదో నిర్ధారిస్తాయి. వాస్తవ ప్రపంచ వినియోగ సామర్థ్యాన్ని (usability) నిర్ధారించడానికి ఈ పొర స్టాటిక్ అనాలిసిస్ కంటే ఎక్కువగా పనిచేస్తుంది.
మాన్యువల్ ఆడిట్ ఆర్టిఫ్యాక్ట్లు (Manual audit artifacts) – స్క్రీన్-రీడర్ టెస్టింగ్ ఫలితాలు JSON ఫైల్లుగా సేవ్ చేయబడతాయి. డెవలపర్లు ఎక్స్ప్లోరేటరీ టెస్టింగ్ సమయంలో గమనికలను నమోదు చేస్తారు మరియు కోడ్తో పాటు JSONని కమిట్ చేస్తారు. CI జాబ్ ఈ ఆర్టిఫ్యాక్ట్లను ఆటోమేటెడ్ ఫలితాలతో విలీనం చేసి, VPAT కోసం ఒకే ఒక ప్రామాణిక వనరును (single source of truth) అందిస్తుంది.
మొదటి రెండు పొరలలో ఏదైనా పరీక్ష విఫలమైతే, పుల్ రిక్వెస్ట్ బ్లాక్ చేయబడుతుంది, తద్వారా ఆ మార్పు ప్రొడక్షన్కు చేరుకోకుండా నిరోధించబడుతుంది. అన్ని పరీక్షలు విజయవంతమైతే, పైప్లైన్ కలిపి ఉన్న డేటాను ఒక PDFగా రూపొందిస్తుంది, ఇది రిలీజ్కు జత చేయబడుతుంది. దీనివల్ల అదనపు శ్రమ లేకుండా అప్డేట్ చేయబడిన VPAT అందుబాటులోకి వస్తుంది.
ఏది పని చేయలేదు
మాన్యువల్ ఆడిట్ భాగాన్ని ఆటోమేటిక్గా రూపొందించడానికి లార్జ్ లాంగ్వేజ్ మోడల్ (LLM)ని ఉపయోగించి టీమ్ ప్రయోగాలు చేసింది. AI ద్వారా వచ్చిన ఫలితాలు మరీ ఎక్కువగా మారుతుండటంతో, CI గేట్ నమ్మదగినదిగా లేదు. బైనరీ పాస్/ఫెయిల్ చెక్ కోసం స్థిరత్వం (consistency) చాలా అవసరం, కాబట్టి JSON-ఆధారిత మాన్యువల్ ఆర్టిఫ్యాక్ట్ల కోసం ఆ ప్రయోగాన్ని వదిలివేసింది.
తదుపరి ఏమి గమనించాలి
ప్రస్తుతానికి, ఈ మూడు-పొరల CI మోడల్ VPATలను తాజాగా ఉంచడానికి, మాన్యువల్ శ్రమను తగ్గించడానికి మరియు ప్రతి కోడ్ మార్పులో అక్సెసిబిలిటీని ప్రధానంగా ఉంచడానికి ఒక ఆచరణాత్మక మార్గాన్ని అందిస్తుంది.
