Inkompatible Eigenschaften

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
Beste Vorgehensweisen Auswirkung – Kritisch

Ansichten sollten keine widersprüchlichen Zugänglichkeitsmerkmale aufweisen.

Diese Regel setzt eine bewährte Methode durch, die unter Apples UIKit Accessibility Traits definiert ist. Sie können diese Regel über das Mobile Dashboard deaktivieren oder indem Sie die Regel in für iOS geschriebenen Tests ignorieren.

Erfahren Sie, wie Sie Regeln im Mobile Dashboard deaktivieren.

Auswirkung

Am stärksten betroffen sind Benutzer von VoiceOver und Switch Control. Konfliktierende Eigenschaften können dazu führen, dass Navigationsgesten in assistiven Technologien nicht mehr reagieren. Aufgrund einer fehlerhaften Eigenschaft kann die Rolle eines Bedienelements falsch an den Benutzer weitergegeben werden.

Bestätigung

  1. VoiceOver aktivieren
  2. Fokussieren Sie das Element
  3. Eines der folgenden Ereignisse wird eintreten:
    • Nicht zugänglich: VoiceOver gibt zwei widersprüchliche Rollen an (z. B. „Schaltfläche“ und „Link“)
    • Nicht zugänglich: Eine VoiceOver-Navigationsgeste funktioniert nicht mehr (wie etwa die gleichzeitige Verwendung von „Heading“ und „Adjustable“)
    • Zugänglich: Alle Rollen sind sinnvoll und Navigationsgesten funktionieren wie vorgesehen.

So beheben Sie das Problem

Eine falsche Auswahl der Accessibility Traits führt zu einem Problem, das von dieser Regel erkannt wird. Weitere Informationen zu Accessibility Traits finden Sie in der Dokumentation von Apple für UIKit oder SwiftUI.

UIKit

Im Storyboard:

  1. Wählen Sie das Zugänglichkeitselement mit widersprüchlichen Zugänglichkeitsmerkmalen aus.
  2. Stellen Sie sicher, dass das Inspektorfenster sichtbar ist.
  3. Wählen Sie den Identitätsinspektor aus.
  4. Unter „Barrierefreiheit“ gibt es eine Kategorie namens „Eigenschaften“. Deaktivieren Sie das Kontrollkästchen der Zugänglichkeitseigenschaft, das einen Konflikt verursacht.

Im Code:

  • Entfernen Sie das widersprüchliche Barrierefreiheitsmerkmal. Beispielsweise kann eine Schaltfläche über die folgenden Barrierefreiheitsmerkmale verfügen:
button.accessibilityTraits = [.button, .link]

Die Schaltfläche sollte, abhängig vom Kontext der Schaltfläche, nur über eines davon verfügen. In diesem Fall war „Link“ das Konfliktobjekt. Um eine Schaltfläche als Link zu verwenden, entfernen Sie die Schaltflächeneigenschaft für das gewünschte Verhalten.

button.accessibilityTraits = .link

SwiftUI

Achten Sie beim Aktualisieren der Zugänglichkeitsmerkmale darauf, dass jedes Merkmal die ordnungsgemäße Verwendung des Steuerelements widerspiegelt. Wenn beispielsweise eine Schaltfläche einen Link nachahmt, entfernen Sie das standardmäßige Zugänglichkeitsattribut „Schaltfläche“ und fügen das Attribut „Link“ hinzu.

    var body: some View {
        Button(action: { openLink() },
               label: {
            Text("Visit this Site!").padding()
        })
        .accessibility(addTraits: .isLink)
        .accessibility(removeTraits: .isButton)
    }

React Native

Es ist nicht zu erwarten, dass diese Regel bei React Native-Ansichten fehlschlägt. React Native erlaubt nur das Hinzufügen eines Elements zur accessibilityRole Eigenschaft.

Tipp: Um ein gutes Erlebnis zu bieten und Best Practices zu befolgen, verwenden Sie die accessibilityRole Eigenschaft mit dem Wert, der das erwartete Verhalten des Elements genau beschreibt. Beispiel: Passen Sie den accessibilityRole eines Buttons auf Link an, wenn diese sich wie ein Link verhält.

<Button
  title={'Learn more about axeDevTools'}
  accessible={true}
  accessibilityElementsHidden={false}
  accessibilityRole='link'
  onPress={goToLink}
/>