Barrierefreiheit-Scanner-Korrektur

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

Verwendet Ihr Team den Android Accessibility Scanner von Google?

Dieser Abschnitt bietet Korrekturratschläge für die von dem Scanner geprüften Regeln. Lesen Sie mehr über die Nutzung von Barrierefreiheit-Scanner und Axe DevTools Mobile.

Besuchen Sie Google's Accessibility Scanner Richtlinien für die vollständige Liste der aktuellen Prüfungen, Beschreibungen und Updates.

Inhaltskennzeichnung

Fehlende Elementbeschreibung

Inhalt innerhalb der Ansicht könnte kontextuelle Informationen fehlen.

Für jede Ansicht, die dem Nutzer Informationen bereitstellt, stellen Sie eines der folgenden Dinge bereit, um dieses Barrierefreiheitsproblem zu lösen:

  • android:contentDescription: In den meisten Fällen reicht es, eine Inhaltsbeschreibung hinzuzufügen.
  • android:hint: Hinweise können hinzugefügt werden, um die Art der Daten zu beschreiben, die der Benutzer in bearbeitbaren Textansichten eingeben sollte.
  • android:labelFor: Dieses Tag ermöglicht es Ihnen, eine Ansicht als Beschriftung für eine andere Ansicht zuzuweisen.
note

In Compose sind die Inhaltsbeschreibung und der Hinweis als Parameter beim Definieren der Ansicht oder über das Modifier-Interface zu finden.

Dekorative Bilder

Dekorative Bilder, die keine wichtigen Informationen liefern, können als nicht wichtig für die Barrierefreiheit markiert werden.

Für XML: android:importantForAccessibility="no"

Oder für Compose:

Image(
      imageVector = Icons.Filled.AccountCircle,
      contentDescription = null // decorative
    )

Element mit Typ oder Zustand beschriftet

Eine Ihrer Ansichten könnte einen redundanten Zustand haben. Android bietet Standardansichten mit Zuständen wie an, aus, markiert oder nicht markiert. Das Hinzufügen eines Zustands zur Ausgabe kann zu einer verwirrenden Erfahrung führen.

Um dieses Barrierefreiheitsproblem zu lösen, stellen Sie sicher:

  • Checkboxen haben ein zugehöriges Label für den Kontext
  • Zustandsbeschreibungen werden nicht zur Beschreibung der Ansicht hinzugefügt
<TextView
      android:id="@+id/edit_text_label"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:labelFor="@+id/example"
      android:text="Check Label" />

<androidx.appcompat.widget.AppCompatCheckBox
      android:id="@+id/example"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/with_text"/>

Doppelte Elementbeschreibungen

Es wurden mehrere Ansichten innerhalb der Hierarchie gefunden, die identische Beschreibungen haben.

Dies ist kein WCAG-Fehler, und es kann Fälle geben, in denen dies erforderlich ist. Wenn Inhaltsbeschreibungen dupliziert werden, stellen Sie sicher, dass jede genügend Kontext bietet, um dem Benutzer mitzuteilen, was das Ergebnis einer Interaktion mit der Ansicht wäre.

Jeder Link sollte genügend Text enthalten, um seinen Zweck zu vermitteln. Bei der Verwendung von Beschreibungen wie „Hier klicken“ müssen Sie sicherstellen, dass der umgebende Text genügend Informationen enthält, um den Zweck des Links zu entschlüsseln.

Implementierung - Klickbare Elemente

Links sollten klar angezeigt und leicht aus dem lokalen Kontextmenü zugänglich sein. Google empfiehlt die Verwendung von URLSpan oder der convenience class Linkify, um Hyperlinks in der Benutzeroberfläche einer App anzuzeigen und die Wahrscheinlichkeit zu erhöhen, dass diese Links erkannt und aktiviert werden.

Doppelte klickbare Ansichten

Eines der klickbaren Elemente in Ihrer Ansicht überlappt sich mit einem anderen klickbaren Element. Sie können dieses Barrierefreiheitsproblem auf eine der folgenden Arten lösen:

  • Verschieben Sie die klickbaren Elemente, damit sie sich nicht berühren oder überlappen.
  • Wenn die Ansichten nicht verschoben werden können, stellen Sie sicher, dass beide Ansichten eine ausreichend große Tippfläche haben und jeder ohne Probleme mit den Elementen interagieren kann.

Beschriftung des bearbeitbaren Elements

Bearbeitbare Felder müssen ein Label haben, das den Zweck des Feldes beschreibt.

Ein Beispiel mit EditText:

<TextView
      android:id="@+id/edit_text_label"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:labelFor="@+id/edit_text"
      android:text="Enter your username" />

<EditText
      android:id="@+id/edit_text"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:hint="Hint" />

Ein Beispiel mit CheckBox:

Verwenden Sie ein TextView und verknüpfen Sie es mit dem CheckBox-Element:

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

Nicht unterstützter Elementtyp

Es scheint, dass Sie eine benutzerdefinierte Ansicht haben. Bearbeiten Sie die AccessibilityNodeInfo, um der className einen geeigneten Zweck für die Ansicht zu geben.

val frameLayout = findViewById<FrameLayout>(R.id.custom_view)
frameLayout.setAccessibilityDelegate(object : View.AccessibilityDelegate() {
      override fun onInitializeAccessibilityNodeInfo(
          host: View,
          info: AccessibilityNodeInfo
      ) {
            info.className = "ClassName"
            info.contentDescription = "ContentDescription"
            super.onInitializeAccessibilityNodeInfo(host, info)           
      }
})

Reihenfolge der Elemente

Wenn Sie Ihre Ansichten mit TalkBack auf eine Art und Weise navigieren können, die kontextuell sinnvoll ist, könnte dies ein Fehlalarm sein und muss nicht bearbeitet werden.

Wenn TalkBack nicht die gleichen Informationen liefert wie das Lesen der App ohne unterstützende Technologie, sollten Sie möglicherweise die Reihenfolge der Ansichten bearbeiten. Da es schwierig sein kann, es richtig zu machen, und es auch zu versehentlichen Endlosschleifen führen kann, raten wir davon ab, die Reihenfolge zu bearbeiten. Um die Reihenfolge zu ändern, verwenden Sie android:accessibilityTraversalBefore und android:accessibilityTraversalAfter.

Textskalierung

Beliebige Textelemente sollten skalierbare Pixel (sp) anstelle von dichteunabhängigen Pixeln (dp) verwenden, um dem Text zu ermöglichen, sich mit der Schriftgrößeneinstellung des Geräts für Barrierefreiheit zu skalieren.

Zielgröße für Berührungen

Für Empfehlungen und Ratschläge zur Behebung von Problemen bezüglich aktiver Steuerungselemente und deren visueller und berührbarer Bereiche, siehe die Regel zur Zielgröße für Berührungen für unsere Android-Bibliothek.

Niedriger Kontrast

Der Farbkontrast zwischen Text und Hintergrund sollte den Mindestschwellenwerten des WCAG 2 AA-Verhältnisses entsprechen. Erfahren Sie mehr über dieses Verhältnis und finden Sie Ratschläge zur Behebung von Problemen mit niedrigem Kontrast unter der Regel für Farbkontrast für unsere Android-Bibliothek.