અમે CI માં એક્સેસિબિલિટી VPATs ને કેવી રીતે ઓટોમેટ કર્યા અમે CI માં એક્સેસિબિલિટી VPATs ને કેવી રીતે ઓટોમેટ કર્યા
એક્સેસિબિલિટી ઓડિટ્સ ઝડપથી જૂના થઈ જાય છે. એક સિંગલ કોડ મર્જ બધું જ બદલી નાખે છે.
અમે આ સમસ્યાનું નિરાકરણ કર્યું. અમે અમારા એક્સેસિબિલિટી રિપોર્ટ્સને કન્ટીન્યુઅસ બિલ્ડ આર્ટિફેક્ટ (continuous build artifact) માં ફેરવી દીધા.
અમારી પાઇપલાઇન ભૂલો શોધવા માટે ત્રણ સ્તરોનો ઉપયોગ કરે છે:
- સ્ટેટિક ચેક્સ: અમે Storybook માં બેઝલાઇન ટેસ્ટ માટે axe-core નો ઉપયોગ કરીએ છીએ.
- ઇન્ટરેક્ટિવ ટેસ્ટ: અમે કીબોર્ડ નિયમોનું પરીક્ષણ કરવા માટે કસ્ટમ Vitest હેલ્પર્સનો ઉપયોગ કરીએ છીએ.
- મેન્યુઅલ ઓડિટ: અમે સ્ક્રીન રીડરના પરિણામોને JSON ફાઇલો તરીકે સંગ્રહિત કરીએ છીએ.
અમારી CI પાઇપલાઇન આ પરિણામોને મર્જ કરે છે.
જો કોઈ ટેસ્ટ નિષ્ફળ જાય, તો PR નિષ્ફળ જાય છે. જો બધા ટેસ્ટ પાસ થાય, તો સિસ્ટમ એક નવો PDF બનાવે છે. આ PDF તમારી રિલીઝ સાથે મોકલવામાં આવે છે.
અમે એક વસ્તુ કરવાનો પ્રયાસ કર્યો જે નિષ્ફળ ગઈ.
અમે મેન્યુઅલ ઓડિટના સ્થાને LLM નો ઉપયોગ કરવાનો પ્રયાસ કર્યો. અમે તેનો ઉપયોગ તરત જ બંધ કરી દીધો. AI ના પરિણામોમાં ઘણો ફેરફાર થાય છે. CI ગેટ માટે તમારે સ્થિર પરિણામોની જરૂર હોય છે.
સંપૂર્ણ ટેકનિકલ વિગતો અહીં વાંચો:
સ્ત્રોત: https://dev.to/yassine_lakhdar_d0226709a/how-we-automated-our-accessibility-vpats-in-ci-46jk
ARTICLE: એક ડેવલપમેન્ટ ટીમે તેની continuous-integration (CI) પાઇપલાઇનમાં સીધી રીતે એક્સેસિબિલિટી VPATs (Voluntary Product Accessibility Templates) બનાવવાની પ્રક્રિયાને ઓટોમેટ કરી છે, જેનાથી સમયાંતરે કરવામાં આવતા મેન્યુઅલ રિપોર્ટને દરેક રિલીઝ સાથે મોકલવામાં આવતા બિલ્ડ આર્ટિફેક્ટમાં ફેરવી દીધા છે. નવો વર્કફ્લો એવા pull requests ને નિષ્ફળ બનાવે છે જે એક્સેસિબિલિટી રિગ્રેશન (accessibility regressions) લાવે છે અને જ્યારે બિલ્ડ સફળ થાય ત્યારે આપમેળે PDF કમ્પ્લાયન્સ ડોક્યુમેન્ટ તૈયાર કરે છે, જે સુનિશ્ચિત કરે છે કે દરેક કોડ ફેરફાર એક્સેસિબિલિટી ધોરણોની અંદર જ રહે.
ઓટોમેશન શા માટે મહત્વનું છે
નવો કોડ આવતાની સાથે જ એક્સેસિબિલિટી ઓડિટ્સ જૂના થઈ જાય છે. એક સિંગલ મર્જથી મિસિંગ alt text, અયોગ્ય ફોકસ ઓર્ડર અથવા સ્ક્રીન-રીડરની સમસ્યાઓ આવી શકે છે જે અગાઉ જારી કરાયેલ VPAT ને અમાન્ય બનાવે છે. મેન્યુઅલી કમ્પ્લાયન્સ જાળવી રાખવાનો અર્થ છે કે દરેક ફેરફાર પછી ઓડિટ ફરીથી ચલાવવું, જે એક ખર્ચાળ અને ભૂલ-ભર્યું પ્રક્રિયા છે જે ઘણીવાર ડેવલપમેન્ટની ઝડત કરતા પાછળ રહી જાય છે. CI માં ચેક્સને સામેલ કરીને, ટીમોને તાત્કાલિક પ્રતિસાદ મળે છે, કમ્પ્લાયન્સ અપ-ટુ-ડેટ રહે છે, અને અસુલભ (inaccessible) સોફ્ટવેર મોકલવાના કાનૂની અને પ્રતિષ્ઠાના જોખમોથી બચી શકાય છે.
ત્રણ-સ્તરીય પરીક્ષણ અભિગમ
સ્ટેટિક ચેક્સ – પાઇપલાઇન axe-core ચલાવે છે, જે એક ઓપન-સોર્સ લાઇબ્રેરી છે જે Storybook માં રેન્ડર થયેલા ઘટકોમાં જાણીતા ઉલ્લંઘનો જેમ કે મિસિંગ લેન્ડમાર્ક અથવા અપૂરતો કલર કોન્ટ્રાસ્ટ સ્કેન કરે છે. આ ટેસ્ટ કોઈપણ ઇન્ટરેક્શન થાય તે પહેલાં સમસ્યાઓને પકડી લે છે.
ઇન્ટરેક્ટિવ ચેક્સ – કસ્ટમ Vitest હેલ્પર્સ કીબોર્ડ નેવિગેશન નિયમોનું પરીક્ષણ કરે છે, જે ખાતરી કરે છે કે ફોકસ તાર્કિક રીતે આગળ વધે છે અને ઇન્ટરેક્ટિવ ઘટકો સ્ટાન્ડર્ડ કીબોર્ડ ઇવેન્ટ્સને પ્રતિસાદ આપે છે. આ સ્તર વાસ્તવિક ઉપયોગિતા સુનિશ્ચિત કરવા માટે સ્ટેટિક એનાલિસિસથી આગળ જાય છે.
મેન્યુઅલ ઓડિટ આર્ટિફેક્ટ્સ – સ્ક્રીન-રીડર ટેસ્ટિંગના પરિણામો JSON ફાઇલો તરીકે સેવ કરવામાં આવે છે. ડેવલપર્સ એક્સપ્લોરેટરી ટેસ્ટિંગ દરમિયાન અવલોકનો નોંધે છે અને કોડની સાથે JSON કમિટ કરે છે. CI જોબ આ આર્ટિફેક્ટ્સને ઓટોમેટેડ પરિણામો સાથે મર્જ કરે છે, જે VPAT માટે સિંગલ સોર્સ ઓફ ટ્રુથ (single source of truth) બનાવે છે.
જ્યારે પ્રથમ બે સ્તરોમાંથી કોઈપણ ટેસ્ટ નિષ્ફળ જાય છે, ત્યારે pull request બ્લોક થઈ જાય છે, જે ફેરફારને પ્રોડક્શન સુધી પહોંચતા અટકાવે છે. જો બધા ટેસ્ટ પાસ થાય, તો પાઇપલાઇન સંયુક્ત ડેટાને PDF માં ભેગો કરે છે જે રિલીઝ સાથે જોડવામાં આવે છે, જેનાથી વધારાના પ્રયત્નો વગર અપ-ટુ-ડેટ VPAT મળે છે.
શું કામ ન આવ્યું
ટીમે મેન્યુઅલ ઓડિટના ભાગને આપમેળે જનરેટ કરવા માટે લાર્જ લેંગ્વેજ મોડલ (LLM) નો ઉપયોગ કરવાનો પ્રયોગ કર્યો હતો. AI દ્વારા ઉત્પાદિત પરિણામોમાં ઘણો ફેરફાર થતો હતો, જેના કારણે CI ગેટ અવિશ્વસનીય બની ગયો હતો. બાઈનરી પાસ/ફેલ ચેક માટે સુસંગતતા આવશ્યક છે, તેથી JSON-આધારિત મેન્યુઅલ આર્ટિફેક્ટ્સના પક્ષમાં પ્રયોગ છોડી દેવામાં આવ્યો હતો.
આગળ શું જોવું
અત્યારે, ત્રણ-સ્તરીય CI મોડલ VPATs ને અપ-ટુ-ડેટ રાખવા, મેન્યુઅલ ઓવરહેડ ઘટાડવા અને દરેક કોડ ફેરફારમાં એક્સેસિબિલિટીને મુખ્ય રાખવા માટે એક વ્યવહારુ માર્ગ આપે છે.
