В чём суть
Focus trap — поведение, при котором фокус клавиатуры не покидает определённый контейнер (обычно модалку/диалог), пока он открыт.
Зачем
Чтобы пользователь Tab’ом не «уехал» на затемнённый фон и не потерял контекст. При закрытии фокус обычно возвращают на элемент-открыватель.
<dialog id="dlg" open>
<h2 id="t">Подтверждение</h2>
<button type="button">Отмена</button>
<button type="button">OK</button>
</dialog>
Нативный <dialog> / showModal() даёт модальное поведение; в кастомных оверлеях trap реализуют сами (Tab cycle + Esc + return focus).
Осторожно
Вечный trap без выхода (нет Esc/кнопки закрытия) — антипаттерн и барьер доступности.