0Pricing
Web Accessibility Academy · Lezione

Fragment, Portal e il problema dell'ordine nel DOM

Fare corrispondere l'ordine renderizzato a quello dell'albero dell'accessibilità

Fragment, Portal e il problema dell'ordine nel DOM è una lezione Web Accessibility Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Web Accessibility Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Web Accessibility Academy include 4 lezioni in totale.

L'ordine del sorgente è l'ordine predefinito

Gli screen reader e la tastiera seguono l'ordine del DOM, ovvero l'ordine in cui gli elementi compaiono nel documento. Il CSS può spostare gli elementi visivamente, ma non cambia l'ordine di lettura.

I Fragment non aggiungono contenitori

Un Fragment di React raggruppa gli elementi figli senza aggiungere un div contenitore. In questo modo il DOM resta pulito e si evita di danneggiare liste o tabelle con elementi estranei.

<>
  <th>Name</th>
  <th>Email</th>
</>

Perché un div contenitore può creare problemi

Un div aggiuntivo all'interno di una lista o di una tabella può compromettere la struttura padre-figlio prevista dalle tecnologie assistive. Un Fragment evita completamente questo annidamento non valido.

I Portal eseguono il rendering altrove

Un Portal esegue il rendering degli elementi figli in un nodo DOM diverso, spesso nel body del documento. È il modo standard per montare le finestre modali sopra ogni altro elemento.

createPortal(<Modal />, document.body);

I Portal mantengono il contesto React

Anche se il markup viene inserito altrove, un portal resta nell'albero dei componenti. Lo State e il context continuano a fluire normalmente, quindi la logica non cambia.

La trappola dell'ordine del DOM

Un portal alla fine del body può trovarsi dopo contenuti non correlati. La tabulazione potrebbe saltare in un punto molto lontano, quindi la gestione del focus diventa essenziale per i portal.

Spostare il focus nel Portal

Quando si apre un portal, la tastiera non lo segue automaticamente. Sposti esplicitamente il focus nella finestra modale, così l'utente si trova nel nuovo contenuto.

Intrappolare e restituire il focus

Quando una finestra modale in un portal è aperta, mantenga il tasto Tab al suo interno. Alla chiusura, restituisca il focus all'elemento che l'ha aperta, perché la vicinanza nel DOM non lo farà automaticamente.

Ordine visivo e ordine di lettura

L'ordine di flexbox o il posizionamento nella griglia CSS possono riorganizzare ciò che appare sullo schermo. L'ordine di tabulazione segue comunque il sorgente, quindi eviti di riordinare i contenuti interattivi con il CSS.

Mantenga significativo l'ordine del sorgente

Scriva il JSX in modo che l'ordine del sorgente corrisponda al flusso logico di lettura. In questo modo sia gli utenti vedenti sia quelli che usano uno screen reader incontrano i contenuti nella stessa sequenza sensata.

Esegua i test usando Tab

Prema Tab per spostarsi nell'app e osservi dove va il focus. Se salta in un punto imprevisto, è necessario intervenire sull'ordine del DOM o su un portal.

Controllo rapido

Monta una finestra modale con un portal in document.body. Quale nuova responsabilità comporta?

Riepilogo: ordine e Portal

Usi i Fragment per evitare contenitori non validi, mantenga logico l'ordine del sorgente e gestisca con attenzione il focus ogni volta che un portal esegue il rendering di contenuti altrove. 🧩

Domande Frequenti

La lezione «Fragment, Portal e il problema dell'ordine nel DOM» è gratuita?

Sì — il testo completo di «Fragment, Portal e il problema dell'ordine nel DOM» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Web Accessibility Academy, passa a CoddyKit PRO. Il corso Web Accessibility Academy include 4 lezioni in totale.

Cosa imparerò in «Fragment, Portal e il problema dell'ordine nel DOM»?

Fare corrispondere l'ordine renderizzato a quello dell'albero dell'accessibilità Eserciti Web Accessibility Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Web Accessibility Academy?

Non è richiesta alcuna esperienza precedente. Web Accessibility Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Fragment, Portal e il problema dell'ordine nel DOM»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Web Accessibility Academy?

Sì. Ogni lezione Web Accessibility Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Gestire i cambi di route senza ricaricare la pagina
  2. Gestire il focus con refs e useEffect
  3. Fragment, Portal e il problema dell'ordine nel DOM
  4. jsx-a11y e protezioni a livello di componente
← Torna a Web Accessibility Academy