Ciao @awesomerobot, sono un collega di Cody e un ingegnere dell’accessibilità. Ho dato un’occhiata al repository per diagnosticare il problema. Come forse già saprai, il problema principale sembra essere che (1) il contenuto nei post mascherati non è visibile dagli screen reader e (2) i post vengono scoperti solo quando si trovano nella visualizzazione dell’utente per PostStreamViewportTracker
Pensando a una potenziale soluzione, voglio ottimizzare due aspetti: (1) abilitare la navigazione di ciascun post tramite intestazione con gli screen reader e (2) ridurre al minimo le modifiche al repository Discourse e l’impatto sulle prestazioni.
L’approccio che raccomando è quello di mantenere un wrapper leggero per ciascun post caricato che includa l’H2 semantico utilizzato per la navigazione tramite intestazione, mentre il corpo pesante del post rimane mascherato. Questo mantiene le intestazioni stabili per la tecnologia assistiva senza gonfiare il DOM sull’intera pagina. Quando un utente atterra su un H2 di un post tramite la navigazione tramite intestazione, lo screen reader attiverà uno scorrimento della pagina che a sua volta scoprirà il corpo del post in loco.
La fattibilità di questa soluzione dipende da quando viene caricato il prossimo blocco di post. Un miglioramento opzionale è un’intestazione sentinella solo per screen reader “carica altri post” (simile alla “regione di caricamento” proposta nel tuo PR) situata in fondo all’elenco dei post caricati. Quando questa intestazione entra in visualizzazione o viene selezionata dal rotore delle intestazioni, carica il blocco successivo e annuncia il completamento tramite un messaggio aria-live=polite.