What version of Oxlint are you using?
latest
What command did you run?
No response
What does your .oxlintrc.json (or oxlint.config.ts) config file look like?
No response
What happened?
In #17817, some helper methods such as is_interactive_role are introduced but INTERACTIVE_ROLES and NON_INTERACTIVE_ROLES are partially wrong.
eslint-plugin-jsx-a11y calculates them using roles (from aria-query) and role.superClass.some((classes) => includes(classes, 'widget')).
https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/8f75961d965e47afb88854d324bd32fafde7acfe/src/util/isNonInteractiveElement.js#L42-L59
For example, super classes of grid role are calculated as:
[
[ 'roletype', 'widget', 'composite' ],
[ 'roletype', 'structure', 'section', 'table' ]
]
grid has widget role as its ancestor abstract class role, so grid is interactive role.
But INTERACTIVE_ROLES doesn't include it and NON_INTERACTIVE_ROLES does.
This can be applicable to other roles such as tablist role.
We should consider ancestor abstract class roles.
What version of Oxlint are you using?
latest
What command did you run?
No response
What does your
.oxlintrc.json(oroxlint.config.ts) config file look like?No response
What happened?
In #17817, some helper methods such as
is_interactive_roleare introduced butINTERACTIVE_ROLESandNON_INTERACTIVE_ROLESare partially wrong.eslint-plugin-jsx-a11ycalculates them usingroles(fromaria-query) androle.superClass.some((classes) => includes(classes, 'widget')).https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/8f75961d965e47afb88854d324bd32fafde7acfe/src/util/isNonInteractiveElement.js#L42-L59
For example, super classes of
gridrole are calculated as:gridhaswidgetrole as its ancestor abstract class role, sogridis interactive role.But
INTERACTIVE_ROLESdoesn't include it andNON_INTERACTIVE_ROLESdoes.This can be applicable to other roles such as
tablistrole.We should consider ancestor abstract class roles.