Skip to content

Commit

Permalink
fix(v2): fix minor a11y issues
Browse files Browse the repository at this point in the history
  • Loading branch information
lex111 committed Jun 4, 2021
1 parent f10304d commit e148c1f
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 24 deletions.
30 changes: 8 additions & 22 deletions packages/docusaurus-theme-classic/src/theme/Toggle/index.tsx
Expand Up @@ -44,38 +44,23 @@ const Toggle = memo(
const [checked, setChecked] = useState(defaultChecked);
const [focused, setFocused] = useState(false);
const inputRef = useRef<HTMLInputElement>(null);
const handleToggle = (e) => {
const checkbox = inputRef.current;

if (!checkbox) {
return;
}

if (e.target !== checkbox) {
e.preventDefault();
checkbox.focus();
checkbox.click();
return;
}

setChecked(checkbox?.checked);
};

return (
<div
className={clsx('react-toggle', className, {
'react-toggle--checked': checked,
'react-toggle--focus': focused,
'react-toggle--disabled': disabled,
})}
role="button"
tabIndex={-1}
onClick={handleToggle}>
<div className="react-toggle-track">
})}>
<div
className="react-toggle-track"
role="button"
tabIndex={-1}
onClick={() => inputRef.current?.click()}>
<div className="react-toggle-track-check">{icons.checked}</div>
<div className="react-toggle-track-x">{icons.unchecked}</div>
<div className="react-toggle-thumb" />
</div>
<div className="react-toggle-thumb" />

<input
ref={inputRef}
Expand All @@ -84,6 +69,7 @@ const Toggle = memo(
className="react-toggle-screenreader-only"
aria-label="Switch between dark and light mode"
onChange={onChange}
onClick={() => setChecked(!checked)}
onFocus={() => setFocused(true)}
onBlur={() => setFocused(false)}
/>
Expand Down
2 changes: 1 addition & 1 deletion website/src/components/showcase/ShowcaseSelect/index.js
Expand Up @@ -13,10 +13,10 @@ function ShowcaseSelect({tag, label, onChange, value, children}) {
const id = `showcase_select_id_${tag};`;
return (
<div className={styles.selectContainer}>
<label htmlFor={id}>{label}</label>
<select id={id} name={tag} onChange={onChange} value={value}>
{children}
</select>
<label htmlFor={id}>{label}</label>
</div>
);
}
Expand Down
2 changes: 1 addition & 1 deletion website/src/pages/showcase/index.js
Expand Up @@ -117,7 +117,6 @@ function ShowcaseFilters({selectedTags, toggleTag, operator, setOperator}) {
<ShowcaseCheckbox
// TODO add a proper tooltip
title={`${label}: ${description}`}
aria-label={`${label}: ${description}`}
name={tag}
label={
icon ? (
Expand All @@ -137,6 +136,7 @@ function ShowcaseFilters({selectedTags, toggleTag, operator, setOperator}) {
<div className="col col--2">
<ShowcaseSelect
name="operator"
label="Filter: "
value={operator}
onChange={(e) => setOperator(e.target.value)}>
<option value="OR">OR</option>
Expand Down

0 comments on commit e148c1f

Please sign in to comment.