Componenti

Tipografia

H1

Titolo H1 — Trinity College London

<h1>Titolo H1</h1>
H2

Titolo H2 — Sezione di contenuto

<h2>Titolo H2</h2>
H3

Titolo H3 — Sottosezione

<h3>Titolo H3</h3>
H4

Titolo H4 — Elemento minore

<h4>Titolo H4</h4>
Paragrafo

Trinity College London è una Charity Educativa e un Ente Certificatore Internazionale che eroga esami di Lingua Inglese, Musica e Arti Performative, attivo dal 1877 e presente in oltre 80 paesi nel mondo.

<p>Testo paragrafo</p>
Paragrafo con strong

Il testo normale può contenere parole in grassetto per evidenziare concetti chiave all'interno del paragrafo.

<p>Testo con <strong>grassetto</strong> inline</p>
Link
<a href="#">Testo link</a>
Termine in lingua inglese (WCAG 3.1.2)

Metti alla prova lo speaking dei tuoi studenti con il Diagnostic Speaking Tool.

<span lang="en">speaking</span>
Blockquote editoriale
"L'educazione è l'arma più potente che puoi usare per cambiare il mondo."
<blockquote>Citazione</blockquote>
Blockquote testimonial
Grazie a Trinity ISE ho ottenuto il riconoscimento universitario che cercavo. Un'esperienza che ha cambiato la mia carriera.
— Maria Rossi, studentessa
<blockquote class="trinity-testimonial">Citazione</blockquote>

Liste

Lista con bullet SVG personalizzato
  • Primo elemento della lista
  • Secondo elemento della lista
  • Terzo elemento con testo più lungo per verificare l'allineamento del bullet personalizzato
<ul> <li>Elemento</li> </ul>
Lista senza bullet (.list-unstyled)
  • Elemento senza bullet
  • Secondo elemento senza bullet
  • Terzo elemento senza bullet
<ul class="list-unstyled"> <li>Elemento</li> </ul>
Lista ordinata
  1. Primo passo del processo
  2. Secondo passo del processo
  3. Terzo passo del processo
<ol> <li>Elemento</li> </ol>
Definition list
Livello
B1, B2, C1, C2 secondo il QCER
Durata
Circa 90 minuti complessivi
<dl> <dt>Termine</dt> <dd>Definizione</dd> </dl>
Timeline
  • 1877 — Fondazione di Trinity College London
  • 1950 — Espansione internazionale
  • 2024 — Oltre 80 paesi nel mondo
<ul class="timeline-list"> <li><div class="timeline_content">Contenuto</div></li> </ul>

Etichette

Varianti etichetta

Purple Lilac Lilac 20% Pink Pink 20% Yellow Yellow 20% Teal Teal 20%

<span class="etichetta etichetta-purple">Label</span> <span class="etichetta etichetta-lilac">Label</span> <span class="etichetta etichetta-yellow">Label</span> <span class="etichetta etichetta-pink">Label</span> <span class="etichetta etichetta-teal">Label</span>
Heading label yellow
Novità
<span class="etichetta heading-label-yellow">Novità</span>
Colori di utilità su testo

Testo purple

Testo yellow

Testo pink

Testo teal

<p class="purple">Testo purple</p> <p class="yellow">Testo yellow</p> <p class="pink">Testo pink</p> <p class="teal">Testo teal</p>

Bottoni

btn-purple (primario)
<a href="#" class="btn btn-purple">Label</a> <a href="#" class="btn btn-purple forward">Label</a> <a href="#" class="btn btn-purple download">Label</a>
btn-secondary (outline)
<a href="#" class="btn btn-secondary">Label</a> <a href="#" class="btn btn-secondary forward">Label</a>
btn-yellow
<a href="#" class="btn btn-yellow">Label</a> <a href="#" class="btn btn-yellow forward">Label</a>
btn-pink
<a href="#" class="btn btn-pink">Label</a> <a href="#" class="btn btn-pink forward">Label</a>
btn-teal
<a href="#" class="btn btn-teal">Label</a> <a href="#" class="btn btn-teal forward">Label</a>
trinity_action
<a href="#" class="trinity_action">Label</a> <a href="#" class="trinity_action mod_forward">Label</a>
Gruppo bottoni (d-flex flex-wrap gap-2)
<div class="d-flex flex-wrap gap-2"> <a href="#" class="btn btn-purple forward">Label</a> <a href="#" class="btn btn-secondary forward">Label</a> </div>
Navigazione interna
<nav aria-label="Sezioni della pagina" class="trinity-box-grey anchor-box">Vai a: <a href="#">Label</a> | <a href="#">Label</a> </nav>
Navigazione interna
Download
<a href="#" class="btn btn-secondary download">Label</a>

Box e contenitori

trinity-box-grey

Titolo box grigio

Contenuto del box con sfondo grigio chiaro, ideale per note, avvisi o contenuti secondari.

<div class="trinity-box-grey"> <h3>Titolo</h3> <p>Contenuto</p> </div>
trinity-box-teal

Titolo box teal

Contenuto del box con sfondo teal chiaro, ideale per evidenziare informazioni positive.

<div class="trinity-box-teal"> <h3>Titolo</h3> <p>Contenuto</p> </div>
trinity-box-dark

Titolo su sfondo nero

Il testo diventa automaticamente bianco su sfondo scuro.

<div class="trinity-box-dark"> <h2>Titolo</h2> <p>Contenuto</p> </div>
trinity-box-purple

Titolo su sfondo viola

Il testo diventa automaticamente bianco su sfondo viola.

<div class="trinity-box-purple"> <h2>Titolo</h2> <p>Contenuto</p> </div>

Form

Campi testo, email, tel, number, select
<form class="trinity-form"> <label for="campo">Label <abbr title="campo obbligatorio">*</abbr></label> <input type="text" id="campo" name="campo"> <select id="select" name="select">...</select> </form>
Checkbox

<p> <input type="checkbox" id="campo" name="campo"> <label class="label-checkbox" for="campo">Label</label> </p>
Radio group
Tipo di candidato
<fieldset class="trinity-form__fieldset"> <legend class="trinity-form__legend">Titolo gruppo</legend> <div class="trinity-form__radio-group"> <input type="radio" id="r1" name="gruppo" value="r1"> <label for="r1">Opzione</label> </div> </fieldset>
Form inline (campo + bottone)
<div class="trinity-form__inline"> <input type="text" id="campo" name="campo"> <button type="submit" class="btn btn-purple">Cerca</button> </div>
Filtro eventi (select stilizzata)
<select class="form-select trinity-filter-select"> <option>Tutti</option> </select>

Tabelle

Tabella generica (.trinity-table)
Livello Esame Durata Abilità
B1 ISE I 90 min Reading, Writing, Speaking, Listening
B2 ISE II 100 min Reading, Writing, Speaking, Listening
C1 ISE III 110 min Reading, Writing, Speaking, Listening
C2 ISE IV 120 min Reading, Writing, Speaking, Listening
<table class="trinity_table table"> <thead> <tr><th scope="col">Colonna</th></tr> </thead> <tbody> <tr><td>Dato</td></tr> </tbody> </table>

Accordion

Accordion standard

L'esame ISE include quattro abilità linguistiche: Reading, Writing, Speaking e Listening. La durata varia in base al livello, da B1 a C2.

Puoi iscriverti tramite uno dei nostri centri d'esame accreditati in Italia. Usa il motore di ricerca sul sito per trovare il centro più vicino a te.

I risultati vengono comunicati entro 3-4 settimane dalla data dell'esame. Riceverai una notifica via email con le istruzioni per visualizzarli online.

<div class="accordion" id="accordionId"> <div class="accordion-item"> <h3 class="accordion-header"> <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#pannello1" aria-expanded="true" aria-controls="pannello1"> Domanda </button> </h3> <div id="pannello1" class="accordion-collapse collapse show"> <div class="accordion-body"> <p>Risposta</p> </div> </div> </div> </div>

Card

Feature card
descrizione immagine

Terza feature card

Breve descrizione del contenuto della card. Testo esplicativo del collegamento.

<article class="trinity-feature-card"> <a href="#" class="trinity-feature-card__img-link"> <img src="..." alt="..." tcl-size="card-feat"> </a> <div class="trinity-feature-card__body"> <h3 class="trinity-feature-card__title"><a href="#">Titolo</a></h3> <p>Descrizione</p> </div> </article>
News card
<ul class="trinity-news-list"> <li> <article> <img src="..." alt="..." class="img-fluid" width="500" height="300" loading="lazy"> <div class="trinity-news-card__meta"> <ul class="trinity-news-card__categories"> <li><a href="#">Categoria</a></li> </ul> <span class="trinity-news-card__date">GG Mmm AAAA</span> </div> <h3 class="trinity-news-card__title"><a href="#">Titolo</a></h3> </article> </li> </ul>
Scheda corso (.trinity-corso-meta)

Masterclass di Pronuncia Avanzata

Data: 15 maggio 2025

Livello: C1 – C2

Durata: 3 ore

Modalità: Online via Zoom

Prezzo: Gratuito con Carta del Docente

Iscriviti ora
<div class="trinity-corso-meta"> <p class="trinity-corso-meta__item"><strong>Data:</strong> GG Mese AAAA</p> <p class="trinity-corso-meta__item"><strong>Livello:</strong> B2</p> </div>
Voice card (.trinity-voice-card)
Nome Cognome

Nome Cognome

Nome Cognome

Nome Cognome

<a href="#" class="trinity-voice-card"> <img src="..." alt="Nome Cognome" class="img-fluid" width="200" height="200" loading="lazy"> <p class="trinity-voice-card__name">Nome Cognome</p> </a>
Voce programma (.trinity-talk-entry)
  1. Insegnare la pronuncia con metodi innovativi

    Dr. Laura Bianchi — Università di Milano

  2. Assessment formativo e summativo in classe

    Prof. Marco Verdi — Trinity College London

<li class="trinity-talk-entry"> <p class="trinity-talk-entry__date"><time datetime="AAAA-MM-GG">GG Mese AAAA</time></p> <h3 class="trinity-talk-entry__title">Titolo talk</h3> <p class="trinity-talk-entry__subtitle">Relatore</p> </li>

Hero

Hero con video e overlay (.trinity-hero)

Titolo principale della pagina

Sottotitolo o descrizione breve della sezione hero, visibile su sfondo scuro con testo bianco.

Scopri di più
<section class="trinity-hero" aria-labelledby="hero-heading"> <video class="trinity-hero__video" poster="..." autoplay loop muted playsinline aria-hidden="true" tabindex="-1"> <source src="..." type="video/mp4"> </video> <div class="trinity-hero__overlay" aria-hidden="true"></div> <div class="container"> <div class="row"> <div class="col-12 col-lg-6"> <h1 id="hero-heading">Titolo</h1> <p>Descrizione</p> </div> </div> </div> </section>

Caroselli

Carosello Bootstrap (#myCarousel)
<div id="myCarousel" class="carousel slide" data-bs-ride="carousel"> <div class="carousel-inner"> <div class="carousel-item active"> <div class="carousel-slide-bg" style="background-image:url(...)"></div> <div class="carousel-caption"> <h2>Titolo</h2> <p>Descrizione</p> </div> </div> </div> </div>
Carosello testimonianze (#testimonialeCarousel)
<div id="testimonialeCarousel" class="carousel slide"> <div class="carousel-inner"> <div class="carousel-item active"> <blockquote class="trinity-testimonial">Citazione</blockquote> </div> </div> </div>

Paginazione

Paginazione news (.trinity-pagination-nav)
<nav class="trinity-pagination-nav" aria-label="Navigazione pagine"> <p class="trinity-pagination-nav__info">Pagina X di Y</p> <ul class="pagination"> <li class="page-item"><a class="page-link" href="#">1</a></li> <li class="page-item active" aria-current="page"><a class="page-link" href="#">2</a></li> </ul> </nav>

Utilità

Logo inline nel testo

Trinity College London è partner ufficiale del Ministero dell'Istruzione.

<img src="..." alt="Trinity College London" class="trinity-logo-inline" width="80" height="23">
YouTube player lazy
Anteprima video YouTube
<div class="youtube-player"> <img src="https://img.youtube.com/vi/VIDEO_ID/hqdefault.jpg" alt="Anteprima" width="480" height="270" loading="lazy"> <div class="playYouTube" role="button" tabindex="0" aria-label="Riproduci video"></div> </div>
Mappa

Via Example 1, 20121 Milano (MI)

<div class="trinity-map-wrapper"> <iframe src="..." width="100%" height="250" loading="lazy" title="Mappa ..."></iframe> <p class="trinity-map-address">Indirizzo</p> </div>
Skip link (accessibilità)

Il link "Vai al contenuto principale" è visivamente nascosto finché non riceve il focus (Tab). Premi Tab per vederlo.

<a href="#main" class="skip-link">Vai al contenuto principale</a> <!-- In cima alla pagina, prima di tutto il resto -->
Testo visivamente nascosto (visually-hidden)
<span class="visually-hidden">Testo solo per screen reader</span>

Griglie subgrid

trinity-grid-subgrid-3 (3 colonne allineate su 4 righe)

Titolo card uno

Descrizione breve del contenuto della prima card nella griglia subgrid.

Scopri

Titolo card due più lungo

Descrizione più lunga che occupa più righe, dimostrando l'allineamento verticale automatico del bottone grazie al subgrid.

Scopri

Titolo card tre

Descrizione breve.

Scopri
<div class="row trinity-grid-subgrid-3"> <div class="col-12 col-md-4"> <img ...> <h3>Titolo</h3> <p>Descrizione</p> <a href="#" class="btn btn-purple forward">Label</a> </div> <!-- × 3 --> </div>
trinity-grid-subgrid-4 (4 colonne)

Titolo A

Descrizione della prima card a quattro colonne.

Scopri

Titolo B più lungo del precedente

Breve.

Scopri

Titolo C

Descrizione della terza card a quattro colonne con testo più lungo.

Scopri

Titolo D

Descrizione breve.

Scopri
<div class="row trinity-grid-subgrid-4"> <div class="col-12 col-md-3"> <img ...> <h3>Titolo</h3> <p>Descrizione</p> <a href="#" class="btn btn-purple forward">Label</a> </div> <!-- × 4 --> </div>

Immagini e miniature

Formato corretto del tag <img>

Il backend genera automaticamente il tag <picture> con sorgente WebP e fallback PNG, includendo srcset a 500w, 750w, 1000w. Nel template va fornito solo il tag <img> con questi attributi:

  • src — percorso originale dell'immagine (il backend genera le miniature)
  • alt — testo alternativo descrittivo (obbligatorio; vuoto alt="" solo per immagini decorative)
  • class — classi CSS necessarie (es. img-fluid)
  • width e height — dimensioni della miniatura di fallback usata come src
  • loadinglazy per immagini fuori dal viewport iniziale; ometti o usa eager per immagini above the fold

⚠ Non scrivere mai srcset, sizes o <picture> nel template: vengono sovrascritti dal backend.

<img src="/media/uploads/cartella/immagine.jpg" alt="Descrizione significativa dell'immagine" class="img-fluid" width="500" height="350" loading="lazy">
Miniature generate dal backend

Per ogni immagine caricata il backend genera automaticamente questi formati, sia in JPG che in WebP:

Nome Larghezza Altezza Crop Pattern filename (JPG)
small 500 px auto No immagine-500.jpg
medium 750 px auto No immagine-750.jpg
large 1000 px auto No immagine-1000.jpg
hero 1920 px auto No immagine-1920.jpg

Se l'immagine richiede un crop (altezza fissa), la miniatura include entrambe le dimensioni nel nome:
immagine-500x350.jpg — il crop va applicato via CSS con object-fit: cover sul tag <img>.

Quale miniatura usare come src di fallback in base al layout

Il valore di src deve puntare alla miniatura più vicina alla larghezza reale del contenitore a schermo intero (max-width 1400px). Usa la tabella come riferimento rapido:

Layout Classi Bootstrap Larghezza max immagine Miniatura consigliata width / height da dichiarare
Full width col-12 1400 px large (1000w) o hero se sopra la piega width="1000"
Metà colonna col-12 col-md-6 ~700 px medium (750w) width="750"
Un terzo col-12 col-md-4 / subgrid-3 ~440 px small (500w) width="500"
Un quarto col-12 col-md-3 / subgrid-4 ~320 px small (500w) width="500"
Sidebar col-12 col-md-3 (aside) ~300 px small (500w) width="500"
Hero / banner .trinity-hero 1400–1920 px hero (1920w) width="1920"
Swiper / carosello (slide visibile) .trinity-story-card__img ~440 px small (500w) width="500"
Voice card (foto persona) .trinity-voice-card ~300 px small (500w) width="500"
Esempi pratici Immagine full width (col-12), no crop
<img src="/media/uploads/cartella/immagine-1000.jpg" alt="Descrizione immagine" class="img-fluid" width="1000" loading="eager">
Immagine in colonna metà (col-md-6), no crop
<img src="/media/uploads/cartella/immagine-750.jpg" alt="Descrizione immagine" class="img-fluid" width="750" loading="lazy">
Immagine in card un terzo (col-md-4), con crop 500×350
<img src="/media/uploads/cartella/immagine-500x350.jpg" alt="Descrizione immagine" class="trinity-story-card__img img-fluid" width="500" height="350" loading="lazy"> <!-- Nel CSS: .trinity-story-card__img { object-fit: cover; } -->
Hero above the fold (nessun lazy loading)
<img src="/media/uploads/cartella/immagine-1920.jpg" alt="Descrizione immagine hero" class="trinity-hero__img img-fluid" width="1920" loading="eager">

Accessibilità per redattori

Questa sezione raccoglie le regole da seguire quando si inseriscono o modificano contenuti nel CMS. Rispettarle garantisce che il sito sia utilizzabile da tutti gli utenti, incluse le persone che usano tecnologie assistive come i lettori di schermo.

Il livello di conformità richiesto è WCAG 2.2 AA.

1. Testo alternativo delle immagini (alt)

Il testo alternativo viene letto ad alta voce dai lettori di schermo al posto dell'immagine. Deve descrivere il contenuto e la funzione dell'immagine, non il suo aspetto tecnico.

Quando scrivere l'alt

  • Scrivi sempre l'alt per immagini che comunicano un'informazione (foto, grafici, illustrazioni).
  • Descrivi cosa mostra l'immagine e perché è lì, non come appare.
  • Sii conciso: idealmente sotto i 120 caratteri.
  • Non iniziare con "Immagine di…" o "Foto di…": il lettore di schermo annuncia già che si tratta di un'immagine.

Quando lasciare l'alt vuoto

  • Immagini puramente decorative (sfondi, separatori, icone ornamentali): lascia alt="".
  • Immagini il cui contenuto è già descritto dal testo circostante: lascia alt="" per evitare ripetizioni.

Esempi

Situazione ❌ Sbagliato ✅ Corretto
Foto di una studentessa che sostiene un esame orale alt="img_esame_01.jpg" alt="Studentessa durante un esame orale Trinity GESE"
Logo Trinity College London alt="logo" alt="Trinity College London"
Grafico a barre con i risultati degli esami 2024 alt="grafico" alt="Grafico: 85% di promossi agli esami ISE nel 2024"
Immagine decorativa di sfondo alt="sfondo viola decorativo" alt=""
2. Struttura dei titoli (H1, H2, H3)

I titoli creano la struttura della pagina. Gli utenti con lettore di schermo navigano spesso saltando di titolo in titolo per trovare la sezione che cercano — come si farebbe scorrendo visivamente una pagina.

Regole da seguire

  • Ogni pagina deve avere un solo H1, che corrisponde al titolo principale della pagina.
  • I titoli devono seguire una gerarchia senza salti: H1 → H2 → H3. Non si passa da H1 a H3 saltando H2.
  • Non usare i titoli per ottenere effetti grafici (es. testo grande). Usa le classi CSS apposite.
  • Ogni titolo deve descrivere il contenuto che introduce, non essere generico.

Esempi

Caso ❌ Sbagliato ✅ Corretto
Titolo principale Due H1 nella stessa pagina Un solo H1 per pagina
Gerarchia H1 → H3 (salto di livello) H1 → H2 → H3
Contenuto del titolo <h2>Clicca qui</h2> <h2>Come iscriversi all'esame ISE</h2>
Uso decorativo H2 usato solo per ingrandire il testo Classe .h2 su un <p> se è solo grafico
3. Link e testi cliccabili

Il testo di un link deve far capire dove porta o cosa fa, anche letto fuori contesto. Gli utenti con lettore di schermo ascoltano spesso la lista di tutti i link della pagina in sequenza.

Regole da seguire

  • Evita testi generici come "Clicca qui", "Leggi di più", "Vai", "Scopri": non dicono nulla fuori contesto.
  • Se il link apre un file (PDF, DOC), indicalo nel testo: "Scarica il programma d'esame (PDF)".
  • Se il link apre una nuova scheda, il testo deve avvisare l'utente.
  • Non usare lo stesso testo per link che portano a destinazioni diverse.
  • Non usare URL grezzi come testo del link (www.example.com/pagina-lunga).

Esempi

❌ Sbagliato ✅ Corretto
<a href="#">Clicca qui</a> <a href="#">Scopri gli esami ISE</a>
<a href="#">Leggi di più</a> <a href="#">Leggi di più sulla Carta del Docente</a>
<a href="programma.pdf">PDF</a> <a href="programma.pdf">Scarica il programma d'esame (PDF)</a>
Due link "Scopri di più" che portano a pagine diverse "Scopri di più sull'ISE" e "Scopri di più sul GESE"
4. Tabelle

Le tabelle devono essere usate solo per dati tabellari, mai per creare layout grafici. Ogni tabella deve avere intestazioni di colonna chiare.

Regole da seguire

  • Usa sempre una riga di intestazione (<thead>) con celle <th>.
  • Non usare tabelle per affiancare testi o immagini: usa le colonne Bootstrap.
  • Se la tabella è complessa, aggiungi una didascalia (<caption>) che la descriva.
  • Evita celle unite (merge) se possibile: complicano la lettura da parte dei lettori di schermo.

Struttura minima corretta

<table class="trinity_table table"> <caption>Livelli e durata degli esami ISE</caption> <thead> <tr> <th scope="col">Livello</th> <th scope="col">Esame</th> <th scope="col">Durata</th> </tr> </thead> <tbody> <tr> <td>B2</td> <td>ISE II</td> <td>100 min</td> </tr> </tbody> </table>
5. Form e campi

Ogni campo di un form deve avere una etichetta visibile e associata. Il placeholder da solo non è sufficiente: scompare non appena si inizia a digitare.

Regole da seguire

  • Ogni campo deve avere un <label> visibile collegato tramite l'attributo for.
  • I campi obbligatori devono essere indicati sia visivamente (asterisco) sia nel testo della label.
  • I messaggi di errore devono essere chiari e specifici: "Inserisci un indirizzo email valido", non solo "Errore".
  • Non usare il solo colore rosso per indicare un errore: aggiungi sempre un testo esplicativo.

Esempi

❌ Sbagliato ✅ Corretto
Campo con solo placeholder "Email" Label "Indirizzo email" + placeholder come suggerimento aggiuntivo
Asterisco rosso senza spiegazione Nota "I campi contrassegnati con * sono obbligatori" visibile prima del form
Messaggio di errore generico "Dati non validi" "Il campo Email deve contenere un indirizzo valido (es. nome@esempio.it)"
6. Lingua dei contenuti

Quando inserisci parole o frasi in una lingua diversa dall'italiano, i lettori di schermo devono saperlo per pronunciarle correttamente. Sul sito Trinity questo riguarda spesso termini tecnici in inglese.

Regole da seguire

  • Avvolgi i termini inglesi nel tag <span lang="en">.
  • I nomi propri come Trinity College London e le sigle come ISE sono esenti: sono riconoscibili in italiano senza bisogno del tag.
  • Vali anche per frasi intere in un'altra lingua, non solo parole singole.

Esempi

Termine ❌ Sbagliato ✅ Corretto
speaking speaking (senza tag) <span lang="en">speaking</span>
Skill Up! Skill Up! (senza tag) <span lang="en">Skill Up!</span>
Trinity College London Nessun tag necessario (nome proprio)
ISE Nessun tag necessario (sigla riconoscibile)
7. Contrasto dei colori

Il contrasto tra testo e sfondo deve essere sufficiente perché il contenuto sia leggibile anche da chi ha difficoltà visive o usa lo schermo in condizioni di luce intensa.

Regole da seguire

  • Non modificare i colori del testo o degli sfondi al di fuori della palette definita nel design system.
  • Non sovrapporre testo scuro su sfondi scuri o testo chiaro su sfondi chiari.
  • Evita di inserire testo direttamente su fotografie senza un overlay scuro intermedio.
  • Se hai dubbi su una combinazione di colori, usa lo strumento WebAIM Contrast Checker (si apre in una nuova finestra).

Palette approvata — combinazioni sicure

Testo Sfondo Uso tipico Conforme AA
#381338 — Purple dark #FFF — Bianco Testo principale, titoli H1
#FFF — Bianco #9A619B — Lilac Titoli H2, etichette
#FFF — Bianco #381338 — Purple dark Bottoni primari, footer
#381338 — Purple dark #FFB20F — Yellow Bottoni gialli
#9A619B — Lilac #FFF — Bianco Testo secondario, categorie news ⚠️ Solo testo grande (≥18px)
8. Video e contenuti multimediali

I contenuti video e audio devono essere accessibili anche a chi non può vederli o sentirli.

Regole da seguire

  • Sottotitoli: ogni video con parlato deve avere sottotitoli sincronizzati. Su YouTube e Vimeo possono essere aggiunti dal pannello di gestione del video.
  • Trascrizione: per contenuti audio o video importanti, fornisci una trascrizione testuale nella pagina.
  • Video in autoplay: i video che partono automaticamente devono essere silenziosi (muted) e offrire all'utente la possibilità di metterli in pausa.
  • Video decorativi: i video usati come sfondo (es. l'hero della homepage) devono avere aria-hidden="true" e non devono contenere informazioni rilevanti.
  • Flash e animazioni veloci: evita contenuti che lampeggiano più di 3 volte al secondo — possono causare crisi epilettiche.

Checklist prima di pubblicare un video

  • Il video ha i sottotitoli? Obbligatorio se c'è del parlato.
  • Se il video parte in automatico, è silenziato?
  • C'è un tasto per mettere in pausa o silenziare?
  • Se il video è decorativo, è marcato come tale (aria-hidden="true")?
  • Le informazioni nel video sono disponibili anche in forma testuale nella pagina?
9. Attributi ARIA

Gli attributi ARIA (Accessible Rich Internet Applications) aggiungono informazioni che i lettori di schermo usano per descrivere elementi interattivi o strutturali che l'HTML da solo non riesce a comunicare chiaramente. Come redattore ti capiterà di incontrarli nel codice HTML delle pagine: è importante non rimuoverli o modificarli senza sapere cosa fanno.

Regola generale: se non sei sicuro dell'effetto di un attributo ARIA, non toccarlo. Rimuovere un attributo ARIA può rendere una sezione invisibile ai lettori di schermo o privare un pulsante del suo nome accessibile.

Attributi che incontrerai nel CMS

aria-label

Fornisce un nome descrittivo a un elemento quando il testo visibile non è sufficiente o non esiste. Il lettore di schermo legge il valore di aria-label invece del contenuto visibile.

Quando lo trovi: su bottoni con solo un'icona, su link con testo generico, sulle sezioni principali della pagina.

❌ Sbagliato ✅ Corretto
Modificare aria-label="Apri menu di navigazione" in aria-label="Menu" Mantenere il testo descrittivo originale che spiega la funzione
Rimuovere aria-label da un bottone che contiene solo un'icona Lasciare sempre aria-label sui bottoni senza testo visibile
<!-- Bottone con solo icona: aria-label è l'unico nome accessibile --> <button aria-label="Slide precedente"> <img src="freccia.svg" alt="" aria-hidden="true"> </button> <!-- Sezione con titolo non visibile --> <section aria-label="Storie di successo Trinity">...</section>

aria-labelledby

Collega una sezione o un elemento al suo titolo visibile tramite l'id del titolo. Serve al lettore di schermo per annunciare "sei entrato nella sezione X" quando l'utente vi naviga.

Quando lo trovi: su ogni <section> della pagina. Il valore di aria-labelledby deve corrispondere all'id del titolo della sezione.

Cosa non fare: non cambiare l'id di un titolo senza aggiornare il corrispondente aria-labelledby, altrimenti il collegamento si rompe.

<section aria-labelledby="titolo-sezione"> <h2 id="titolo-sezione">Esami di lingua inglese</h2> <p>Contenuto...</p> </section>

aria-hidden

Nasconde un elemento ai lettori di schermo. L'elemento rimane visibile sullo schermo, ma viene completamente ignorato dalle tecnologie assistive.

Quando lo trovi: su icone decorative, frecce, immagini già descritte dal testo circostante, video di sfondo.

Cosa non fare: non aggiungere aria-hidden="true" a elementi che contengono testo informativo o link cliccabili — li renderebbe inaccessibili da tastiera.

Elemento Usa aria-hidden? Perché
Icona decorativa accanto a un testo ✅ Sì Il testo accanto già comunica l'informazione
Video di sfondo senza contenuto informativo ✅ Sì Il video è puramente decorativo
Overlay scuro sopra un'immagine ✅ Sì È un elemento grafico senza significato autonomo
Paragrafo con informazioni importanti ❌ No Nasconderebbe contenuto rilevante agli utenti AT
Link o bottone ❌ Mai Renderebbe il controllo inaccessibile da tastiera

aria-current

Indica l'elemento attualmente attivo in un insieme — la pagina corrente nel breadcrumb, la voce attiva nel menu, la slide visibile nel carosello. Il lettore di schermo annuncia "corrente" o "pagina corrente" sull'elemento marcato.

Quando lo trovi: nel breadcrumb (aria-current="page") e negli indicatori del carosello.

<!-- Breadcrumb: ultima voce è la pagina corrente --> <li aria-current="page">ISE — Integrated Skills in English</li> <!-- Paginazione: pagina attiva --> <li class="page-item active"> <a class="page-link" href="#" aria-current="page">3</a> </li>

aria-expanded

Comunica al lettore di schermo se un elemento a scomparsa (accordion, menu, dropdown) è aperto o chiuso. Il valore cambia automaticamente via JavaScript quando l'utente interagisce — non va modificato a mano nel template statico.

Cosa non fare: non rimuoverlo dai bottoni dell'accordion o dal toggle del menu hamburger.

<!-- Accordion chiuso --> <button class="accordion-button collapsed" aria-expanded="false"> Come iscriversi all'esame? </button> <!-- Accordion aperto (gestito da Bootstrap via JS) --> <button class="accordion-button" aria-expanded="true"> Come iscriversi all'esame? </button>

aria-live

Dice al lettore di schermo di annunciare automaticamente quando il contenuto di un elemento cambia, senza che l'utente ci debba navigare sopra. Usato per notifiche, messaggi di stato, aggiornamenti del carosello.

Quando lo trovi: nei messaggi di feedback dei form, nelle notifiche "Slide X di Y" dei caroselli, negli avvisi di errore.

Cosa non fare: non aggiungere aria-live a elementi che si aggiornano di continuo (es. un timer al millisecondo) — produrrebbe un flusso di annunci che distrae l'utente.

Valore Comportamento Quando usarlo
aria-live="polite" Annuncia l'aggiornamento al termine del discorso corrente Messaggi di stato, contatore slide, risultati di ricerca
aria-live="assertive" Interrompe il discorso corrente e annuncia subito Solo per errori critici o avvisi urgenti
<!-- Messaggio di stato (es. invio form riuscito) --> <div role="status" aria-live="polite"> Modulo inviato correttamente. </div> <!-- Avviso di errore urgente --> <div role="alert" aria-live="assertive"> Errore: il campo Email è obbligatorio. </div>

role

Comunica ai lettori di schermo il tipo di elemento quando l'HTML nativo non è sufficiente. Ad esempio, un <div> non ha un ruolo semantico — aggiungendo role="region" lo si trasforma in una regione navigabile.

Cosa non fare: non aggiungere role a elementi HTML nativi che hanno già un ruolo implicito (<button>, <nav>, <main>) — è ridondante e può creare conflitti.

Valore Significato Dove lo trovi nel sito
role="region" Regione significativa della pagina Carosello Swiper
role="group" Raggruppamento di elementi correlati Singola slide del carosello
role="status" Messaggio di stato non urgente Feedback form, contatore slide
role="alert" Avviso urgente Messaggi di errore form

Riepilogo rapido — cosa fare e non fare

Attributo ❌ Non fare ✅ Fare
aria-label Rimuoverlo o svuotarlo Mantenerlo; aggiornare il testo se cambia la funzione del bottone
aria-labelledby Cambiare l'id del titolo senza aggiornarlo Tenere sempre allineati id del titolo e aria-labelledby della sezione
aria-hidden Aggiungerlo su link, bottoni o testi informativi Usarlo solo su icone decorative, overlay e media di sfondo
aria-current Dimenticarlo sulla voce attiva del breadcrumb Applicarlo sempre all'elemento corrente in liste di navigazione
aria-expanded Rimuoverlo dai bottoni accordion e hamburger Lasciarlo: Bootstrap lo aggiorna automaticamente
aria-live Aggiungerlo su elementi che cambiano di continuo Usarlo solo per messaggi di stato e notifiche puntuali
role Aggiungerlo su tag HTML nativi già semantici Lasciarlo dove già presente; non modificarlo

Restiamo in contatto

Ricevi gratuitamente aggiornamenti su formazione, risorse didattiche e idee per le tue lezioni!

Iscriviti alla Newsletter

Incontra il team di supporto o richiedi una consulenza personalizzata con un nostro esperto.

Richiedi supporto
g Back to top