autofoco e activeElement

Nota para self – Browser Quirks, parte 1

Uma maneira fácil e cruzada de navegadores de verificar se um elemento está focado é elem === document.activeElement.

No iOS Safari, o autofocusatributo HTML não faz nada com a IU como faz nos navegadores de desktop. No entanto, ele ainda define a document.activeElementpropriedade para o suposto elemento autofocalizado.

Então, o que fazemos em vez disso? Existem duas maneiras.

elem.[moz|ms|o|webkit]MatchesSelector(':focus')

e

document.querySelector(':focus') === elem

Este último tem o melhor suporte para navegador e não requer prefixos.