Sí, esto es posible. Para hacerlo, debe asignar un índice de tabla ...
<div tabindex="0">Hello World</div>
Un índice de tabulación de 0 colocará la etiqueta "en el orden de tabulación natural de la página". Un número más alto le dará un orden específico de prioridad, donde 1 será el primero, 2 segundos y así sucesivamente.
También puede dar un índice tabin de -1, lo que hará que el div solo se pueda enfocar por script, no por el usuario.
document.getElementById('test').onclick = function () {
document.getElementById('scripted').focus();
};
div:focus {
background-color: Aqua;
}
<div>Element X (not focusable)</div>
<div tabindex="0">Element Y (user or script focusable)</div>
<div tabindex="-1" id="scripted">Element Z (script-only focusable)</div>
<div id="test">Set Focus To Element Z</div>
Obviamente, es una pena tener un elemento que pueda enfocar mediante un script que no pueda enfocar mediante otro método de entrada (especialmente si un usuario tiene un teclado solo o tiene una restricción similar). También hay un montón de elementos estándar que se pueden enfocar de manera predeterminada y tienen información semántica incorporada para ayudar a los usuarios. Usa este conocimiento sabiamente.