A11y Widget - libreria di accessibilità

Obiettivo del progetto
L'obiettivo non era replicare i widget esistenti, ma costruire la libreria che avrei voluto trovare: TypeScript-first, tree-shakable, personalizzabile via CSS Custom Properties e integrabile in un design system reale.
Libreria npm invece di componente interno
Pubblicare una libreria forza a progettare un'API pubblica stabile, documentata e retrocompatibile. Un componente interno risolve un problema locale; un pacchetto npm impone una struttura più pulita e riutilizzabile.
React Context Provider per lo stato globale
Le preferenze di accessibilità devono essere condivise tra widget, UI e componenti dell'applicazione. Context evita prop drilling e mantiene lo stato centralizzato senza introdurre uno state manager esterno.
CSS Custom Properties per il theming
Il consumer può adattare colori, spaziature e stati visuali al proprio brand system senza forkare la libreria o sovrascrivere selettori fragili.
La dashboard analytics avrebbe richiesto backend, tracciamento eventi e gestione di dati utente: uno scope incompatibile con una libreria client-side. La versione CDN no-build e il plugin WordPress avrebbero introdotto canali di distribuzione separati da mantenere. Il supporto IE11 è stato escluso perché avrebbe imposto polyfill e compromessi tecnici non coerenti con una libreria moderna.
Funzionalità realizzate
Impatto del progetto
API stabile
Pacchetto arrivato alla versione 1.0.2, con API pubblica stabilizzata e gestione dei rilasci
Pacchetto riutilizzabile e autonomo
Distribuibile come dipendenza npm in qualsiasi progetto React senza configurazioni aggiuntive
Zero dipendenze runtime
La libreria si integra senza aggiungere librerie runtime al bundle dell'applicazione host
Test suite dedicata
Test con Vitest sulle API pubbliche per ridurre regressioni tra versioni
Galleria del progetto
Screenshot delle sezioni principali del progetto.

Widget Floating Posizionato

Pannello Controlli Accessibilità Completo

Modalità Alto Contrasto Attivata

Regolazione Dimensione Testo Dinamica

Modalità Dislessia con Font Specializzato

Configurazione Multi-Setting Avanzata
Servizio correlato
Sviluppo custom per software house
Questo progetto rientra in questo servizio
Tecnologie Utilizzate
Info Progetto
Cliente
Ottavio Tedesco
Anno
2025
Durata
5 mesi
Categoria
Sviluppo custom per software houseOutput
- Widget floating personalizzabile con controlli per testo, contrasto, colori, animazioni e preferenze visive
- React Context Provider per sincronizzare le impostazioni a livello globale
- Persistenza automatica delle preferenze nel localStorage con gestione SSR-safe
- Supporto a navigazione da tastiera, focus management e markup ARIA
- Architettura TypeScript modulare con API tipizzata e bundle tree-shakable
- Theming tramite CSS Custom Properties con supporto dark/light mode