チェックボックス名

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

WCAG 2.0 - 4.1.2 A Impact - Serious

すべてのチェックボックス要素には、TalkBackやVoice Accessなどの支援技術に利用可能な名前を設定する必要があります。

影響

このルールによって見つかったアクセシビリティの問題は、TalkBackを利用する人々に最も影響を与えます。

確認

  1. TalkBackをオンにします
  2. コントロールをフォーカスしようとする
  3. 次のいずれかが発生します。
    • 非アクセス可能: TalkBackは値と役割のみを発表します。
    • アクセス可能: 名前と値の両方がTalkBackによって読み上げられます。

修正方法

XML

を利用してコントロールに明示的な名前を提供し、 CheckBox と関連付けてください TextView 要素と。 CheckBox

warning

Text のプロパティを同時に使用することはできません。 ContentDescription

CheckBox checkBox = .......; // Role: CheckBox
TextView label = .......; // Role: Label
label.setLabelFor(checkBox.getId()); // Associate the Checkbox with its Name

Compose

チェックボックスとテキストコンポーネントを Checkbox アクセシビリティの役割を持つ要素内にラップし、コントロールのアクションが親コンポーネントで呼び出せることを確認してください。

Row(modifier = Modifier
    .toggleable(
        value = checkedState,
        enabled = true,
        role = Role.Checkbox,
        onValueChange = { setCheckBoxState(!checkedState) }
    )
    .semantics(mergeDescendants = true) { }
    .constrainAs(labeledTextField) {
        setConstraints(top = parent.top, start = parent.start, end = parent.end)
    }
) {
    Checkbox(
        checked = checkedState,
        modifier = Modifier.padding(16.dp),
        onCheckedChange = null
    )

    Text(text = "Get Marketing emails", modifier = Modifier.padding(16.dp))
}

React Native

注意: React Nativeのチェックボックスコンポーネントは廃止されましたので、サードパーティのチェックボックスコンポーネントを使用する場合、またはカスタムコンポーネントを作成する場合のみ適用されます。

React Nativeでチェックボックスとラベルを組み合わせるには、両方のコンポーネントを TouchableOpacity コンポーネント内にラップできます。

<TouchableOpacity
   style={{flexDirection:'row', alignItems: 'center',}}
   onPress={() => {
     setSelection(!isSelected)
     }
   }
   accessible={true}
   accessibilityLabel={"Do you like React Native?"}
   accessibilityRole='checkbox'>
     <CheckBox
       importantForAccessibility='no-hide-descendants'
       value={isSelected}
       onValueChange={setSelection}
       style={styles.checkbox}
      />
     <Text>Do you like React Native?</Text>
</TouchableOpacity>

これが適切に機能し、支援技術のユーザーと非支援技術のユーザーの両方に必要なコンテキストを提供するために:

  • のビューには TouchableOpacity プロパティをtrueに設定し、グループが支援技術ユーザー向けに一緒にフォーカスされるようにします。 accessible

  • のプロパティは、ラベルのテキストと同じ値に設定してください。 accessibilityLabel コンポーネントの TouchableOpacity

  • コンポーネントの TouchableOpacity を設定して、支援技術ユーザーに適切なコンテキストを提供します。 accessibilityRole checkbox

  • コンポーネントの CheckBox プロパティが importantForAccessibility に設定されていることを確認し、コンポーネントが個別にフォーカスされないようにします。 no-hide-descendants

  • を介して onPress にアクションを追加し、チェックボックスがアクティブ化されたときにその動作を処理します。 TouchableOpacity コンポーネント