Note
This can be a useful tool for debugging tabbing order or focus traps in order to debug and design those UX.
let lastActiveElement = document.activeElement
setInterval(() => {
if (document.activeElement !== lastActiveElement) {
console.group("Element Focus Change")
console.log("from:", lastActiveElement)
console.log(" to:", document.activeElement)
console.groupEnd()
lastActiveElement = document.activeElement
}
}, 500)
let lastActiveElement = document.activeElement
document.addEventListener("focusin", (e) => {
if (document.activeElement !== lastActiveElement) {
console.group("Element Focus Change")
console.log("from:", lastActiveElement)
console.log(" to:", document.activeElement)
console.groupEnd()
lastActiveElement = document.activeElement
}
})// This will log every focus change immediately
document.addEventListener("focusin", (e) => console.log("Focus IN:", e.target))
document.addEventListener("focusout", (e) => console.log("Focus OUT:", e.target))