conflicting-type-in-label

Avoid specifying elements' types in their accessible name, particularly when the specified role does not match the actual element type.

Who might be affected
Screen Reader
Voice Control

Description

Elements' accessible names should never contain their type or role designation. This issue becomes more severe when the role specified in the element name does not match its actual type or role. Such a situation may cause ambiguity and confusion regarding the element's purpose, as its exact role is unclear.

Quick Fixes

Ensure that elements' accessible names do not include terms like "button", "link", "tab" or such.

Android (.xml), pass:

1<CheckBox
2 android:id="@+id/exampleId"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content"
5 android:contentDescription="Accept terms of use"
6 android:checked="true" />

Android (.xml), fail:

1<CheckBox
2 android:id="@+id/exampleId"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content"
5 android:contentDescription="Accept terms of use button"
6 android:checked="true" />

How Users Are Affected

Screen reader users may experience confusion or ambiguity regarding the element's purpose and how to operate it. Voice control users will be required to specify the element type redundantly every time they want to activate it.

WCAG Success criteria

This issue might cause elements to fail one or more of the following Success criteria:
1.3.1 Info and Relationships (A)