Ответ 1
Атрибут
tabindex
явно определяет порядок навигации для настраиваемых элементов (обычно ссылок и элементов управления формами) внутри страницы. Его также можно использовать для определения того, должны ли элементы фокусироваться или нет.[Both]
tabindex="0"
иtabindex="-1"
имеют особое значение и обеспечивают четкую функциональность в HTML. Значение0
указывает, что элемент должен быть помещен в навигационный порядок по умолчанию. Это позволяет элементам, которые не являются наводчивыми (например,<div>
,<span>
и<p>
) для получения фокуса клавиатуры. Конечно, обычно нужно использовать ссылки и элементы управления форматом для всех интерактивных элементов, но это позволяет другим элементам фокусироваться и запускать взаимодействие.A
tabindex="-1"
Значение удаляет элемент из потока навигации по умолчанию (т.е. пользователь не может в него вставлять), но позволяет ему получать программный фокус смысл фокуса может быть установлен для него из ссылки или с помощью скриптов. ** Это может быть очень полезно для элементов, которые не должны быть привязаны к вкладке, но для этого может потребоваться установить фокус на них.. p >Хорошим примером является модальное диалоговое окно - при открытии фокус должен быть установлен в диалоговом окне, чтобы экранное устройство начинало чтение, и клавиатура начиналась навигации в диалоговом окне. Поскольку диалог (возможно, только элемент
<div>
) по умолчанию не настраивается, назначение егоtabindex="-1"
позволяет настроить фокус на него с помощью скриптов при его представлении.Значение
-1
также может быть полезно в сложных виджетах и меню, в которых используются клавиши со стрелками или другие сочетания клавиш, чтобы гарантировать, что только один элемент внутри виджета можно перемещать с помощью клавиши табуляции, но по-прежнему позволяют настроить фокус на других компонентах виджета.
Источник: http://webaim.org/techniques/keyboard/tabindex
Вот почему вам нужно tabindex="-1"
в модальном <div>
, чтобы пользователи могли получать доступ к общим ярлыкам мыши и клавиатуры. Надеюсь, что это поможет.