polito.it
Politecnico di Torino (logo)

Sviluppo di un'estensione VS Code AI-based per migliorare lo sviluppo web accessibile = Development of an AI-based VS Code extension to improve accessible web development

Elisa Cali'

Sviluppo di un'estensione VS Code AI-based per migliorare lo sviluppo web accessibile = Development of an AI-based VS Code extension to improve accessible web development.

Rel. Riccardo Coppola, Tommaso Fulcini. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2025

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (5MB) | Preview
Abstract:

L'accessibilità web è essenziale nello sviluppo software, poiché garantisce che le applicazioni siano fruibili da tutti, inclusi utenti con disabilità. Tuttavia, per limiti di tempo o inesperienza, è possibile che alcuni errori vengano introdotti durante le fasi di sviluppo. Spesso l'accessibilità viene verificata solo in fasi avanzate del progetto, quando un esperto di accessibilità o un utente possono testarlo. Questo approccio può richiedere riscritture significative di codice, aumentando costi ed effort. Negli ultimi anni, però, gli LLM hanno trovato ampio uso in diversi ambiti, inclusa la generazione di codice. La presente tesi si pone due obiettivi principali. Da un lato, mira a valutare le capacità degli LLM nell'identificazione degli errori di accessibilità presenti in un dato snippet, nonché nella generazione di soluzioni conformi alle linee guida WCAG. Tale analisi utilizza esclusivamente tecniche di prompt engineering, al fine di testare le potenzialità del modello basandosi unicamente sui dati di addestramento. Dall’altro lato, si propone di sviluppare un'estensione per VS Code che utilizzi un LLM per rilevare e correggere gli errori di accessibilità presenti nel codice sorgente. Lo strumento è pensato per supportare gli sviluppatori anticipando l’identificazione degli errori e proponendo soluzioni contestualizzate al codice. La metodologia prevede l’uso dell'LLM CodeLlama, integrato in un’estensione per VS Code, e due casi d'uso: il primo, denominato FixWithAI, prevede l'utilizzo di ESLint per identificare gli errori di accessibilità attraverso un'analisi statica del codice e l'LLM per correggere tale problematica; il secondo, denominato CheckAndFixWithAI, prevede l'utilizzo dell'LLM sia per l'identificazione degli errori di accessibilità che per la correzione di essi. Il secondo use case si pone come obiettivo quello di superare i limiti presenti un'analisi statica che non può comprendere il contesto applicativo, al fine di rilevare più errori possibili. L'applicazione è stata testata su una repository contenente il codice di un e-commerce scritto in React.js con l'utilizzo di Next.js e un CMS headless per la gestione dei contenuti editoriali. In essa sono stati riscontrati casi reali di errori di accessibilità, per lo più legati all'assenza di testo accessibile, alt su tag img o l'utilizzo di gestori di eventi su elementi non raggiungibili da tastiera. Per ogni use case sono stati definiti dei criteri di valutazione, 10 per FixWithAI e 15 per CheckAndFixWithAI e ogni test è stato categorizzato in "Corretto", "Parzialmente corretto" e "Non corretto" in base a quanti criteri di successo venissero soddisfatti. I risultati ottenuti dimostrano che il modello, pur mostrando buone prestazioni per lo use case FixWithAI, presenta alcune limitazioni per CheckAndFixWithAI, richiedendo l’introduzione di esempi specifici nel prompt per migliorare l'accuratezza. Inoltre, l'estensione è stata limitata al supporto di React e JavaScript vanilla, con test effettuati su una sola repository, riducendo così la generalizzabilità dei risultati. Le conclusioni evidenziano il potenziale dell’estensione, evidenziando però la necessità di migliorie: un fine-tuning mirato per migliorare la precisione, il supporto ad altri framework di sviluppo come Angular, Vue.js e Svelte e l’introduzione di funzionalità per fornire contesto aggiuntivo al modello. Questi sviluppi potrebbero trasformare l'estensione in uno strumento più versatile ed efficace per la creazione di applicazioni web accessibili.

Relatori: Riccardo Coppola, Tommaso Fulcini
Anno accademico: 2024/25
Tipo di pubblicazione: Elettronica
Numero di pagine: 106
Soggetti:
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: Nuovo ordinamento > Laurea magistrale > LM-32 - INGEGNERIA INFORMATICA
Aziende collaboratrici: NON SPECIFICATO
URI: http://webthesis.biblio.polito.it/id/eprint/35227
Modifica (riservato agli operatori) Modifica (riservato agli operatori)