будьте осторожны с любым методом, опирающимся только на события javascript, так как он не будет корректно обрабатывать программы чтения с экрана
Тем не менее, это не может быть достигнуто без JavaScript, как уже указано в нескольких вопросах, таких как
Как сохранить фокус в модальном диалоге?
У вас есть три шага:
1. отключить взаимодействие программы чтения с экрана с любыми другими узлами, установив на них aria-hidden=true
Например:
<main aria-hidden="true"><!-- main content here--></main>
<dialog>Your dialog here</dialog>
2. отключить любое клавиатурное взаимодействие с ними
Это должно быть сделано в Javascript / или jQuery.
Это однострочная инструкция в jQuery, использующая jquery-ui
$("main :focusable").addClass("disabled").attr("tabindex", -1);
Обратное может быть достигнуто с помощью:
$(".disabled").removeClass("disabled").attr("tabindex", 0);
3. удалить любое указательное событие для этих элементов, чтобы отключить взаимодействие с мышью
образец css:
main[aria-hidden='true'] { pointer-events: none;}