Checkbox
Checkbox
は、ユーザーが複数の選択肢の中から複数の値を選択するための使用されるコンポーネントです。
Checkbox
は、アクセシビリティに関してWAI-ARIA - Checkbox Patternに従います。
CheckboxGroup
を使用せずグループ化する場合は、Fieldset
を使用します。
const [values, setValues] = useState([false, false])const allChecked = values.every(Boolean)const isIndeterminate = values.some(Boolean) && !allCheckedreturn (<Fieldset legend="キャラクター"><VStack gap="sm"><CheckboxisChecked={allChecked}isIndeterminate={isIndeterminate}onChange={(e) => setValues([e.target.checked, e.target.checked])}>地球人</Checkbox><VStack pl="md" gap="sm"><CheckboxisChecked={values[0]}onChange={(e) => setValues([e.target.checked, values[1]])}>孫悟空</Checkbox><CheckboxisChecked={values[1]}onChange={(e) => setValues([values[0], e.target.checked])}>孫悟飯</Checkbox></VStack></VStack></Fieldset>)
FormControl
を使用しない場合は、CheckboxGroup
にaria-labelledby
を設定します。
<VStack gap="sm"><Heading as="h3" id="group">キャラクター</Heading><CheckboxGroup aria-labelledby="group"><Checkbox value="孫悟空">孫悟空</Checkbox><Checkbox value="ベジータ">ベジータ</Checkbox><Checkbox value="フリーザ">フリーザ</Checkbox></CheckboxGroup></VStack>
キーボード操作
キー | 説明 | 状態 |
---|---|---|
Tab | 無効ではないチェックボックスをフォーカスします。 | - |
Space | チェックボックスのチェックの状態を切り替えます。 | - |
チェックボックスを3つ(チェック済み、チェックなし、中間)の状態に切り替えます。 | isIndeterminate={true} |
ARIAロールと属性
コンポーネント | ロールと属性 | 使い方 |
---|---|---|
CheckboxGroup | role="group" | チェックボックスのグループであることを示します。 |
aria-labelledby | CheckboxGroup がFormControl 内にあり、FormControl にlabel またはLabel が設定されている場合は、そのid を設定します。 | |
Checkbox | id | isIndeterminate={true} が設定されたチェックボックスに関連付けるために使用するid 。 |
aria-checked | チェックボックスがチェックされている場合は"true" を設定し、チェックされていない場合は"false" を設定します。中間状態の場合は"mixed" を設定します。 | |
aria-controls | isIndeterminate={true} が設定されている場合に、制御するチェックボックスのid を設定します。 |
GitHubでこのページを編集する