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 autofocus
atributo HTML não faz nada com a IU como faz nos navegadores de desktop. No entanto, ele ainda define a document.activeElement
propriedade 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.