Layout Pagina Inclusiva
Nota tecnica / stato progetto • ultima revisione: 05-10-2025
Versione live (GitHub Pages):
https://vitopalumbopodcast.github.io/PageLayout/index.html
Repository per contribuire:
https://github.com/vitopalumbopodcast/PageLayout
Questo progetto fornisce un layout didattico inclusivo pronto all’uso, in un unico file HTML, con strumenti di accessibilità integrati (contrasto, grandezza testi, spaziatura, righello di lettura, maiuscoletto), funzioni di supporto allo studio (TTS e Karaoke separati), e un sistema di contenuti esterni via JSON (titoli, sezioni, glossario, quiz, schemi Mermaid). L’obiettivo è ridurre i tempi di preparazione, mantenere coerenza tra pagine e facilitare il riuso in contesti diversi.
Contribuisci su GitHub
Chiunque può proporre miglioramenti secondo i meccanismi standard di GitHub:
- Apri un’Issue nel repository per segnalare bug, proporre nuove funzioni o discutere miglioramenti (ad esempio preset JSON per discipline, correzioni di accessibilità, test su Android).
- Apri una Pull Request (PR):
- Fork del repo → branch descrittivo (es.
fix/toolbar-androidofeat/export-html). - Modifica i file (HTML/JS/CSS o esempi JSON), aggiungi note nel README se serve.
- Commit con messaggi chiari → Push → PR verso
main.
- Fork del repo → branch descrittivo (es.
- Discussione e review: manteniamo il confronto pubblico nell’Issue/PR; una volta approvata, la modifica viene unita e confluisce nella live in automatico (GitHub Pages).
Repository: github.com/vitopalumbopodcast/PageLayout
Scopo
Fornire un singolo file HTML con funzioni di accessibilità e componenti didattici già integrati. I contenuti non sono codificati nel markup, ma gestiti tramite import/export JSON. Obiettivo: riuso, coerenza, tempi di setup bassi.
Architettura (breve)
- UI: struttura responsiva, indice, blocchi tematici.
- Accessibilità: toggle contrasto, dimensione testo, spaziatura, righello di lettura, caps.
- Supporti: TTS e Karaoke separati.
- Contenuti: popolati via JSON (titoli, sezioni, glossario, quiz, mappa/diagramma).
- Export: JSON (stato contenuti). In roadmap: HTML completo “congelato”.
Componenti attivi
- Toolbar accessibilità (contrasto, font size, spacing, righello, UPPER).
- Semplifica per versioni a bassa complessità del testo.
- Keyword con popover (definizioni inline).
- Mermaid per schemi rapidi.
- Quiz a scelta con hint + spiegazione.
- Stampa pulita (layout senza elementi di controllo superflui).
Flusso JSON
- Import: carica un file JSON → il runtime mappa i campi ai segnaposto e inizializza i componenti.
- Edit: modifica contenuti in pagina (facoltativo).
- Export: salva un JSON coerente con lo schema attuale (versionabile).
- (Roadmap) Export HTML: genera un file unico con contenuti incorporati e script funzionante.
Schema minimo (esempio)
{
"titolo": "Titolo pagina",
"descrizione": "1-2 frasi di contesto",
"immagine": {
"src": "https://…/cover.png",
"alt": "descrizione accessibile",
"didascalia": "crediti/nota"
},
"obiettivi": ["Item A", "Item B"],
"prerequisiti": ["Concetto 1", "Concetto 2"],
"sezioni": [
{
"titolo": "Blocco 1",
"testo": "Paragrafo/i…",
"semplificato": "Versione breve…",
"approfondimento": "Dettagli opzionali…"
}
],
"mermaid": "flowchart TD; A[Stimolo]-->B[Elaborazione]; B-->C[Risposta];",
"attivita": {
"step": ["Osserva", "Analizza", "Nomina"],
"aiuti": ["Indizio 1", "Indizio 2"]
},
"quiz": [
{
"q": "Domanda?",
"choices": ["A","B","C","D"],
"correct": 0,
"hint": "Suggerimento breve",
"explain": "Spiegazione sintetica"
}
],
"glossario": [
{"termine": "Termine", "definizione": "Definizione rigorosa"}
]
}
Nota: campi aggiuntivi sono ammessi; lo script ignora quelli non mappati.
Compatibilità e I/O
- Browser: modern evergreen (Chromium/Firefox/WebKit recenti). Test mirato su Android/Chrome.
- Storage: file locale per import/export. Nessuna dipendenza da build tools.
- CMS: integrabile via pagina HTML/iframe; export HTML completo semplificherà l’embed.
Limiti noti
- Gestione errori import: da rafforzare (validazione schema e messaggi più espliciti).
- Mermaid: richiede inizializzazione ordinata dopo il mapping contenuti.
- Accessibilità: ulteriore revisione ARIA/contrasti su combinazioni estreme.
Roadmap (priorità tecniche)
- Export HTML completo (bundle contenuti + JS, idempotente).
- Validator JSON con schema leggero e report differenze.
- Preset di pagina (scienze/storia) come esempi minimi riusabili.
- Test touch/Android su toolbar (hitbox/feedback focus).
- Print tokens per controlli tipografici (titoli/box/figure).
Uso rapido
- Duplica il file HTML modello.
- Prepara un
.jsoncon i campi minimi (vedi schema). - In pagina: pulsante Importa JSON → mappatura automatica.
- Verifica: popover keyword, TTS/Karaoke, toggle Semplifica, quiz.
- Esporta: Export JSON. (HTML completo: in arrivo).
Obiettivo operativo: contenuti sostituibili senza toccare la logica, tempi di pubblicazione ridotti, coerenza funzionale tra pagine.