A SVG informativo senza alternative testuali. div > ul.space-y-8 > li.items-start.gap-6 > div.text-accent-lime.transition-premium > svg.mt-0\.5.shrink-0 A Icona font senza aria-label, title o aria-hidden div.mx-auto.w-full > nav.items-center.gap-8 > div.group.relative > a.items-center.gap-1\.5 > svg.transition-transform.duration-200
A Il testo "The Opportunity..." usa CSS font-weight: bold ma non ha marcatura semantica <strong> o <b>. Gli screen reader non percepiranno l'enfasi. div.space-y-12 > span.inline-block A Il testo "Education..." usa CSS font-weight: bold ma non ha marcatura semantica <strong> o <b>. Gli screen reader non percepiranno l'enfasi. #observe > div.mx-auto.w-full > div.items-center.gap-16 > div > span.inline-block.text-base A Il testo "Research..." usa CSS font-weight: bold ma non ha marcatura semantica <strong> o <b>. Gli screen reader non percepiranno l'enfasi. div.order-1 > span.inline-block A Salto da H2 a H4. Gli heading dovrebbero seguire una gerarchia logica senza saltare livelli. footer.bg-surface-dark.mt-auto > div.mx-auto.w-full > div.gap-12.border-b > div > h4.text-base.font-bold
A Elemento usa CSS order: 1. Verifica che l'ordine visuale corrisponda all'ordine logico div.order-2.relative.group A Elemento usa CSS order: 2. Verifica che l'ordine visuale corrisponda all'ordine logico div.order-1.lg\:order-2
AA L'applicazione chiama screen.orientation.lock() nel codice JavaScript. Metodi rilevati: screen.orientation.lock, screen.orientation.unlock body AA Trovato requestFullscreen con orientation="landscape-primary". La combinazione forza uno specifico orientamento durante il fullscreen. A meno che il contenuto richieda necessariamente quell'orientamento (es. video, game), rimuovi l'opzione orientation. main.min-h-screen
A Elemento con sfondo blu (informazione) senza indicatori alternativi div.lg\:block > a.relative.inline-flex > span.relative A Elemento con sfondo blu (informazione) senza indicatori alternativi div.space-y-12 > span.inline-block A Elemento con sfondo blu (informazione) senza indicatori alternativi div.order-1 > span.inline-block A Stato disabilitato comunicato SOLO tramite colore/opacità div.lg\:block > a.relative A Stato disabilitato comunicato SOLO tramite colore/opacità div.flex-wrap > a.relative
AA Contrasto insufficiente per testo normale: 1.93:1 (richiesto 4.5:1). Mancano 2.57:1 per la conformità WCAG AA. div.mx-auto.w-full > div.gap-10.sm\:grid-cols-3 > div.group.relative > div.mx-auto.items-center > span.text-lg.font-black
AA Il testo viene troncato o nascosto con zoom elevato #observe > div.mx-auto.w-full > div.items-center.gap-16 > div.relative.group > div.relative.aspect-\[4\/3\] AA Il testo viene troncato o nascosto con zoom elevato div.order-2 > div.relative
AA L'indicatore di focus ha contrasto 2.17:1 rispetto allo sfondo adiacente (richiesto 3:1) a.relative.shrink-0.items-center AA L'indicatore di focus ha contrasto 2.17:1 rispetto allo sfondo adiacente (richiesto 3:1) a.inline-block AA L'indicatore di focus ha contrasto 2.15:1 rispetto allo sfondo adiacente (richiesto 3:1) footer.bg-surface-dark.mt-auto > div.mx-auto.w-full > div.flex-col.items-center > div.gap-6 > a.text-\[11px\].text-white\/30:nth-child(1)
A La pagina ha 37 link di navigazione ma non fornisce skip links per saltare direttamente al contenuto principale (WCAG 2.4.1 - Bypass Blocks). nav.items-center.gap-8.lg\:flex A Landmark multipli dello stesso tipo richiedono aria-label o aria-labelledby per distinguerli body.montserrat_3af8a768-module__EsQjMq__variable.font-sans > main.min-h-screen > section.relative.w-full:nth-child(6)
A Titolo usa separatori diversi (-, —). Usa un formato coerente. title
A Ordine del focus potenzialmente incoerente: Il percorso Tab sembra saltare rispetto all’ordine visuale atteso. header.sticky.top-0 > div.mx-auto.w-full > nav.items-center.gap-8 > div.group.relative > a.items-center.gap-1\.5
A Link text analysis: a.relative.shrink-0.items-center A Link text analysis: header.sticky.top-0 > div.mx-auto.w-full > nav.items-center.gap-8 > div.group.relative > a.items-center.gap-1\.5 A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(1) A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(2) A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(3) A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(4) A Link text analysis: header.sticky.top-0 > div.mx-auto.w-full > nav.items-center.gap-8 > div.group.relative > a.items-center.gap-1\.5 A Link text analysis: header.sticky.top-0 > div.mx-auto.w-full > nav.items-center.gap-8 > div.group.relative > a.items-center.gap-1\.5 A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(1) A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(2) A Link text analysis: header.sticky.top-0 > div.mx-auto.w-full > nav.items-center.gap-8 > div.group.relative > a.items-center.gap-1\.5 A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(1) A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(2) A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(3) A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(4) A Link text analysis: header.sticky.top-0 > div.mx-auto.w-full > nav.items-center.gap-8 > div.group.relative > a.items-center.gap-1\.5 A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(1) A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(2) A Link text analysis: nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(3) A Link text analysis: div.lg\:block > a.relative A Link text analysis: a.inline-block A Link text analysis: footer.bg-surface-dark.mt-auto > div.mx-auto.w-full > div.flex-col.items-center > div.gap-6 > a.text-\[11px\].text-white\/30:nth-child(1) A Link text analysis: footer.bg-surface-dark.mt-auto > div.mx-auto.w-full > div.flex-col.items-center > div.gap-6 > a.text-\[11px\].text-white\/30:nth-child(2)
AA Trovato solo 1 metodo di navigazione. WCAG 2.4.5 richiede molteplici modi per localizzare le pagine. body
AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(1) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(2) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(3) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(4) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(1) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(2) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(1) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(2) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(3) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(4) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(1) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(2) AA Elemento completamente oscurato da contenuto sovrapposto (100% dei punti campionati) nav.items-center.gap-8 > div.group.relative > div.pointer-events-none.absolute > div.min-w-\[240px\].rounded-lg > a.text-\[13px\].font-medium:nth-child(3)
A Rilevate funzionalità motion (device-motion-listeners) senza possibilità di disattivazione body
AAA Link di 136.828125x40px non raggiunge la dimensione minima di 44x44px a.inline-block AAA Link di 157.546875x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 91.734375x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 65.8125x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 127.1875x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 42.171875x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 67.4375x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 48.25x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 54.3125x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 38.03125x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 61.34375x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 108.625x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 110.859375x20px non raggiunge la dimensione minima di 44x44px div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AAA Link di 63.5x17.59375px non raggiunge la dimensione minima di 44x44px footer.bg-surface-dark.mt-auto > div.mx-auto.w-full > div.flex-col.items-center > div.gap-6 > a.text-\[11px\].text-white\/30:nth-child(1) AAA Link di 29.671875x17.59375px non raggiunge la dimensione minima di 44x44px footer.bg-surface-dark.mt-auto > div.mx-auto.w-full > div.flex-col.items-center > div.gap-6 > a.text-\[11px\].text-white\/30:nth-child(2)
AA Rilevato possibile cambio di lingua nel testo senza attributo lang p.text-primary-dark\/80.font-bold AA Rilevato possibile cambio di lingua nel testo senza attributo lang div.items-center.gap-16 > div.order-1.lg\:order-2 > ul.space-y-8 > li.items-start.gap-6 > span.text-base.text-slate-500
A Testo con leggibilità molto bassa (Flesch-Kincaid: 1.2/100). Media 2.1 sillabe/parola, 28.5 parole/frase. Questo testo richiede un livello di istruzione universitario avanzato per essere compreso. main.min-h-screen
AA Questo link punta a "https://alpha-e.algoretico.it/staging/course-materials" ma è identificato come "overview" mentre altri link alla stessa destinazione usano "course materials". Due link con stessa funzione devono avere lo stesso nome accessibile. div.gap-12.border-b > div > ul.space-y-3 > li > a.text-base.font-medium AA Questo link punta a "https://alpha-e.algoretico.it/staging/contact" ma è identificato come "get in touch" mentre altri link alla stessa destinazione usano "contact". Due link con stessa funzione devono avere lo stesso nome accessibile. div.flex-wrap > a.relative