Skip to content
This repository has been archived by the owner on May 20, 2022. It is now read-only.

Domande frequenti

Danilo Spinelli edited this page Jan 31, 2017 · 8 revisions

Domande frequenti

Perché non è basato su Bootstrap 3 come i componenti distribuiti in precedenza ?

  1. il rilascio della versione 4 di Bootstrap è imminente: la nuova release attrarrà i contributi della community Bootstrap e nuovi temi e plugin saranno basati su questa versione. Non sarebbe stato opportuno basare un nuovo progetto su una versione del framework destinata a venir deprecata
  2. Bootstrap 3 non pone la necessaria attenzione all’accessibilità essenziale per soddisfare i requisiti richiesti dalla normativa italiana. È necessario integrare i componenti con un layer di accessibilità, il che richiede un ulteriore effort per il mantenimento
  3. l’utilizzo di CSS applicato globalmente (in opt-out, direttamente ai tag HTML) rende complesso l’utilizzo di elementi grafici (es. tipografia) che dipendono dal contesto (vedi anche https://github.com/italia-it/designer.italia.it/issues/70). ne preclude inoltre la possibilità di utilizzo tout-court per chi utilizza un qualsiasi altro framework

Perché non è basato su bootstrap 4 (o qualsiasi altro framework CSS) ?

B4 è un framework moderno e sembra porre quell’attenzione all’accessibilità che era mancata in B3. Tuttavia:

  1. la prima versione (alpha) di Bootstrap 4 è apparsa ad agosto 2015. A settembre 2016 non è ancora stata rilasciata la versione 1.0, pertanto non era possibile pianificare il rilascio di materiale basato su una prima release stabile di B4
  2. nel passaggio a B4 si perde il vantaggio della “popolarità” (diffusione) del framework: essendo cambiate le classi e i componenti Javascript, sarebbe comunque necessario un refactoring da parte di chi già utilizza B3
  3. B4 non supporta IE8/9. Seppur nelle LG è consigliata la compatibilità con IE10+, è sensato lasciare quantomeno aperta la possibilità di supportare i browser che non implementano flexbox.

Ci sono inoltre alcuni importanti motivi per i quali è stato ritenuto opportuno non vincolarsi ad alcun framework (B4 compreso):

  1. basare l’implementazione su uno specifico framework esclude automaticamente l’utilizzo di tutti gli altri. alcune tecniche impiegate nel toolkit (es. l’utilizzo quasi assente di CSS globale e le regole di nomenclatura utilizzate per le classi) permettono di incorporare i componenti in qualsiasi tipologia di progetto
  2. una implementazione totalmente personalizzata permette di poter modificare qualsiasi parte del codice senza compromettere la possibilità di un upgrade o di conflitti con futuri sviluppi. questa possibilità facilita la collaborazione e stimola i contributi poiché le scelte (es. widget javascript) vengono effettuate in totale libertà e autonomia da progetti esterni
  3. adottare un framework specifico significa sposarne l’evoluzione. volendo da subito incorporare nel toolkit tecnologie top-notch, non ancora disponibili nel framework di base, risulterebbe necessario attendere una sua futura release. alcune scelte sarebbero quindi necessariamente delegate ai maintainer del framework sacrificando quindi la ownership del processo. per un progetto che auspichiamo di largo respiro e conforme alla normativa presente e futura, non sembra essere un compromesso accettabile
  4. tutti i componenti di uso comune non forniti dal framework (es. gallerie, mappe interattive, calendario eventi, ...) richiederebbero comunque una implementazione custom
  5. una implementazione totalmente personalizzata permette in ogni caso di incorporare elementi estratti dai framework più popolari (per la natura open source dei progetti)

In merito alle problematiche introdotte da una implementazione totalmente custom:

  1. “utilizzare Bootstrap3 faciliterebbe l’adozione del toolkit perché l’effort stimato per integrare l’esistente con il nuovo materiale è minore di quello richiesto per un refactoring completo”: sono previsti accorgimenti che permettono di incorporare i componenti del toolkit (es. header) in progetti esistenti. in questo modo, in aggiunta ai vantaggi già menzionati, si evita di penalizzare tutti coloro che non usano Bootstrap3
  2. “utilizzare Bootstrap3 faciliterebbe l’adozione del toolkit perché gli sviluppatori sono già formati e la documentazione è migliore di quanto può esserlo quella di un toolkit custom”: l’effort per comprendere e utilizzare i necessari costrutti è del tutto sostenibile: snippet di codice HTML sono a corredo di ogni esempio. Inoltre la documentazione del tookit è il compendio di quella dei moduli utilizzati (es. i plugin javascript o le classi SuitCSS) che risulta essere esaustiva nella maggior parte dei casi

Devo pianificare un refactoring se sul mio sito utilizzo Bootstrap (o un qualsiasi altro framework) ?

No. A oggi l’utilizzo di una tecnologia piuttosto che un’altra non è vincolante e la valutazione su quanto sia conveniente o meno è lasciata al fornitore. Il fornitore è tenuto a garantire una qualità equivalente a prescindere dalla tecnologia utilizzata, la PA è tenuta a sapere che, raggiunto lo stato di maturità', l’utilizzo del toolkit permetterà di risparmiare sui tempi di sviluppo nel caso voglia adeguarsi alle LG.

È possibile incorporare i componenti del toolkit nel mio sito se utilizzo un altro framework CSS ?

Si. Tuttavia al momento (v0.1.0) il meccanismo per poter portare a termine l’operazione è complesso: è necessario effettuare una build escludendo il CSS globale (normalize.css) agendo manualmente sull’index.css. Nelle prossime release verranno fornite interfacce per effettuare in modo più semplice una build personalizzata, contenente unicamente il codice dei componenti scelti.

L'utilizzo del toolkit per il mio sito lo rende automaticamente conforme alle LG ?

No. Sono soddisfatti automaticamente solo i requisiti inerenti le indicazioni relative al visual design.