Jinsi Tulivyofanya VPAT za Ufikiaji Kuwa Otomatiki Katika CI Jinsi Tulivyofanya VPAT za Ufikiaji Kuwa Otomatiki Katika CI

Ukaguzi wa ufikiaji (accessibility) hupitwa na wakati haraka sana. Muunganisho mmoja wa kodi (code merge) hubadilisha kila kitu.

Tulitatua hili. Tuligeuza ripoti zetu za ufikiaji kuwa bidhaa ya ujenzi endelevu (continuous build artifact).

Mchakato wetu wa pipeline unatumia tabaka tatu kupata makosa:

  • Ukaguzi wa tuli (Static checks): Tunatumia axe-core kwa majaribio ya msingi katika Storybook.
  • Majaribio ya mwingiliano (Interactive tests): Tunatumia wasaidizi (helpers) maalum wa Vitest kupima sheria za kibodi.
  • Ukaguzi wa mwongozo (Manual audits): Tunahifadhi matokeo ya programu za kusoma skrini (screen reader) kama faili za JSON.

Mchakato wetu wa CI huunganisha matokeo haya.

Ikiwa jaribio litafeli, PR itafeli. Ikiwa majaribio yote yatafaulu, mfumo unajenga PDF mpya. PDF hii huambatana na toleo lako (release).

Tulijaribu jambo moja ambalo lilifeli.

Tulijaribu kutumia LLM badala ya ukaguzi wa mwongozo. Tulikaacha kuitumia mara moja. Matokeo ya AI hubadilika sana. Unahitaji matokeo thabiti kwa ajili ya mlango wa CI (CI gate).

Soma uchambuzi kamili wa kiufundi hapa:

Chanzo: https://dev.to/yassine_lakhdar_d0226709a/how-we-automated-our-accessibility-vpats-in-ci-46jk

IKULU: Timu ya uendelezaji imefanya uundaji wa VPAT za ufikiaji (Voluntary Product Accessibility Templates) kuwa otomatiki moja kwa moja katika mchakato wake wa uunganishaji endelevu (CI), ikigeuza kile kilichokuwa ripoti ya mwongozo ya mara kwa mara kuwa bidhaa ya ujenzi (build artifact) inayokuja na kila toleo. Mchakato mpya huu huzuia maombi ya kuunganisha (pull requests) yanayoleta upungufu wa ufikiaji (accessibility regressions) na hutoa hati ya utiifu ya PDF kiotomatiki wakati ujenzi unapofanikiwa, ikihakikisha kila mabadiliko ya kodi yanabaki ndani ya viwango vya ufikiaji.

Kwa nini otomatiki ni muhimu

Ukaguzi wa ufikiaji hupitwa na wakati mara tu kodi mpya inapowekwa. Muunganisho mmoja unaweza kuleta maandishi ya alt (alt text) yaliyokosekana, mpangilio usiofaa wa uwezo wa kuzingatia (focus order), au matatizo ya programu za kusoma skrini ambayo hufuta ubatili wa VPAT iliyotolewa hapo awali. Kudumisha utiifu kwa njia ya mwongozo kunamaanisha kurudia ukaguzi baada ya kila mabadiliko, mchakato wenye gharama na unaoweza kusababisha makosa ambao mara nyingi huchelewa nyuma ya kasi ya uendelezaji. Kwa kuweka ukaguzi ndani ya CI, timu hupata mrejesho wa haraka, hudumisha utiifu wa sasa, na kuepuka hatari za kisheria na za sifa za kutoa programu isiyofikika.

Mbinu ya majaribio ya tabaka tatu

  1. Ukaguzi wa tuli (Static checks) – Pipeline huendesha axe-core, maktaba ya chanzo huru inayochunguza vipengele vinavyoonyeshwa katika Storybook kwa ukiukaji unaojulikana kama kukosekana kwa alama muhimu (landmarks) au upungufu wa mwangaza wa rangi (color contrast). Majaribio haya hukamata matatizo kabla ya mwingiliano wowote kutokea.

  2. Ukaguzi wa mwingiliano (Interactive checks) – Wasaidizi maalum wa Vitest hufanya majaribio ya sheria za uendeshaji wa kibodi, wakithibitisha kuwa uwezo wa kuzingatia (focus) unahamia kwa mantiki na kwamba vipengele vya mwingiliano vinajibu matukio ya kawaida ya kibodi. Tabaka hili huenda mbali zaidi ya uchambuzi wa tuli ili kuhakikisha utumiaji wa ulimwengu halisi.

  3. Bidhaa za ukaguzi wa mwongozo (Manual audit artifacts) – Matokeo kutoka kwa majaribio ya programu za kusoma skrini huhifadhiwa kama faili za JSON. Waendelezaji huandika uchunguzi wakati wa majaribio ya uchunguzi na kuweka JSON hiyo pamoja na kodi. Kazi ya CI huunganisha bidhaa hizi na matokeo ya otomatiki, ikitoa chanzo kimoja cha ukweli kwa ajili ya VPAT.

Ikiwa jaribio lolote katika tabaka mbili za kwanza litafeli, ombi la kuunganisha (pull request) linazuiliwa, kuzuia mabadiliko hayo yasifikie uzalishaji (production). Ikiwa majaribio yote yatafaulu, pipeline huunganisha data hiyo katika PDF ambayo huambatishwa kwenye toleo, ikitoa VPAT iliyo na taarifa za sasa bila juhudi za ziada.

Kile ambacho hakikufanya kazi

Timu ilijaribu kutumia modeli kubwa ya lugha (LLM) ili kuzalisha sehemu ya ukaguzi wa mwongozo kiotomatiki. Matokeo yaliyozalishwa na AI yalibadilika-badilika sana, na kufanya mlango wa CI kutokuwa wa kuaminika. Uwiano ni muhimu kwa ukaguzi wa kupitisha/kufeli (pass/fail), hivyo jaribio hilo liliachwa kwa ajili ya bidhaa za mwongozo zinazotokana na JSON.

Kile cha kuangalia baadaye

Kwa sasa, mfano wa CI wa tabaka tatu unatoa njia ya vitendo ya kuweka VPATs kuwa za sasa, kupunguza mzigo wa kazi wa mwongozo, na kuweka ufikiaji (accessibility) kuwa kipaumbele katika kila mabadiliko ya kodi.