@pingux/astro 2.208.0-alpha.0 → 2.208.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/AIComponents/PromptInput/PromptInputReadMe.mdx +12 -15
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.mdx +13 -19
- package/lib/cjs/components/AccordionGroup/AccordionGroup.mdx +16 -17
- package/lib/cjs/components/ArrayField/ArrayField.mdx +10 -15
- package/lib/cjs/components/Badge/Badge.mdx +6 -8
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.mdx +11 -17
- package/lib/cjs/components/Button/Button.mdx +8 -12
- package/lib/cjs/components/Calendar/Calendar.mdx +17 -22
- package/lib/cjs/components/Callout/Callout.mdx +8 -13
- package/lib/cjs/components/Card/Card.mdx +6 -8
- package/lib/cjs/components/CheckboxField/CheckboxField.mdx +11 -16
- package/lib/cjs/components/CodeEditor/CodeEditor.mdx +8 -13
- package/lib/cjs/components/CodeView/CodeView.mdx +5 -8
- package/lib/cjs/components/CollapsiblePanel/CollapsiblePanel.mdx +10 -13
- package/lib/cjs/components/ColorField/ColorField.mdx +13 -18
- package/lib/cjs/components/ComboBoxField/ComboBoxField.mdx +13 -15
- package/lib/cjs/components/CopyText/CopyText.mdx +6 -8
- package/lib/cjs/components/DataTable/DataTable.mdx +17 -22
- package/lib/cjs/components/DatePicker/DatePicker.mdx +20 -27
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.mdx +14 -19
- package/lib/cjs/components/ExpandableText/ExpandableText.mdx +9 -15
- package/lib/cjs/components/FileInputField/FileInputField.mdx +11 -16
- package/lib/cjs/components/Footer/Footer.mdx +9 -14
- package/lib/cjs/components/GridList/GridList.mdx +16 -21
- package/lib/cjs/components/HelpHint/HelpHint.mdx +8 -14
- package/lib/cjs/components/Icon/Icon.mdx +5 -3
- package/lib/cjs/components/IconButton/IconButton.mdx +7 -10
- package/lib/cjs/components/IconButtonToggle/IconButtonToggle.mdx +9 -15
- package/lib/cjs/components/Image/Image.mdx +4 -4
- package/lib/cjs/components/ImageUploadField/ImageUploadField.mdx +18 -24
- package/lib/cjs/components/Link/Link.mdx +5 -6
- package/lib/cjs/components/LinkSelectField/LinkSelectField.mdx +18 -24
- package/lib/cjs/components/ListItem/ListItem.mdx +6 -6
- package/lib/cjs/components/ListView/ListView.mdx +22 -23
- package/lib/cjs/components/Loader/Loader.mdx +6 -5
- package/lib/cjs/components/Menu/Menu.mdx +13 -18
- package/lib/cjs/components/Messages/Messages.mdx +9 -13
- package/lib/cjs/components/Modal/Modal.mdx +18 -19
- package/lib/cjs/components/MultivaluesField/MultivaluesField.mdx +14 -20
- package/lib/cjs/components/NavBar/NavBar.mdx +12 -17
- package/lib/cjs/components/NavSideBar/NavSideBar.mdx +12 -17
- package/lib/cjs/components/NavigationHeader/NavigationHeader.mdx +11 -16
- package/lib/cjs/components/NumberField/NumberField.mdx +16 -17
- package/lib/cjs/components/OverlayPanel/OverlayPanel.mdx +10 -14
- package/lib/cjs/components/Pagination/Pagination.mdx +9 -13
- package/lib/cjs/components/PasswordField/PasswordField.mdx +10 -15
- package/lib/cjs/components/PopoverMenu/PopoverMenu.mdx +16 -22
- package/lib/cjs/components/ProgressBar/ProgressBar.mdx +6 -7
- package/lib/cjs/components/RadioGroupField/RadioGroupField.mdx +11 -17
- package/lib/cjs/components/RangeCalendar/RangeCalendar.mdx +17 -22
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.mdx +11 -16
- package/lib/cjs/components/SearchField/SearchField.mdx +8 -10
- package/lib/cjs/components/SelectField/SelectField.mdx +18 -23
- package/lib/cjs/components/Separator/Separator.mdx +4 -3
- package/lib/cjs/components/ServerErrorBoundary/ServerErrorBoundary.mdx +6 -8
- package/lib/cjs/components/SliderField/SliderField.mdx +12 -15
- package/lib/cjs/components/StatusIcon/StatusIcon.mdx +4 -3
- package/lib/cjs/components/Stepper/Stepper.mdx +18 -20
- package/lib/cjs/components/SwitchField/SwitchField.mdx +9 -14
- package/lib/cjs/components/Tabs/Tabs.mdx +13 -18
- package/lib/cjs/components/TextAreaField/TextAreaField.mdx +8 -12
- package/lib/cjs/components/TextField/TextField.mdx +8 -12
- package/lib/cjs/components/TimeField/TimeField.mdx +12 -18
- package/lib/cjs/components/TooltipTrigger/TooltipTrigger.mdx +4 -3
- package/lib/cjs/types/accessibilityTable.d.ts +8 -0
- package/lib/cjs/types/accessibilityTable.js +6 -0
- package/lib/cjs/types/index.d.ts +1 -0
- package/lib/cjs/types/index.js +75 -64
- package/lib/cjs/utils/docUtils/AccessibilityTable.d.ts +3 -0
- package/lib/cjs/utils/docUtils/AccessibilityTable.js +38 -0
- package/lib/cjs/utils/docUtils/AccessibilityTable.test.js +192 -0
- package/lib/cjs/utils/docUtils/accessibilityTableConstants.d.ts +130 -0
- package/lib/cjs/utils/docUtils/accessibilityTableConstants.js +137 -0
- package/lib/components/AIComponents/PromptInput/PromptInputReadMe.mdx +12 -15
- package/lib/components/AccordionGridGroup/AccordionGridGroup.mdx +13 -19
- package/lib/components/AccordionGroup/AccordionGroup.mdx +16 -17
- package/lib/components/ArrayField/ArrayField.mdx +10 -15
- package/lib/components/Badge/Badge.mdx +6 -8
- package/lib/components/Breadcrumbs/Breadcrumbs.mdx +11 -17
- package/lib/components/Button/Button.mdx +8 -12
- package/lib/components/Calendar/Calendar.mdx +17 -22
- package/lib/components/Callout/Callout.mdx +8 -13
- package/lib/components/Card/Card.mdx +6 -8
- package/lib/components/CheckboxField/CheckboxField.mdx +11 -16
- package/lib/components/CodeEditor/CodeEditor.mdx +8 -13
- package/lib/components/CodeView/CodeView.mdx +5 -8
- package/lib/components/CollapsiblePanel/CollapsiblePanel.mdx +10 -13
- package/lib/components/ColorField/ColorField.mdx +13 -18
- package/lib/components/ComboBoxField/ComboBoxField.mdx +13 -15
- package/lib/components/CopyText/CopyText.mdx +6 -8
- package/lib/components/DataTable/DataTable.mdx +17 -22
- package/lib/components/DatePicker/DatePicker.mdx +20 -27
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.mdx +14 -19
- package/lib/components/ExpandableText/ExpandableText.mdx +9 -15
- package/lib/components/FileInputField/FileInputField.mdx +11 -16
- package/lib/components/Footer/Footer.mdx +9 -14
- package/lib/components/GridList/GridList.mdx +16 -21
- package/lib/components/HelpHint/HelpHint.mdx +8 -14
- package/lib/components/Icon/Icon.mdx +5 -3
- package/lib/components/IconButton/IconButton.mdx +7 -10
- package/lib/components/IconButtonToggle/IconButtonToggle.mdx +9 -15
- package/lib/components/Image/Image.mdx +4 -4
- package/lib/components/ImageUploadField/ImageUploadField.mdx +18 -24
- package/lib/components/Link/Link.mdx +5 -6
- package/lib/components/LinkSelectField/LinkSelectField.mdx +18 -24
- package/lib/components/ListItem/ListItem.mdx +6 -6
- package/lib/components/ListView/ListView.mdx +22 -23
- package/lib/components/Loader/Loader.mdx +6 -5
- package/lib/components/Menu/Menu.mdx +13 -18
- package/lib/components/Messages/Messages.mdx +9 -13
- package/lib/components/Modal/Modal.mdx +18 -19
- package/lib/components/MultivaluesField/MultivaluesField.mdx +14 -20
- package/lib/components/NavBar/NavBar.mdx +12 -17
- package/lib/components/NavSideBar/NavSideBar.mdx +12 -17
- package/lib/components/NavigationHeader/NavigationHeader.mdx +11 -16
- package/lib/components/NumberField/NumberField.mdx +16 -17
- package/lib/components/OverlayPanel/OverlayPanel.mdx +10 -14
- package/lib/components/Pagination/Pagination.mdx +9 -13
- package/lib/components/PasswordField/PasswordField.mdx +10 -15
- package/lib/components/PopoverMenu/PopoverMenu.mdx +16 -22
- package/lib/components/ProgressBar/ProgressBar.mdx +6 -7
- package/lib/components/RadioGroupField/RadioGroupField.mdx +11 -17
- package/lib/components/RangeCalendar/RangeCalendar.mdx +17 -22
- package/lib/components/RockerButtonGroup/RockerButtonGroup.mdx +11 -16
- package/lib/components/SearchField/SearchField.mdx +8 -10
- package/lib/components/SelectField/SelectField.mdx +18 -23
- package/lib/components/Separator/Separator.mdx +4 -3
- package/lib/components/ServerErrorBoundary/ServerErrorBoundary.mdx +6 -8
- package/lib/components/SliderField/SliderField.mdx +12 -15
- package/lib/components/StatusIcon/StatusIcon.mdx +4 -3
- package/lib/components/Stepper/Stepper.mdx +18 -20
- package/lib/components/SwitchField/SwitchField.mdx +9 -14
- package/lib/components/Tabs/Tabs.mdx +13 -18
- package/lib/components/TextAreaField/TextAreaField.mdx +8 -12
- package/lib/components/TextField/TextField.mdx +8 -12
- package/lib/components/TimeField/TimeField.mdx +12 -18
- package/lib/components/TooltipTrigger/TooltipTrigger.mdx +4 -3
- package/lib/types/accessibilityTable.js +1 -0
- package/lib/types/index.js +1 -0
- package/lib/utils/docUtils/AccessibilityTable.js +30 -0
- package/lib/utils/docUtils/AccessibilityTable.test.js +190 -0
- package/lib/utils/docUtils/accessibilityTableConstants.js +130 -0
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as ListViewStories from './ListView.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows, ScreenReaderRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={ListViewStories} isTemplate />
|
|
5
7
|
|
|
@@ -22,35 +24,32 @@ This component requires [ListViewItem](./?path=/docs/components-listviewitem--do
|
|
|
22
24
|
|
|
23
25
|
This component should adhere to the [WAI-ARIA ListBox](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/) accessibility guidelines.
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
- Each ListViewItem uses the **`aria-rowindex`** attribute, which defines a component's position in the total number of rows.
|
|
45
|
-
- Each item also uses the aria-label, **`aria-colindex`** attributes to indicate the component’s column position and aria-selected to indicate the currently selected state.
|
|
46
|
-
|
|
27
|
+
<AccessibilityTable
|
|
28
|
+
keyboardRows={[
|
|
29
|
+
KeyboardRows.spaceEnterSelectsItem,
|
|
30
|
+
KeyboardRows.tabFocusesItem,
|
|
31
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
32
|
+
{ key: 'Arrow keys', description: 'Can be used to move the selection in the menu.' },
|
|
33
|
+
KeyboardRows.homeFirstRow,
|
|
34
|
+
KeyboardRows.endLastVisibleRow,
|
|
35
|
+
]}
|
|
36
|
+
screenReaderRows={[
|
|
37
|
+
ScreenReaderRows.ariaLabelAccessibleName,
|
|
38
|
+
'The **`aria-rowcount`** and **`aria-columncount`** attributes are used to indicate the total number of rows and columns in the grid structure.',
|
|
39
|
+
'The **`aria-multiselectable`** attribute is used to indicate that users can toggle between items in the grid.',
|
|
40
|
+
"Each ListViewItem uses the **`aria-rowindex`** attribute, which defines a component's position in the total number of rows.",
|
|
41
|
+
"Each item also uses the aria-label, **`aria-colindex`** attributes to indicate the component's column position and aria-selected to indicate the currently selected state.",
|
|
42
|
+
]}
|
|
43
|
+
/>
|
|
44
|
+
|
|
45
|
+
{/* Non-standard sections: ‘#### NOTES:’ and ‘#### KNOWN ISSUES:’ contain runtime developer guidance, not accessibility patterns. Flagged for future migration. */}
|
|
47
46
|
#### NOTES:
|
|
48
47
|
- See the [ListAndPanel](./?path=/docs/recipes-listandpanel--docs) and [ScrollableListView](./?path=/docs/recipes-scrollablelistview--docs) recipes for more detailed examples.
|
|
49
48
|
|
|
50
49
|
#### KNOWN ISSUES:
|
|
51
50
|
Error Message: **`ResizeObserver loop completed with undelivered notifications.`**
|
|
52
51
|
|
|
53
|
-
The ListView
|
|
52
|
+
The ListView’s ResizeObserver exhibits a rendering bug specifically in development mode. This issue originates from @react-aria/virtualizer and is expected to be resolved upon upgrading to React 18.
|
|
54
53
|
|
|
55
54
|
Refer to issue [!1924](https://github.com/adobe/react-spectrum/issues/1924) for further details.
|
|
56
55
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as LoaderStories from './Loader.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { ScreenReaderRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={LoaderStories} isTemplate />
|
|
5
7
|
|
|
@@ -23,11 +25,10 @@ This component can be used independently and does not require additional compone
|
|
|
23
25
|
|
|
24
26
|
### Accessibility
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
- The **`aria-live`** attribute is used to announce content changes in a live region.
|
|
28
|
+
<AccessibilityTable screenReaderRows={[
|
|
29
|
+
ScreenReaderRows.ariaLabelAccessibleName,
|
|
30
|
+
ScreenReaderRows.ariaLiveAnnounce,
|
|
31
|
+
]} />
|
|
31
32
|
|
|
32
33
|
### Determinate vs Indeterminate usage
|
|
33
34
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
3
|
+
import { KeyboardRows, ScreenReaderRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
2
4
|
|
|
3
5
|
<Meta title="Components/Menu/Menu" />
|
|
4
6
|
|
|
@@ -23,21 +25,14 @@ This component requires the Item component, which is exported within Astro, but
|
|
|
23
25
|
|
|
24
26
|
This component should adhere to the [WAI-ARIA Menu](https://www.w3.org/WAI/tutorials/menus/) accessibility guidelines.
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
#### Screen Readers
|
|
39
|
-
|
|
40
|
-
This component uses the following attributes to assist screen readers:
|
|
41
|
-
- The **`aria-label`** attribute is used to provide an accessible name.
|
|
42
|
-
- Each menu option has the default **`aria-disabled`** value as “False.”
|
|
43
|
-
- The **`aria-orientation`** attribute indicates whether the menu is horizontally or vertically oriented, or undefined.
|
|
28
|
+
<AccessibilityTable keyboardRows={[
|
|
29
|
+
{ key: 'Space or Enter', description: 'Selects the menu item.' },
|
|
30
|
+
{ key: 'Tab', description: 'Focuses the menu item and follows the page tab sequence.' },
|
|
31
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
32
|
+
KeyboardRows.homeFirstRow,
|
|
33
|
+
KeyboardRows.endLastVisibleRow,
|
|
34
|
+
]} screenReaderRows={[
|
|
35
|
+
ScreenReaderRows.ariaLabelAccessibleName,
|
|
36
|
+
'Each menu option has the default **`aria-disabled`** value as “False.” ',
|
|
37
|
+
'The **`aria-orientation`** attribute indicates whether the menu is horizontally or vertically oriented, or undefined.',
|
|
38
|
+
]} />
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as MessagesStories from './Messages.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows, ScreenReaderRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={MessagesStories} isTemplate />
|
|
5
7
|
|
|
@@ -21,16 +23,10 @@ This component requires the Item component, which is exported within Astro, but
|
|
|
21
23
|
|
|
22
24
|
### Accessibility
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
| Space or Enter | Selects the button when it is focused. |
|
|
32
|
-
| Shift + Tab | Moves focus to the previous focusable component. |
|
|
33
|
-
|
|
34
|
-
#### Screen Readers
|
|
35
|
-
|
|
36
|
-
The **`aria-live`** attribute is used to announce content changes in a live region.
|
|
26
|
+
<AccessibilityTable keyboardRows={[
|
|
27
|
+
{ key: 'Tab', description: 'Focuses the IconButton within the message and follows the page tab sequence.' },
|
|
28
|
+
{ key: 'Space or Enter', description: 'Selects the button when it is focused.' },
|
|
29
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
30
|
+
]} screenReaderRows={[
|
|
31
|
+
ScreenReaderRows.ariaLiveAnnounce,
|
|
32
|
+
]} />
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as ModalStories from './Modal.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={ModalStories} isTemplate />
|
|
5
7
|
|
|
@@ -39,25 +41,22 @@ This component requires the OverlayProvider and [Button](./?path=/docs/component
|
|
|
39
41
|
|
|
40
42
|
This component should adhere to the [WAI-ARIA Modal](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/examples/dialog/) accessibility guidelines.
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
- The **`aria-labelledby`** attribute is supplied with label ID.
|
|
59
|
-
- The **`aria-modal`** attribute allows the assistive technologies to inform users that the ability to interact with or access other content on the page requires the modal dialog to be closed.
|
|
60
|
-
|
|
44
|
+
<AccessibilityTable
|
|
45
|
+
keyboardRows={[
|
|
46
|
+
{ key: 'Tab', description: 'The trigger component and the content in the modal are focusable using the Tab key.' },
|
|
47
|
+
{ key: '', description: 'When a modal opens, focus moves to an element contained in the modal, which is usually the first focusable element. If the first focusable element does not make sense, tabindex=”-1” should be added to a static element at the top of the modal, which could be the panel title.' },
|
|
48
|
+
{ key: 'Space or Enter', description: 'Opens the modal when the trigger is focused. Once opened, the focus is locked inside the modal.' },
|
|
49
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
50
|
+
{ key: 'Esc', description: 'Pressing the escape key closes the modal and adds focus to the previously focused component.' },
|
|
51
|
+
]}
|
|
52
|
+
screenReaderRows={[
|
|
53
|
+
'The button uses the **`aria-label`** attribute to provide an accessible name.',
|
|
54
|
+
'The **`aria-labelledby`** attribute is supplied with label ID.',
|
|
55
|
+
'The **`aria-modal`** attribute allows the assistive technologies to inform users that the ability to interact with or access other content on the page requires the modal dialog to be closed.',
|
|
56
|
+
]}
|
|
57
|
+
/>
|
|
58
|
+
|
|
59
|
+
{/* Non-standard section: '#### Note' contains AutoFocus implementation guidance. Flagged for future migration. */}
|
|
61
60
|
#### Note
|
|
62
61
|
|
|
63
62
|
AutoFocus is not enabled by default. To ensure accessibility and expected keyboard navigation support set the `hasAutoFocus` prop to true.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as MultivaluesFieldStories from './MultivaluesField.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={MultivaluesFieldStories} isTemplate />
|
|
5
7
|
|
|
@@ -23,26 +25,18 @@ This component requires the OverlayProvider and Item originating from [react-sta
|
|
|
23
25
|
|
|
24
26
|
### Accessibility
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
#### Screen readers
|
|
39
|
-
|
|
40
|
-
This component uses the following attributes to assist screen readers:
|
|
41
|
-
|
|
42
|
-
- The input uses the **`aria-expanded`** attribute to show the expansion and collapse of the popover, the **`aria-invalid`** attribute set to “True” when an incorrect value or status error occurs, and the **`aria-labelledby`** attribute is used to reference the label.
|
|
43
|
-
- The list box **`aria-multiselectable`** attribute is set to “True” by default.
|
|
44
|
-
- Each option uses the **`aria-selected`** attribute to indicate the state of selection, **`aria-posinset`** to give the option position in the current set of list items, and the **`aria-setsize`** attribute to define the current set of options.
|
|
45
|
-
- The **`aria-disabled`** attribute is set to “False” for each option by default.
|
|
28
|
+
<AccessibilityTable keyboardRows={[
|
|
29
|
+
KeyboardRows.tabFocusesField,
|
|
30
|
+
{ key: 'Space or Enter', description: 'Opens or closes the menu when the input is focused.' },
|
|
31
|
+
{ key: 'Arrow keys', description: 'Moves through the list popover.' },
|
|
32
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
33
|
+
{ key: '', description: 'To allow multiple selections, the user making a selection does not close the menu. However, clicking outside of the listbox or pressing Tab with an open popover does.' },
|
|
34
|
+
]} screenReaderRows={[
|
|
35
|
+
'The input uses the **`aria-expanded`** attribute to show the expansion and collapse of the popover, the **`aria-invalid`** attribute set to “True” when an incorrect value or status error occurs, and the **`aria-labelledby`** attribute is used to reference the label.',
|
|
36
|
+
'The list box **`aria-multiselectable`** attribute is set to “True” by default. ',
|
|
37
|
+
'Each option uses the **`aria-selected`** attribute to indicate the state of selection, **`aria-posinset`** to give the option position in the current set of list items, and the **`aria-setsize`** attribute to define the current set of options. ',
|
|
38
|
+
'The **`aria-disabled`** attribute is set to “False” for each option by default.',
|
|
39
|
+
]} />
|
|
46
40
|
|
|
47
41
|
### Children
|
|
48
42
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as NavBarStories from './NavBar.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows, ScreenReaderRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={NavBarStories} isTemplate />
|
|
5
7
|
|
|
@@ -24,20 +26,13 @@ This component requires these components:
|
|
|
24
26
|
|
|
25
27
|
### Accessibility
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
| Esc | Pressing the escape key when the accordion is open and focused collapses the component. |
|
|
38
|
-
|
|
39
|
-
#### Screen readers
|
|
40
|
-
|
|
41
|
-
This component uses the following attributes to assist screen readers:
|
|
42
|
-
- Each Link component uses the **`aria-label`** attribute to provide an accessible name.
|
|
43
|
-
- The Icon uses the **`aria-hidden`** attribute to hide its content from assistive technology.
|
|
29
|
+
<AccessibilityTable keyboardRows={[
|
|
30
|
+
{ key: 'Tab', description: 'All of the content in the NavBar is focusable.' },
|
|
31
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
32
|
+
KeyboardRows.spaceEnterToggleAccordion,
|
|
33
|
+
{ key: 'Arrow keys', description: 'All components within the NavBar are accessible using arrow keys.' },
|
|
34
|
+
KeyboardRows.escCollapseAccordion,
|
|
35
|
+
]} screenReaderRows={[
|
|
36
|
+
ScreenReaderRows.eachLinkAriaLabel,
|
|
37
|
+
ScreenReaderRows.iconAriaHidden,
|
|
38
|
+
]} />
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as NavSideBarStories from './NavSideBar.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows, ScreenReaderRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={NavSideBarStories} isTemplate />
|
|
5
7
|
|
|
@@ -24,20 +26,13 @@ This component requires these components:
|
|
|
24
26
|
|
|
25
27
|
### Accessibility
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
| Esc | Pressing the escape key when the accordion is open and focused collapses the component. |
|
|
38
|
-
|
|
39
|
-
#### Screen readers
|
|
40
|
-
|
|
41
|
-
This component uses the following attributes to assist screen readers:
|
|
42
|
-
- Each Link component uses the **`aria-label`** attribute to provide an accessible name.
|
|
43
|
-
- The Icon uses the **`aria-hidden`** attribute to hide its content from assistive technology.
|
|
29
|
+
<AccessibilityTable keyboardRows={[
|
|
30
|
+
{ key: 'Tab', description: 'All of the content in the NavSideBar is focusable.' },
|
|
31
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
32
|
+
KeyboardRows.spaceEnterToggleAccordion,
|
|
33
|
+
{ key: 'Arrow keys', description: 'All components within the NavSideBar are accessible using arrow keys.' },
|
|
34
|
+
KeyboardRows.escCollapseAccordion,
|
|
35
|
+
]} screenReaderRows={[
|
|
36
|
+
ScreenReaderRows.eachLinkAriaLabel,
|
|
37
|
+
ScreenReaderRows.iconAriaHidden,
|
|
38
|
+
]} />
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as NavigationHeaderStories from './NavigationHeader.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows, ScreenReaderRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={NavigationHeaderStories} isTemplate />
|
|
5
7
|
|
|
@@ -14,19 +16,12 @@ This component can be used independently and does not require additional compone
|
|
|
14
16
|
|
|
15
17
|
This component should adhere to the [WAI-ARIA Navigation](https://www.w3.org/WAI/ARIA/apg/patterns/landmarks/examples/navigation.html) accessibility guidelines.
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
| Arrow keys | Moves the selection through the popover. |
|
|
27
|
-
| Esc | Pressing the escape key closes the popover and focuses on the previous focusable component. |
|
|
28
|
-
|
|
29
|
-
#### Screen readers
|
|
30
|
-
|
|
31
|
-
This component uses the following attributes to assist screen readers:
|
|
32
|
-
- Each Link component uses the **`aria-label`** attribute to provide an accessible name.
|
|
19
|
+
<AccessibilityTable keyboardRows={[
|
|
20
|
+
KeyboardRows.tabFocusesItem,
|
|
21
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
22
|
+
{ key: 'Space or Enter', description: 'Pressing Space or Enter on a focused trigger opens or closes the dropdown menu and selects the MenuItems it is focused on.' },
|
|
23
|
+
KeyboardRows.arrowKeysMovePopoverSelection,
|
|
24
|
+
KeyboardRows.escClosePopoverFocusPrevious,
|
|
25
|
+
]} screenReaderRows={[
|
|
26
|
+
ScreenReaderRows.eachLinkAriaLabel,
|
|
27
|
+
]} />
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as NumberFieldStories from './NumberField.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={NumberFieldStories} isTemplate />
|
|
5
7
|
|
|
@@ -22,23 +24,20 @@ This component can be used independently and does not require additional compone
|
|
|
22
24
|
|
|
23
25
|
### Accessibility
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
- The input component uses the **`aria-labelledby`** attribute to reference the label.
|
|
40
|
-
- The two icon buttons each use the **`aria-controls`** attribute with the input ID and the **`aria-label`** attribute to provide an accessible name.
|
|
41
|
-
|
|
27
|
+
<AccessibilityTable
|
|
28
|
+
keyboardRows={[
|
|
29
|
+
KeyboardRows.tabInput,
|
|
30
|
+
{ key: 'Arrow keys', description: 'Can be used to increment or decrement the numbers displayed in the field.' },
|
|
31
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
32
|
+
{ key: 'Stepper buttons', description: 'Pressing and holding the stepper buttons allows continuous increments or decrements.' },
|
|
33
|
+
]}
|
|
34
|
+
screenReaderRows={[
|
|
35
|
+
'The input component uses the **`aria-labelledby`** attribute to reference the label.',
|
|
36
|
+
'The two icon buttons each use the **`aria-controls`** attribute with the input ID and the **`aria-label`** attribute to provide an accessible name.',
|
|
37
|
+
]}
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
{/* Non-standard section: '#### Note' documents onChange callback behaviour. Flagged for future migration. */}
|
|
42
41
|
#### Note
|
|
43
42
|
|
|
44
43
|
For NumberField, the onChange callback is triggered when the increment and decrement buttons are pressed, or upon focus shifting away from the input after typing a value with the keyboard. This is because of internal validation which needs to occur when typing. (Source: [React Aria NumberField](https://react-spectrum.adobe.com/react-aria/useNumberField.html#controlled))
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as OverlayPanelStories from './OverlayPanel.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={OverlayPanelStories} isTemplate />
|
|
5
7
|
|
|
@@ -24,17 +26,11 @@ This component requires the OverlayProvider component.
|
|
|
24
26
|
|
|
25
27
|
### Accessibility
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
| Shift + Tab | Moves focus to the previous focusable component. |
|
|
36
|
-
| Esc | Pressing the escape key closes the overlay and focuses on the previous focusable component. |
|
|
37
|
-
|
|
38
|
-
#### Screen Readers
|
|
39
|
-
|
|
40
|
-
The trigger button uses the **`aria-expanded`** attribute to indicate the expansion and collapse of content.
|
|
29
|
+
<AccessibilityTable keyboardRows={[
|
|
30
|
+
{ key: 'Tab', description: 'The trigger is focusable using the Tab key and follows the page tab sequence.' },
|
|
31
|
+
{ key: 'Space or Enter', description: 'Opens or closes the panel when the trigger is focused.' },
|
|
32
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
33
|
+
{ key: 'Esc', description: 'Pressing the escape key closes the overlay and focuses on the previous focusable component.' },
|
|
34
|
+
]} screenReaderRows={[
|
|
35
|
+
'The trigger button uses the **`aria-expanded`** attribute to indicate the expansion and collapse of content.',
|
|
36
|
+
]} />
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as PaginationStories from './Pagination.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
3
4
|
|
|
4
5
|
<Meta of={PaginationStories} isTemplate />
|
|
5
6
|
|
|
@@ -24,19 +25,14 @@ This component requires the following components:
|
|
|
24
25
|
|
|
25
26
|
This component adheres to the [WCAG 2.1 - 2.4.4 Link Purpose (In Context)](https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-in-context.html) accessibility guidelines.
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
This component uses the following attributes to assist screen readers:
|
|
37
|
-
- **`aria-label`**: Provides an accessible name for the pagination controls.
|
|
38
|
-
- **`aria-disabled`**: Indicates when navigation buttons are disabled.
|
|
39
|
-
- **`aria-live`**: Updates screen readers with changes in pagination state.
|
|
28
|
+
<AccessibilityTable keyboardRows={[
|
|
29
|
+
{ key: 'Tab', description: 'Moves focus between controls.' },
|
|
30
|
+
{ key: 'Enter', description: 'Activates the focused control.' },
|
|
31
|
+
]} screenReaderRows={[
|
|
32
|
+
'**`aria-label`**: Provides an accessible name for the pagination controls.',
|
|
33
|
+
'**`aria-disabled`**: Indicates when navigation buttons are disabled.',
|
|
34
|
+
'**`aria-live`**: Updates screen readers with changes in pagination state.',
|
|
35
|
+
]} />
|
|
40
36
|
|
|
41
37
|
### Usage
|
|
42
38
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as PasswordFieldStories from './PasswordField.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={PasswordFieldStories} isTemplate />
|
|
5
7
|
|
|
@@ -17,18 +19,11 @@ This component can be used independently and does not require additional compone
|
|
|
17
19
|
|
|
18
20
|
### Accessibility
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
| Space or Enter | Toggles the PasswordType component to hide or reveal the input. |
|
|
29
|
-
|
|
30
|
-
#### Screen readers
|
|
31
|
-
|
|
32
|
-
This component uses the following attributes to assist screen readers:
|
|
33
|
-
- The input component uses the **`aria-labelledby`** attribute to reference the label ID.
|
|
34
|
-
- The icon buttons use **`aria-label`** attribute to provide an accessible name.
|
|
22
|
+
<AccessibilityTable keyboardRows={[
|
|
23
|
+
KeyboardRows.tabInput,
|
|
24
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
25
|
+
{ key: 'Space or Enter', description: 'Toggles the PasswordType component to hide or reveal the input.' },
|
|
26
|
+
]} screenReaderRows={[
|
|
27
|
+
'The input component uses the **`aria-labelledby`** attribute to reference the label ID.',
|
|
28
|
+
'The icon buttons use **`aria-label`** attribute to provide an accessible name.',
|
|
29
|
+
]} />
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Meta } from "@storybook/addon-docs/blocks";
|
|
2
2
|
import * as PopoverMenuStories from './PopoverMenu.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows, ScreenReaderRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
3
5
|
|
|
4
6
|
<Meta of={PopoverMenuStories} isTemplate />
|
|
5
7
|
|
|
@@ -33,25 +35,17 @@ This component requires these components:
|
|
|
33
35
|
|
|
34
36
|
This component should adhere to the [WAI-ARIA Dialog](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/examples/dialog/) accessibility guidelines.
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
This component uses the following attributes to assist screen readers:
|
|
51
|
-
|
|
52
|
-
- The **`aria-haspopup`** attribute is set to “True” to indicate that this component contains popover content.
|
|
53
|
-
- The trigger uses the **`aria-expanded`** attribute to indicate when the content expands and collapses.
|
|
54
|
-
- The menu ID is supplied to the **`aria-controls`** attribute pointing to the content.
|
|
55
|
-
- The **`aria-orientation`** attribute indicates whether the orientation is horizontal, vertical, unknown, or ambiguous.
|
|
56
|
-
- The default **`aria-disabled`** attribute is set to “False” by default.
|
|
57
|
-
- The button ID is supplied to the **`aria-labelledby`** attribute to reference it.
|
|
38
|
+
<AccessibilityTable keyboardRows={[
|
|
39
|
+
{ key: 'Tab', description: 'The trigger and menu items are focusable using the Tab key.' },
|
|
40
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
41
|
+
{ key: 'Space or Enter', description: 'Pressing Space or Enter on a focused trigger opens or closes the menu and selects the MenuItems it is focused on.' },
|
|
42
|
+
KeyboardRows.arrowKeysMovePopoverSelection,
|
|
43
|
+
KeyboardRows.escClosePopoverFocusPrevious,
|
|
44
|
+
]} screenReaderRows={[
|
|
45
|
+
'The **`aria-haspopup`** attribute is set to “True” to indicate that this component contains popover content.',
|
|
46
|
+
'The trigger uses the **`aria-expanded`** attribute to indicate when the content expands and collapses.',
|
|
47
|
+
'The menu ID is supplied to the **`aria-controls`** attribute pointing to the content.',
|
|
48
|
+
ScreenReaderRows.ariaOrientationNoTrailingSpace,
|
|
49
|
+
'The default **`aria-disabled`** attribute is set to “False” by default.',
|
|
50
|
+
'The button ID is supplied to the **`aria-labelledby`** attribute to reference it.',
|
|
51
|
+
]} />
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
2
|
import * as ProgressBarStories from './ProgressBar.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
3
4
|
|
|
4
5
|
<Meta of={ProgressBarStories} isTemplate />
|
|
5
6
|
|
|
@@ -22,13 +23,11 @@ This component can be used independently and does not require additional compone
|
|
|
22
23
|
|
|
23
24
|
This component should adhere to the [WAI-ARIA ProgressBar](https://w3c.github.io/aria/#progressbar) accessibility guidelines.
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
- The progressBar uses the **`aria-valuenow`** attribute to indicate the current value of the progressbar.
|
|
31
|
-
- If the progressbar is describing the loading progress of a particular region of a page, authors SHOULD both use **`aria-describedby`** to reference the progressbar status, and set the **`aria-busy`** attribute to true on the region until it is finished loading. It is not possible for the user to alter the value of a progressbar because it is always read-only
|
|
26
|
+
<AccessibilityTable screenReaderRows={[
|
|
27
|
+
'The progressBar uses the **`aria-valuemin`** and **`aria-valuemax`** to indicate the minimum and maximum progress indicator values. If they are missing, they default to 0 and 100 respectively. ',
|
|
28
|
+
'The progressBar uses the **`aria-valuenow`** attribute to indicate the current value of the progressbar.',
|
|
29
|
+
'If the progressbar is describing the loading progress of a particular region of a page, authors SHOULD both use **`aria-describedby`** to reference the progressbar status, and set the **`aria-busy`** attribute to true on the region until it is finished loading. It is not possible for the user to alter the value of a progressbar because it is always read-only',
|
|
30
|
+
]} />
|
|
32
31
|
|
|
33
32
|
### Determinate vs Indeterminate usage
|
|
34
33
|
|