CI-യിൽ ഞങ്ങൾ എങ്ങനെ Accessibility VPATs ഓട്ടോമേറ്റ് ചെയ്തു CI-യിൽ ഞങ്ങൾ എങ്ങനെ Accessibility VPATs ഓട്ടോമേറ്റ് ചെയ്തു
Accessibility ഓഡിറ്റുകൾ വേഗത്തിൽ കാലഹരണപ്പെടുന്നു. ഒരു സിംഗിൾ കോഡ് മെർജ് (code merge) എല്ലാം മാറ്റിമറിച്ചേക്കാം.
ഞങ്ങൾ ഇത് പരിഹരിച്ചു. ഞങ്ങളുടെ accessibility റിപ്പോർട്ടുകളെ ഒരു continuous build artifact ആക്കി മാറ്റി.
പിശകുകൾ കണ്ടെത്താൻ ഞങ്ങളുടെ പൈപ്പ്ലൈൻ മൂന്ന് ലെയറുകൾ ഉപയോഗിക്കുന്നു:
- Static checks: Storybook-ലെ baseline ടെസ്റ്റുകൾക്കായി ഞങ്ങൾ axe-core ഉപയോഗിക്കുന്നു.
- Interactive tests: കീബോർഡ് നിയമങ്ങൾ പരിശോധിക്കാൻ ഞങ്ങൾ custom Vitest helpers ഉപയോഗിക്കുന്നു.
- Manual audits: സ്ക്രീൻ റീഡർ ഫലങ്ങൾ ഞങ്ങൾ JSON ഫയലുകളായി സൂക്ഷിക്കുന്നു.
ഞങ്ങളുടെ CI പൈപ്പ്ലൈൻ ഈ ഫലങ്ങളെ സംയോജിപ്പിക്കുന്നു.
ഒരു ടെസ്റ്റ് പരാജയപ്പെട്ടാൽ, PR പരാജയപ്പെടുന്നു. എല്ലാ ടെസ്റ്റുകളും വിജയിച്ചാൽ, സിസ്റ്റം ഒരു പുതിയ PDF നിർമ്മിക്കുന്നു. ഈ PDF നിങ്ങളുടെ റിലീസിനൊപ്പം ലഭിക്കുന്നു.
ഞങ്ങൾ ഒരു കാര്യം പരീക്ഷിച്ചു, അത് പരാജയപ്പെട്ടു.
Manual audits-ന് പകരമായി ഒരു LLM ഉപയോഗിക്കാൻ ഞങ്ങൾ ശ്രമിച്ചു. ഞങ്ങൾ ഉടൻ തന്നെ അത് ഉപയോഗിക്കുന്നത് നിർത്തി. AI ഫലങ്ങൾ ഒരുപാട് മാറിക്കൊണ്ടിരിക്കുന്നു. ഒരു CI gate-ന് നിങ്ങൾക്ക് സ്ഥിരതയുള്ള ഫലങ്ങൾ ആവശ്യമാണ്.
ഇതിന്റെ പൂർണ്ണമായ സാങ്കേതിക വിവരങ്ങൾ ഇവിടെ വായിക്കാം:
Source: https://dev.to/yassine_lakhdar_d0226709a/how-we-automated-our-accessibility-vpats-in-ci-46jk
ARTICLE: ഒരു ഡെവലപ്മെന്റ് ടീം, accessibility VPATs (Voluntary Product Accessibility Templates) നിർമ്മാണം നേരിട്ട് അതിന്റെ continuous-integration (CI) പൈപ്പ്ലൈനിൽ ഓട്ടോമേറ്റ് ചെയ്തിരിക്കുന്നു. ഇത് കാലാകാലങ്ങളിൽ നടത്തുന്ന ഒരു മാനുവൽ റിപ്പോർട്ടിനെ, ഓരോ റിലീസിനൊപ്പവും വരുന്ന ഒരു build artifact ആക്കി മാറ്റിയിരിക്കുന്നു. പുതിയ കോഡ് വഴി accessibility-യിൽ മാറ്റങ്ങൾ (regressions) ഉണ്ടായാൽ ഈ പുതിയ വർക്ക്ഫ്ലോ pull requests തടയുന്നു, കൂടാതെ ബിൽഡ് വിജയിക്കുമ്പോൾ സ്വയമേവ ഒരു PDF കംപ്ലയൻസ് ഡോക്യുമെന്റ് നിർമ്മിക്കുകയും ചെയ്യുന്നു. ഇത് ഓരോ കോഡ് മാറ്റവും accessibility മാനദണ്ഡങ്ങൾ പാലിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുന്നു.
Why automation matters
പുതിയ കോഡ് വരുന്ന നിമിഷം തന്നെ accessibility ഓഡിറ്റുകൾ കാലഹരണപ്പെടുന്നു. ഒരു സിംഗിൾ മെർജ് വഴി മിസ്സിംഗ് alt text, തെറ്റായ focus order, അല്ലെങ്കിൽ സ്ക്രീൻ റീഡർ പ്രശ്നങ്ങൾ എന്നിവ ഉണ്ടാകാം, ഇത് നേരത്തെ നൽകിയ VPAT-നെ അസാധുവാക്കും. മാനുവലായി കംപ്ലയൻസ് നിലനിർത്തുക എന്നാൽ ഓരോ മാറ്റത്തിന് ശേഷവും ഓഡിറ്റുകൾ വീണ്ടും നടത്തുക എന്നാണ് അർത്ഥം. ഇത് ചിലവേറിയതും തെറ്റുകൾ സംഭവിക്കാൻ സാധ്യതയുള്ളതുമായ ഒരു പ്രക്രിയയാണ്, കൂടാതെ ഇത് പലപ്പോഴും ഡെവലപ്മെന്റ് വേഗതയെക്കാൾ പിന്നിലായിരിക്കും. CI-യിൽ ചെക്കുകൾ ഉൾപ്പെടുത്തുന്നതിലൂടെ, ടീമുകൾക്ക് ഉടനടി ഫീഡ്ബാക്ക് ലഭിക്കുന്നു, കംപ്ലയൻസ് നിലവാരം നിലനിർത്താൻ സാധിക്കുന്നു, കൂടാതെ അപ്രാപ്യമായ (inaccessible) സോഫ്റ്റ്വെയർ പുറത്തിറക്കുന്നത് മൂലമുണ്ടാകുന്ന നിയമപരവും സൽപ്പേരിനെ ബാധിക്കുന്നതുമായ റിസ്കുകൾ ഒഴിവാക്കാനും സാധിക്കുന്നു.
The three-layer testing approach
Static checks – Storybook-ൽ റെൻഡർ ചെയ്യുന്ന കമ്പോണന്റുകളിൽ മിസ്സിംഗ് ലാൻഡ്മാർക്കുകൾ അല്ലെങ്കിൽ അപര്യാപ്തമായ കളർ കോൺട്രാസ്റ്റ് പോലുള്ള പ്രശ്നങ്ങൾ കണ്ടെത്താൻ പൈപ്പ്ലൈൻ axe-core എന്ന ഓപ്പൺ സോഴ്സ് ലൈബ്രറി ഉപയോഗിക്കുന്നു. ഇന്ററാക്ഷൻ നടക്കുന്നതിന് മുമ്പ് തന്നെ ഈ ടെസ്റ്റുകൾ പ്രശ്നങ്ങൾ കണ്ടെത്തുന്നു.
Interactive checks – കസ്റ്റം Vitest helpers ഉപയോഗിച്ച് കീബോർഡ് നാവിഗേഷൻ നിയമങ്ങൾ പരിശോധിക്കുന്നു. ഫോക്കസ് ലോജിക്കലായി നീങ്ങുന്നുണ്ടെന്നും ഇന്ററാക്റ്റീവ് എലമെന്റുകൾ സ്റ്റാൻഡേർഡ് കീബോർഡ് ഇവന്റുകൾക്ക് പ്രതികരിക്കുന്നുണ്ടെന്നും ഇത് ഉറപ്പാക്കുന്നു. സ്റ്റാറ്റിക് അനാലിസിസിനും അപ്പുറം യഥാർത്ഥ ഉപയോഗക്ഷമത ഉറപ്പാക്കാൻ ഈ ലെയർ സഹായിക്കുന്നു.
Manual audit artifacts – സ്ക്രീൻ റീഡർ ടെസ്റ്റിംഗിൽ നിന്നുള്ള ഫലങ്ങൾ JSON ഫയലുകളായി സേവ് ചെയ്യുന്നു. ഡെവലപ്പർമാർ എക്സ്പ്ലോറേറ്ററി ടെസ്റ്റിംഗിനിടെ കണ്ടെത്തുന്ന കാര്യങ്ങൾ രേഖപ്പെടുത്തുകയും കോഡിനൊപ്പം JSON ഫയൽ കമിറ്റ് ചെയ്യുകയും ചെയ്യുന്നു. CI ജോബ് ഈ ആർട്ടീഫാക്റ്റുകളെ ഓട്ടോമേറ്റഡ് ഫലങ്ങളുമായി സംയോജിപ്പിച്ച് VPAT-ന് ആവശ്യമായ കൃത്യമായ വിവരങ്ങൾ നൽകുന്നു.
ആദ്യ രണ്ട് ലെയറുകളിലെ ഏതെങ്കിലും ടെസ്റ്റ് പരാജയപ്പെട്ടാൽ, pull request ബ്ലോക്ക് ചെയ്യപ്പെടും, ഇത് മാറ്റങ്ങൾ പ്രൊഡക്ഷനിൽ എത്തുന്നതിനെ തടയുന്നു. എല്ലാ ടെസ്റ്റുകളും വിജയിച്ചാൽ, പൈപ്പ്ലൈൻ സംയോജിത ഡാറ്റ ഒരു PDF ആയി തയ്യാറാക്കി റിലീസിനൊപ്പം ചേർക്കുന്നു, ഇത് അധിക പരിശ്രമമില്ലാതെ തന്നെ ഏറ്റവും പുതിയ VPAT ലഭ്യമാക്കുന്നു.
What didn’t work
മാനുവൽ ഓഡിറ്റ് ഭാഗം സ്വയമേവ നിർമ്മിക്കുന്നതിനായി ഒരു ലാർജ് ലാംഗ്വേജ് മോഡൽ (LLM) ഉപയോഗിച്ച് ടീം പരീക്ഷണം നടത്തി. AI നിർമ്മിച്ച ഫലങ്ങളിൽ വലിയ വ്യതിയാനങ്ങൾ ഉണ്ടായതിനാൽ CI ഗേറ്റ് വിശ്വസനീയമായിരുന്നില്ല. ഒരു ബൈനറി പാസ്/ഫെയിൽ (pass/fail) ചെക്കിന് സ്ഥിരത അത്യാവശ്യമാണ്, അതിനാൽ JSON അടിസ്ഥാനമാക്കിയുള്ള മാനുവൽ ആർട്ടീഫാക്റ്റുകൾ ഉപയോഗിക്കാൻ തീരുമാനിച്ചുകൊണ്ട് ആ പരീക്ഷണം ഉപേക്ഷിച്ചു.
What to watch next
നിലവിൽ, ഈ മൂന്ന് ലെയർ CI മോഡൽ VPAT-കൾ എപ്പോഴും അപ്ഡേറ്റഡ് ആയി നിലനിർത്താനും, മാനുവൽ ജോലി കുറയ്ക്കാനും, ഓരോ കോഡ് മാറ്റത്തിലും accessibility മുൻഗണനയിൽ നിർത്താനും പ്രായോഗികമായ ഒരു വഴി വാഗ്ദാനം ചെയ്യുന്നു.
