мы закрываем его и восстанавливаем фокус на элементе, который имел фокус до его открытия
Это можно считать ловушкой табуляции, 2.1.2 Нет ловушки клавиатуры .Разве элемент, который имел фокус перед всплывающим окном #the-data
?Так что если я вкладка с before-the-data
до #the-data
, всплывающее окно откроется.Если я нажму esc , чтобы закрыть всплывающее окно (вы не упомянули, что esc закроет всплывающее окно, но оно должно ), фокус вернется к #the-data
, который автоматически снова откроет всплывающее окно, не так ли?(Потому что onfocus () снова запустился.)
Если я просто tab на протяжении всего процесса, я думаю, что это сработает.Это просто удаление всплывающего окна, которое вызывает проблему.Пролистывая все подряд, можно переместить фокус с before-the-data
на #the-data
на элементы во всплывающем окне на after-the-data
, а затем на остальную часть страницы, верно?
При перемещении назад, с after-the-data
на#the-data
, перемещен ли фокус на элемент последний во всплывающем окне?Поскольку я вкладываю назад, он должен быть на последнем элементе, чтобы я мог продолжать вкладывать назад через всплывающее окно и затем к before-the-data
.
Поповер должен вести себя так, как если бы он был внутри# данные для целей навигации, но фактическая позиция будет в конце для целей представления.
Если всплывающее окно находится в DOM в конце, это не позволит естественномупорядок вкладок.Вы, конечно, можете поместить его туда, но тогда вам придется управлять порядком вкладок.Было бы намного проще, если бы всплывающее окно было действительно частью #the-data
.Затем браузер обрабатывает порядок табуляции естественным образом.
Вы также должны быть осторожны с автоматическим открытием всплывающего окна, но это может нарушать 3.2.1 В фокусе ,См. « Пример сбоя: диалоговое окно справки ».Это вроде описывает то, что вы делаете, но немного отличается.В примере сбоя фокус перемещается в поле ввода, и автоматически открывается всплывающее окно, а фокус перемещается от ввода к всплывающему окну.Ваш случай немного отличается, потому что вы сначала перемещаете фокус со входа (или before-the-data
), а затем всплывающее окно, которое не нарушает 3.2.1.Я просто хотел указать на это в случае, если вы измените свою модель взаимодействия.
Итак, в целом, ваше текущее поведение похоже на пропускную ссылку .Пропускаемые ссылки часто реализуются как «скрытые» ссылки, которые становятся видимыми только тогда, когда вы вкладываете к ним и позволяете перейти к определенному месту на странице.Факт, что они становятся видимыми при фокусировке, - это то, как работает ваше всплывающее окно (поскольку оно также становится видимым, когда получает фокус).Разница в том, что пропущенные ссылки не закрываются, если вы нажмете esc .Они do отклоняются, если вы нажимаете вне их.Я думаю, что это поведение, которое вы пытаетесь имитировать.Если вы ранее проигнорировали мой комментарий о том, что esc должен закрыть ваше всплывающее окно, то все будет в порядке.У меня был только этот комментарий, потому что он звучал так, будто ваше всплывающее окно было похоже на модальный диалог.