Фрагменты, порталы и ловушка порядка DOM
Сохраняйте соответствие порядка отображения и порядка в дереве доступности.
«Фрагменты, порталы и ловушка порядка DOM» — бесплатный урок Web Accessibility Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Web Accessibility Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Web Accessibility Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Source Order Is the Default Order
Screen readers and the keyboard follow the DOM order, the order elements appear in the document. CSS may move things visually, but reading order does not change.
Fragments Add No Extra Box
A React Fragment groups children without adding a wrapper div. That keeps your DOM clean and avoids breaking lists or tables with stray elements.
<>
<th>Name</th>
<th>Email</th>
</>Why a Wrapper div Can Hurt
An extra div inside a list or table can break the parent-child structure assistive tech expects. A Fragment avoids that invalid nesting entirely.
Portals Render Elsewhere
A Portal renders children into a different DOM node, often the document body. It is the standard way to mount modals above everything else.
createPortal(<Modal />, document.body);Portals Keep React Context
Even though the markup lands elsewhere, a portal stays in your component tree. State and context flow normally, so logic is unaffected.
The DOM Order Trap
A portal at the end of body can appear after unrelated content. Tabbing may jump to a far-off spot, so focus management becomes essential for portals.
Move Focus Into the Portal
When a portal opens, the keyboard does not follow automatically. Explicitly move focus into the modal so the user is where the new content is.
Trap and Return Focus
While a portal modal is open, keep Tab inside it. On close, return focus to the element that opened it, since DOM proximity will not do this for you.
Visual Order Versus Reading Order
CSS flexbox order or grid placement can rearrange the screen. The tab order still follows the source, so avoid reordering interactive content with CSS.
Keep Source Order Meaningful
Write your JSX so the source order matches the logical reading flow. Then both sighted and screen reader users encounter content in the same sensible sequence.
Test by Tabbing
Press Tab through your app and watch where focus goes. If it jumps somewhere unexpected, your DOM order or a portal needs attention.
Quick Check
You mount a modal with a portal into document.body. What new responsibility does that create?
Recap: Order and Portals
Use Fragments to avoid invalid wrappers, keep source order logical, and manage focus carefully whenever a portal renders content elsewhere. 🧩
Часто задаваемые вопросы
Урок «Фрагменты, порталы и ловушка порядка DOM» бесплатный?
Да — полный текст урока «Фрагменты, порталы и ловушка порядка DOM» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Web Accessibility Academy, подпишись на CoddyKit PRO. Курс Web Accessibility Academy содержит 4 уроков всего.
Чему я научусь в уроке «Фрагменты, порталы и ловушка порядка DOM»?
Сохраняйте соответствие порядка отображения и порядка в дереве доступности. Ты практикуешь Web Accessibility Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Web Accessibility Academy?
Предыдущий опыт не требуется. Web Accessibility Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Фрагменты, порталы и ловушка порядка DOM»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Web Accessibility Academy?
Да. Каждый урок Web Accessibility Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Изменение маршрутов без перезагрузки страницы
- Управление фокусом с помощью ссылок на элементы и useEffect
- Фрагменты, порталы и ловушка порядка DOM
- jsx-a11y и защитные правила на уровне компонентов