Skip to content

Commit bb22dfe

Browse files
andreibesleagaAndrei Besleaga
andauthored
feat: SidebarMenu and Accordion components accesibility, (#175)
* added SidebarMenu accesibility * fix added import onEnterOrSpace * feat: make accordion component accesible for keyboard navigation * removed unused parameter * bugfix: eslint errors Co-authored-by: Andrei Besleaga <andrei.besleaga@tonica.ro>
1 parent 244c781 commit bb22dfe

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

src/components/accordion/accordion.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@ import PropTypes from "prop-types";
33
import classNames from "classnames";
44
import ArrowDown from "../../images/icons/arrow-down.svg";
55
import "./accordion.scss";
6+
import { onEnterOrSpace } from "../../a11y";
67

78
export const Accordion = ({ title, content, children }) => {
89
const [showContent, setShowContent] = useState(false);
910

1011
return (
11-
<div className="message __accordion">
12+
<div className="message __accordion" tabIndex="0">
1213
<div
1314
className={classNames("message-header __accordion-header", {
1415
"__accordion-header--expanded": showContent
1516
})}
1617
onClick={() => setShowContent(!showContent)}
18+
onKeyPress={onEnterOrSpace(setShowContent(!showContent))}
1719
>
1820
<span className="__accordion-title">{title}</span>
1921
<div className="__accordion-arrow">

src/components/sidebar-menu-item/sidebar-menu-item.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React from "react";
22
import PropTypes from "prop-types";
33
import "./sidebar-menu-item.scss";
44
import classNames from "classnames";
5+
import { onEnterOrSpace } from "../../a11y";
56

67
export const SidebarMenuItem = ({ active, isTitle, children, onClick }) => {
78
const onClickCb = () => {
@@ -12,11 +13,14 @@ export const SidebarMenuItem = ({ active, isTitle, children, onClick }) => {
1213

1314
return (
1415
<li
16+
role="menuitem"
17+
tabIndex="0"
1518
className={classNames("__sidebar-menu-item", {
1619
isTitle,
1720
active
1821
})}
1922
onClick={onClickCb}
23+
onKeyPress={onEnterOrSpace(onClickCb)}
2024
>
2125
{children}
2226
</li>

src/components/sidebar-menu/sidebar-menu.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import "./sidebar-menu.scss";
55

66
export const SidebarMenu = ({ title, children }) => {
77
return (
8-
<div className="__sidebar-menu-container">
8+
<div className="__sidebar-menu-container" role="navigation">
99
<Hero title={title} useFallbackIcon={true} />
1010
<ul className="menu-list">{children}</ul>
1111
</div>

0 commit comments

Comments
 (0)