Disallow usage of Element.prototype.blur() (github/no-blur)

February 8, 2023 ยท View on GitHub

๐Ÿ’ผ This rule is enabled in the ๐Ÿ” browser config.

Do not use element.blur(). Blurring an element causes the focus position to be reset causing accessibility issues when using keyboard or voice navigation. Instead, restore focus by calling element.focus() on a prior element.

Rule Details

๐Ÿ‘Ž Examples of incorrect code for this rule:

menu.addEventListener('close', () => {
  input.blur()
})

๐Ÿ‘ Examples of correct code for this rule:

menu.addEventListener('open', () => {
  const previouslyFocusedElement = document.activeElement

  input.focus()

  menu.addEventListener('close', () => {
    previouslyFocusedElement.focus()
  })
})

Version

4.3.2