add comments

pull/4943/head
Divyansh Singh 7 days ago
parent 38e94ac58a
commit afb5c0c001

@ -287,8 +287,12 @@ export function scrollTo(hash: string, smooth = false, scrollPosition = 0) {
// focus the target element for better accessibility
target.focus({ preventScroll: true })
// return if focus worked
if (document.activeElement === target) return
// element has tabindex already, likely not focusable
// because of some other reason, bail out
if (target.hasAttribute('tabindex')) return
const restoreTabindex = () => {
@ -296,10 +300,14 @@ export function scrollTo(hash: string, smooth = false, scrollPosition = 0) {
target.removeEventListener('blur', restoreTabindex)
}
// temporarily make the target element focusable
target.setAttribute('tabindex', '-1')
target.addEventListener('blur', restoreTabindex)
// try to focus again
target.focus({ preventScroll: true })
// remove tabindex and event listener if focus still not worked
if (document.activeElement !== target) restoreTabindex()
}

Loading…
Cancel
Save