New
Introducing React Bench, see how different models perform on React code

jsx-a11y/no-autofocus

Disallow the autoFocus prop — stolen focus disorients screen-reader and keyboard users.

Validate the diagnostic

Confirm the reported code matches this rule before you edit it.

Fires on any JSX element with the autoFocus prop set to anything other than false (so autoFocus, autoFocus={true}, and autoFocus={undefined} all trigger). By default both DOM elements and custom components are checked; ignoreNonDOM: true skips PascalCase components. False positive: a modal/dialog where focus must move to a specific element on open as part of intentional focus management.

How to fix

Follow the rule guidance while preserving unrelated behavior.

Copyable fix prompt

Copy this self-contained prompt into your coding agent after you confirm the diagnostic.

Remove the autoFocus prop. If focus must move on mount (e.g. when a dialog opens), use a ref + useEffect to call .focus() imperatively only in that scenario, or rely on a focus-trap library that respects user context. Auto-focus on page load disorients screen reader users and steals focus before they finish reading prior content. See https://oxc.rs/docs/guide/usage/linter/rules/jsx_a11y/no-autofocus

More Accessibility rules from the rules reference: