useSemanticElements
Diagnostic Category: lint/a11y/useSemanticElements
Since: v1.8.0
Sources:
- Same as:
jsx-a11y/prefer-tag-over-role
It detects the use of role
attributes in JSX elements and suggests using semantic elements instead.
The role
attribute is used to define the purpose of an element, but it should be used as a last resort.
Using semantic elements like <button>
, <nav>
and others are more accessible and provide better semantics.
Examples
Section titled ExamplesInvalid
Section titled Invalidcode-block.jsx:2:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ expected <
but instead the file ends
1 │ <div role=“checkbox”>
> 2 │
│
ℹ the file ends here
1 │ <div role=“checkbox”>
> 2 │
│
code-block.jsx:2:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ expected <
but instead the file ends
1 │ <div role=“img”>
> 2 │
│
ℹ the file ends here
1 │ <div role=“img”>
> 2 │
│