> For AI agents: the complete documentation index is available at https://rslint.rs/llms.txt, the full documentation bundle is available at https://rslint.rs/llms-full.txt.

# aria-unsupported-elements

[Added in v0.5.3](https://github.com/web-infra-dev/rslint/releases/tag/v0.5.3)
## Configuration

| Preset                              | Configured Value |
| ----------------------------------- | ---------------- |
| ✅ jsxA11yPlugin.configs.recommended | `"error"`        |


```ts title=rslint.config.ts
import { defineConfig, jsxA11yPlugin } from '@rslint/core';

export default defineConfig([
  jsxA11yPlugin.configs.recommended,
  {
    rules: {
      'jsx-a11y/aria-unsupported-elements': 'error',
    },
  },
]);
```

Certain HTML elements do not support ARIA roles, states, or properties. Adding
ARIA attributes (any `aria-*` attribute) or a `role` attribute to these elements
is invalid.

The reserved elements are: `base`, `col`, `colgroup`, `head`, `html`, `link`,
`meta`, `noembed`, `noscript`, `param`, `picture`, `script`, `source`, `style`,
`title`, `track`.

## Rule Details

This rule enforces that the reserved DOM elements do not contain `role` or
ARIA attributes. Attribute names are matched case-insensitively.

Examples of **incorrect** code for this rule:

```jsx
<base aria-hidden />
<meta charset="UTF-8" aria-hidden="false" />
<html aria-required />
<style role="presentation"></style>
<script aria-label="x"></script>
```

Examples of **correct** code for this rule:

```jsx
<base />
<meta charset="UTF-8" />
<html lang="en" />
<style></style>
<div aria-hidden />
<span role="button" />
```

## Original Documentation

- [eslint-plugin-jsx-a11y: aria-unsupported-elements](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/v6.10.2/docs/rules/aria-unsupported-elements.md)
- [Source code](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/v6.10.2/src/rules/aria-unsupported-elements.js)
