Tratti incompatibili

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
Buone pratiche Impatto - Critico

Le viste non dovrebbero avere tratti di accessibilità in conflitto.

Questa regola applica una best practice definita nelle caratteristiche di accessibilità UIKit di Apple. Puoi disattivare questa regola dalla dashboard mobile oppure ignorando la regola nei test scritti per iOS.

Scopri come disattivare le regole dalla dashboard mobile.

Impatto

Le persone più colpite sono quelle che utilizzano VoiceOver e Switch Control. Caratteristiche contrastanti potrebbero causare la mancata risposta dei gesti di navigazione nelle tecnologie assistive. Il ruolo di un controllo potrebbe essere trasmesso all'utente in modo improprio a causa di una caratteristica non corrispondente.

Conferma

  1. Attiva VoiceOver
  2. Metti a fuoco l'elemento
  3. Si verificherà una delle seguenti situazioni:
    • Inaccessibile: VoiceOver annuncerà due ruoli in conflitto (ad esempio "Pulsante" e "Link")
    • Inaccessibile: un gesto di navigazione VoiceOver non funzionerà più (ad esempio l'utilizzo contemporaneamente di "Heading" e "Adjustable")
    • Accessibile: tutti i ruoli hanno senso e i gesti di navigazione funzionano come previsto.

Come risolvere

Una selezione non corretta dei tratti di accessibilità causa un problema riscontrato da questa regola. Per ulteriori informazioni sulle caratteristiche di accessibilità, consulta la documentazione Apple per UIKit o SwiftUI.

UIKit

Nello storyboard:

  1. Selezionare l'elemento di accessibilità con accessibility traits in conflitto.
  2. Assicurarsi che il pannello Inspector sia visibile.
  3. Selezionare L'Ispettore identità.
  4. Nella sezione "Accessibilità" è presente una categoria denominata "Traits". Deselezionare la casella di controllo dell'Accessibility Trait in conflitto.

Nel codice:

  • Rimuovere il tratto di accessibilità in conflitto. Ad esempio, un pulsante può avere i seguenti tratti di accessibilità:
button.accessibilityTraits = [.button, .link]

Il pulsante dovrebbe averne solo uno, a seconda del contesto del pulsante. In questo caso, la parola in conflitto era "link". Per utilizzare un pulsante come collegamento, rimuovere il tratto del pulsante per il comportamento desiderato.

button.accessibilityTraits = .link

SwiftUI

Durante l'aggiornamento delle caratteristiche di accessibilità, assicurarsi che ogni caratteristica rifletta l'uso corretto del controllo. Ad esempio, se un pulsante imita un collegamento, si rimuove la caratteristica di accessibilità predefinita "pulsante" e si aggiunge la caratteristica "collegamento".

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

React Native

Non è previsto che questa regola fallisca nelle visualizzazioni React Native. React Native consente l'aggiunta di un solo elemento alla proprietà accessibilityRole .

Suggerimento: per offrire un'esperienza ottimale e seguire le best practice, utilizza la proprietà accessibilityRole con il valore che descrive accuratamente il comportamento previsto dell'elemento. Esempio: imposta il accessibilityRole di un pulsante su 'collegamento', quando si comporta come un collegamento.

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