-
Notifications
You must be signed in to change notification settings - Fork 152
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
--- | ||
title: Accessibility | ||
redirect_from: | ||
- /components/heading/accessibility/ | ||
--- | ||
|
||
# Accessibility | ||
|
||
## Heading | ||
|
||
The Heading component has been designed with accessibility in mind. | ||
|
||
The component offers flexibility in terms of the HTML element used for the root node, the `role` attribute, and the `level` attribute. | ||
These properties allow for the creation of semantic and accessible headings. | ||
|
||
| Name | Type | Description | | ||
| :---- | :------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------- | | ||
| as | `"h1" \| "h2" \| "h3" \| "h4" \| "h5" \| "h6" \| "div"` | Defines the HTML element to be rendered. | | ||
| role | `"heading"` | Can only be used if `as="div"`. If defined, sets the role of the element to be "heading". | | ||
| level | `number` | Can only be used if `as="div"` and "`role="heading`". Defines the `aria-level` of the rendered `div` with the heading role. | | ||
|
||
All the props above are optional by default. | ||
|
||
If they are not provided, the component will render a `div` element with no role or aria-level defined. | ||
Check warning on line 24 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
Check warning on line 24 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
|
||
It is not semantically wrong but won't tell screen readers that the element is a heading. This should be used only for decorative purposes. | ||
Check warning on line 25 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
Check warning on line 25 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
|
||
|
||
```jsx | ||
<Heading>Hello World!</Heading> | ||
``` | ||
|
||
renders: | ||
|
||
```html | ||
<div>Hello World!</div> | ||
``` | ||
|
||
If the `as` prop is set to `"div"` (or undefined), the `role` prop is optional, but only accepts one possible value (if not `undefined`): `"heading"`. | ||
If the `role` prop is set to `"heading"`, the `level` prop must be defined as well. It will tell assistive technologies the level of the heading. | ||
Check warning on line 38 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
|
||
The `level` prop must be a number between 1 and 6 and cannot be used if the `role` prop is not set to `"heading"`. | ||
Check warning on line 39 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
Check warning on line 39 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
|
||
|
||
```jsx | ||
<Heading as="div" role="heading" level={1}> | ||
Hello World! | ||
</Heading> | ||
``` | ||
|
||
renders: | ||
|
||
```html | ||
<div role="heading" aria-level="1">Hello World!</div> | ||
``` | ||
|
||
If the `as` prop is set to `"h1"`, `"h2"`, `"h3"`, `"h4"`, `"h5"`, or `"h6"`, the component will render the corresponding HTML element. | ||
Check warning on line 53 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
|
||
In that case, the `role` and `level` props are not needed, since assistive technologies will recognize the element as a heading and its correct level automatically. | ||
Check warning on line 54 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
Check warning on line 54 in docs/src/documentation/03-components/09-text/heading/03-accessibility.mdx GitHub Actions / prose
|
||
|
||
```jsx | ||
<Heading as="h1">Hello World!</Heading> | ||
``` | ||
|
||
renders: | ||
|
||
```html | ||
<h1>Hello World!</h1> | ||
``` | ||
|
||
### Compatibility with SkipNavigation | ||
|
||
The `dataA11ySection` prop can be used to link the Heading to a `SkipNavigation` component. |