diff --git a/e2e/a11y/pages/Dropdown.tsx b/e2e/a11y/pages/Dropdown.tsx new file mode 100644 index 000000000..d1e55a223 --- /dev/null +++ b/e2e/a11y/pages/Dropdown.tsx @@ -0,0 +1,48 @@ +import { Dropdown } from '@spark-ui/dropdown' +import { BookmarkFill } from '@spark-ui/icons/dist/icons/BookmarkFill' +import React from 'react' + +export const A11yDropdown = () => ( +
+
+ + + + + + + + + + + To Kill a Mockingbird + War and Peace + The Idiot + A Picture of Dorian Gray + 1984 + Pride and Prejudice + + + +
+ +
+ + + + + + + + To Kill a Mockingbird + War and Peace + The Idiot + A Picture of Dorian Gray + 1984 + Pride and Prejudice + + + +
+
+) diff --git a/e2e/a11y/routes/components.ts b/e2e/a11y/routes/components.ts index f6a8ec008..68fb0d114 100644 --- a/e2e/a11y/routes/components.ts +++ b/e2e/a11y/routes/components.ts @@ -15,6 +15,7 @@ export const a11yComponents = { dialog: 'dialog', divider: 'divider', drawer: 'drawer', + dropdown: 'dropdown', } export type A11yComponentsKey = keyof typeof a11yComponents diff --git a/e2e/a11y/routes/elements.tsx b/e2e/a11y/routes/elements.tsx index 66aedbc90..14f2ab237 100644 --- a/e2e/a11y/routes/elements.tsx +++ b/e2e/a11y/routes/elements.tsx @@ -10,6 +10,7 @@ import { A11yCombobox } from '../pages/Combobox' import { A11yDialog } from '../pages/Dialog' import { A11yDivider } from '../pages/Divider' import { A11yDrawer } from '../pages/Drawer' +import { A11yDropdown } from '../pages/Dropdown' import { type A11yComponentsKey } from './components' /** @@ -29,4 +30,5 @@ export const a11yElements: Record = { dialog: , divider: , drawer: , + dropdown: , } diff --git a/public/a11y/a11y-report.json b/public/a11y/a11y-report.json index e0d4cbd36..e37ab60bd 100644 --- a/public/a11y/a11y-report.json +++ b/public/a11y/a11y-report.json @@ -1,12 +1,12 @@ { "@spark-ui/accordion": { - "timestamp": "2024-08-06T13:58:04.700Z", + "timestamp": "2024-08-06T14:25:40.280Z", "url": "http://localhost:3002/a11y/accordion", "incomplete": [], "violations": [] }, "@spark-ui/alert-dialog": { - "timestamp": "2024-08-06T13:58:06.702Z", + "timestamp": "2024-08-06T14:25:42.508Z", "url": "http://localhost:3002/a11y/alert-dialog", "incomplete": [ { @@ -118,31 +118,31 @@ "violations": [] }, "@spark-ui/badge": { - "timestamp": "2024-08-06T13:58:04.642Z", + "timestamp": "2024-08-06T14:25:44.230Z", "url": "http://localhost:3002/a11y/badge", "incomplete": [], "violations": [] }, "@spark-ui/button": { - "timestamp": "2024-08-06T13:58:06.627Z", + "timestamp": "2024-08-06T14:25:40.531Z", "url": "http://localhost:3002/a11y/button", "incomplete": [], "violations": [] }, "@spark-ui/checkbox": { - "timestamp": "2024-08-06T13:58:04.644Z", + "timestamp": "2024-08-06T14:25:43.178Z", "url": "http://localhost:3002/a11y/checkbox", "incomplete": [], "violations": [] }, "@spark-ui/collapsible": { - "timestamp": "2024-08-06T13:58:06.320Z", + "timestamp": "2024-08-06T14:25:44.803Z", "url": "http://localhost:3002/a11y/collapsible", "incomplete": [], "violations": [] }, "@spark-ui/combobox": { - "timestamp": "2024-08-06T13:58:05.483Z", + "timestamp": "2024-08-06T14:25:41.890Z", "url": "http://localhost:3002/a11y/combobox", "incomplete": [ { @@ -207,7 +207,7 @@ "violations": [] }, "@spark-ui/dialog": { - "timestamp": "2024-08-06T13:58:08.008Z", + "timestamp": "2024-08-06T14:25:44.706Z", "url": "http://localhost:3002/a11y/dialog", "incomplete": [ { @@ -338,5 +338,188 @@ } ], "violations": [] + }, + "@spark-ui/divider": { + "timestamp": "2024-08-06T14:25:45.625Z", + "url": "http://localhost:3002/a11y/divider", + "incomplete": [], + "violations": [] + }, + "@spark-ui/drawer": { + "timestamp": "2024-08-06T14:25:42.010Z", + "url": "http://localhost:3002/a11y/drawer", + "incomplete": [ + { + "id": "aria-hidden-focus", + "impact": "serious", + "tags": [ + "cat.name-role-value", + "wcag2a", + "wcag412", + "TTv5", + "TT6.a", + "EN-301-549", + "EN-9.4.1.2" + ], + "description": "Ensures aria-hidden elements are not focusable nor contain focusable elements", + "help": "ARIA hidden element must not be focusable or contain focusable elements", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.9/aria-hidden-focus?application=playwright", + "nodes": [ + { + "any": [], + "all": [ + { + "id": "focusable-modal-open", + "data": null, + "relatedNodes": [ + { + "html": "", + "target": [ + "span:nth-child(1)" + ] + } + ], + "impact": "serious", + "message": "Check that focusable elements are not tabbable in the current state" + } + ], + "none": [], + "impact": "serious", + "html": "", + "target": [ + "span:nth-child(1)" + ] + }, + { + "any": [], + "all": [ + { + "id": "focusable-modal-open", + "data": null, + "relatedNodes": [ + { + "html": "", + "target": [ + "span:nth-child(6)" + ] + } + ], + "impact": "serious", + "message": "Check that focusable elements are not tabbable in the current state" + } + ], + "none": [], + "impact": "serious", + "html": "", + "target": [ + "span:nth-child(6)" + ] + } + ] + }, + { + "id": "aria-valid-attr-value", + "impact": "critical", + "tags": [ + "cat.aria", + "wcag2a", + "wcag412", + "EN-301-549", + "EN-9.4.1.2" + ], + "description": "Ensures all ARIA attributes have valid values", + "help": "ARIA attributes must conform to valid values", + "helpUrl": "https://dequeuniversity.com/rules/axe/4.9/aria-valid-attr-value?application=playwright", + "nodes": [ + { + "any": [], + "all": [ + { + "id": "aria-valid-attr-value", + "data": { + "messageKey": "controlsWithinPopup", + "needsReview": "aria-controls=\"radix-:r3:\"" + }, + "relatedNodes": [], + "impact": "critical", + "message": "Unable to determine if aria-controls referenced ID exists on the page while using aria-haspopup: aria-controls=\"radix-:r3:\"" + } + ], + "none": [], + "impact": "critical", + "html": "