Sim - isso é possível. Para fazer isso, você precisa atribuir um índice de tabulação ...
<div tabindex="0">Hello World</div>
Um índice de tabulação 0 colocará a tag "na ordem de tabulação natural da página". Um número maior dará a ele uma ordem específica de prioridade, onde 1 será o primeiro, 2 segundos e assim por diante.
Você também pode fornecer um índice de tabulação -1, que tornará a div apenas focável por script, não pelo usuário.
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, é uma pena ter um elemento que você possa focar por script que não possa ser focado por outro método de entrada (especialmente se um usuário tiver apenas o teclado ou restrições semelhantes). Também há vários elementos padrão que são focáveis por padrão e possuem informações semânticas incorporadas para ajudar os usuários. Use esse conhecimento com sabedoria.