diff --git a/packages/docusaurus-theme-classic/src/theme/Toggle/index.tsx b/packages/docusaurus-theme-classic/src/theme/Toggle/index.tsx
index 7bfe3db259..251488b17b 100644
--- a/packages/docusaurus-theme-classic/src/theme/Toggle/index.tsx
+++ b/packages/docusaurus-theme-classic/src/theme/Toggle/index.tsx
@@ -53,6 +53,7 @@ const Toggle = memo(
'react-toggle--focus': focused,
'react-toggle--disabled': disabled,
})}>
+ {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}
setChecked(!checked)}
onFocus={() => setFocused(true)}
onBlur={() => setFocused(false)}
+ onKeyDown={(e) => {
+ if (e.key === 'Enter') {
+ inputRef.current?.click();
+ }
+ }}
/>
);
diff --git a/packages/docusaurus-theme-common/src/components/Details/index.tsx b/packages/docusaurus-theme-common/src/components/Details/index.tsx
index 1645d4edbd..87f6edec13 100644
--- a/packages/docusaurus-theme-common/src/components/Details/index.tsx
+++ b/packages/docusaurus-theme-common/src/components/Details/index.tsx
@@ -50,43 +50,48 @@ const Details = ({summary, children, ...props}: DetailsProps): JSX.Element => {
styles.details,
{[styles.isClient]: isClient},
props.className,
- )}
- onMouseDown={(e) => {
- const target = e.target as HTMLElement;
- // Prevent a double-click to highlight summary text
- if (isInSummary(target) && e.detail > 1) {
+ )}>
+ {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}
+ {
+ const target = e.target as HTMLElement;
+ // Prevent a double-click to highlight summary text
+ if (isInSummary(target) && e.detail > 1) {
+ e.preventDefault();
+ }
+ }}
+ onClick={(e) => {
+ e.stopPropagation(); // For isolation of multiple nested details/summary
+ const target = e.target as HTMLElement;
+ const shouldToggle =
+ isInSummary(target) && hasParent(target, detailsRef.current!);
+ if (!shouldToggle) {
+ return;
+ }
e.preventDefault();
- }
- }}
- onClick={(e) => {
- e.stopPropagation(); // For isolation of multiple nested details/summary
- const target = e.target as HTMLElement;
- const shouldToggle =
- isInSummary(target) && hasParent(target, detailsRef.current!);
- if (!shouldToggle) {
- return;
- }
- e.preventDefault();
- if (collapsed) {
- setCollapsed(false);
- setOpen(true);
- } else {
- setCollapsed(true);
- // setOpen(false); // Don't do this, it breaks close animation!
- }
- }}>
- {summary}
-
-
{
- setCollapsed(newCollapsed);
- setOpen(!newCollapsed);
+ if (collapsed) {
+ setCollapsed(false);
+ setOpen(true);
+ } else {
+ setCollapsed(true);
+ // setOpen(false); // Don't do this, it breaks close animation!
+ }
}}>
- {children}
-
+ {summary}
+
+
{
+ setCollapsed(newCollapsed);
+ setOpen(!newCollapsed);
+ }}>
+ {children}
+
+
);
};