mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 04:08:41 +00:00
feat(linter): eslint-plugin-jsx-a11y role-support-aria-props (#1949)
## Summary partof: #1141 I re-implemented role-support-aria-props rule for jsx_a11y. originals: - docs: https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/role-supports-aria-props.md - code: https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/src/rules/role-supports-aria-props.js - test: https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/__tests__/src/rules/role-supports-aria-props-test.js
This commit is contained in:
parent
0bcc9e7e6b
commit
fd5856e5d1
3 changed files with 1859 additions and 0 deletions
|
|
@ -254,6 +254,7 @@ mod jsx_a11y {
|
|||
pub mod no_autofocus;
|
||||
pub mod no_distracting_elements;
|
||||
pub mod prefer_tag_over_role;
|
||||
pub mod role_support_aria_props;
|
||||
pub mod scope;
|
||||
pub mod tab_index_no_positive;
|
||||
}
|
||||
|
|
@ -512,6 +513,7 @@ oxc_macros::declare_all_lint_rules! {
|
|||
jsx_a11y::tab_index_no_positive,
|
||||
jsx_a11y::aria_role,
|
||||
jsx_a11y::no_distracting_elements,
|
||||
jsx_a11y::role_support_aria_props,
|
||||
oxc::approx_constant,
|
||||
oxc::const_comparisons,
|
||||
oxc::double_comparisons,
|
||||
|
|
|
|||
1600
crates/oxc_linter/src/rules/jsx_a11y/role_support_aria_props.rs
Normal file
1600
crates/oxc_linter/src/rules/jsx_a11y/role_support_aria_props.rs
Normal file
File diff suppressed because it is too large
Load diff
257
crates/oxc_linter/src/snapshots/role_support_aria_props.snap
Normal file
257
crates/oxc_linter/src/snapshots/role_support_aria_props.snap
Normal file
|
|
@ -0,0 +1,257 @@
|
|||
---
|
||||
source: crates/oxc_linter/src/tester.rs
|
||||
expression: role_support_aria_props
|
||||
---
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-checked is not supported by the role link. This role is implicit on the element a.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <a href="/" aria-checked />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-checked.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-checked is not supported by the role link. This role is implicit on the element area.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <area href="/" aria-checked />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-checked.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-checked is not supported by the role link. This role is implicit on the element link.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <link href="/" aria-checked />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-checked.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-checked is not supported by the role img. This role is implicit on the element img.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <img alt="foobar" aria-checked />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-checked.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-checked is not supported by the role toolbar. This role is implicit on the element menu.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <menu type="toolbar" aria-checked />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-checked.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-checked is not supported by the role complementary. This role is implicit on the element aside.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <aside aria-checked />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-checked.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role list. This role is implicit on the element ul.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <ul aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role group. This role is implicit on the element details.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <details aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role dialog. This role is implicit on the element dialog.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <dialog aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role complementary. This role is implicit on the element aside.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <aside aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role article. This role is implicit on the element article.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <article aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role document. This role is implicit on the element body.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <body aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role listitem. This role is implicit on the element li.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <li aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role navigation. This role is implicit on the element nav.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <nav aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role list. This role is implicit on the element ol.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <ol aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role status. This role is implicit on the element output.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <output aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role region. This role is implicit on the element section.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <section aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role rowgroup. This role is implicit on the element tbody.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <tbody aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role rowgroup. This role is implicit on the element tfoot.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <tfoot aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role rowgroup. This role is implicit on the element thead.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <thead aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-invalid is not supported by the role radio. This role is implicit on the element input.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <input type="radio" aria-invalid />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-invalid.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-selected is not supported by the role radio. This role is implicit on the element input.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <input type="radio" aria-selected />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-selected.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-haspopup is not supported by the role radio. This role is implicit on the element input.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <input type="radio" aria-haspopup />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-haspopup.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-haspopup is not supported by the role checkbox. This role is implicit on the element input.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <input type="checkbox" aria-haspopup />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-haspopup.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-invalid is not supported by the role button. This role is implicit on the element input.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <input type="reset" aria-invalid />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-invalid.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-invalid is not supported by the role button. This role is implicit on the element input.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <input type="image" aria-invalid />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-invalid.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-invalid is not supported by the role button. This role is implicit on the element input.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <input type="button" aria-invalid />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-invalid.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-invalid is not supported by the role menuitem. This role is implicit on the element menuitem.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <menuitem type="command" aria-invalid />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-invalid.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-selected is not supported by the role menuitemradio. This role is implicit on the element menuitem.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <menuitem type="radio" aria-selected />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-selected.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-haspopup is not supported by the role toolbar. This role is implicit on the element menu.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <menu type="toolbar" aria-haspopup />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-haspopup.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-invalid is not supported by the role toolbar. This role is implicit on the element menu.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <menu type="toolbar" aria-invalid />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-invalid.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-expanded is not supported by the role toolbar. This role is implicit on the element menu.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <menu type="toolbar" aria-expanded />
|
||||
· ─────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-expanded.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-invalid is not supported by the role link. This role is implicit on the element link.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <link href="/" aria-invalid />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-invalid.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-invalid is not supported by the role link. This role is implicit on the element area.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <area href="/" aria-invalid />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-invalid.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-invalid is not supported by the role link. This role is implicit on the element a.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <a href="/" aria-invalid />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-invalid.
|
||||
|
||||
⚠ eslint-plugin-jsx-a11y(role-support-aria-props): The attribute aria-checked is not supported by the role link. This role is implicit on the element a.
|
||||
╭─[role_support_aria_props.tsx:1:1]
|
||||
1 │ <Link href="/" aria-checked />
|
||||
· ────────────
|
||||
╰────
|
||||
help: Try to remove invalid attribute aria-checked.
|
||||
|
||||
|
||||
Loading…
Reference in a new issue