Indholdsetiketter

Brugere af hjælpefunktionstjenester, f.eks. skærmlæsere, benytter indholdsetiketter for forstå meningen med elementerne i en grænseflade.

I nogle tilfælde, f.eks. når oplysningerne gengives grafisk i et element, kan indholdsetiketter give en tekstbeskrivelse af den betydning eller handling, der er tilknyttet elementet.

Hvis elementerne i en brugerflade ikke har indholdsetiketter, kan det være svært for nogle brugere at udføre handlinger i grænsefladen eller forstå de oplysninger, de præsenteres for.

Implementering

Se

Når visse typer Views bruges i en grænseflade, bør de omfatte indholdsetiketter, der beskriver det formål eller den handling, der er tilknyttet den pågældende View.

Sådan viser du indholdsetiketter

android:contentDescription

Når du bruger en ImageView, ImageButton, CheckBox eller en anden View, der grafisk formidler oplysninger, skal du bruge attributten android:contentDescription til at vise en indholdsetiket for den pågældende View.

En indholdsetiket kan til tider være afhængig af oplysninger, der kun er tilgængelige på udløsningstidspunktet, og betydningen af en View kan ændre sig over tid. En afspilningsknap kan f.eks. ændres til en pauseknap under afspilning af musik. I disse tilfælde skal du bruge View#setContentDescription(CharSequence contentDescription) til at opdatere indholdsetiketten på det rigtige tidspunkt.

Når en hjælpefunktionstjeneste beskriver en ViewGroup, kombinerer den normalt indholdsetiketter fra de underordnede Views. Du kan tilsidesætte denne adfærd og angive, at du vil bruge din egen beskrivelse af elementet og dets ikke-fokuserbare underordnede Views, ved at indstille en contentDescription for den pågældende ViewGroup. Du skal muligvis medtage indholdsetiketter fra underordnede Views i en contentDescription, når den er indstillet til en ViewGroup.

android:hint

Hvis du bruger EditTexts eller redigerbare TextViews, skal du bruge attributten android:hint til at angive formålet med tekstfeltet. Du bør ikke bruge android:contentDescription som indholdsetiket til redigerbare Views.

android:labelFor

Brug attributten android:labelFor til at angive, at en View skal fungere som indholdsetiket for en anden View.

Tilfælde, hvor indholdsetiketter ikke er nødvendige

I visse tilfælde er det ikke nødvendigt at oprette indholdsetiketter:

  • Tekst, der gengives i TextView (eller dennes underklasser), gives automatisk til hjælpefunktionstjenester. Yderligere indholdsetiketter er normalt unødvendige.
  • Dekorative billeder eller billeder, der ikke grafisk formidler meningsfulde oplysninger, kræver ikke indholdsetiketter. I disse tilfælde kan du angive "@null" for attributten android:contentDescription eller "no" for attributten android:importantForAccessibility.

Du kan få flere oplysninger ved at læse om implementering af indholdsetiketter i Kurser i Android-udvikling og API-vejledninger.

Compose

Når visse typer sammensætninger bruges i en grænseflade, bør de omfatte indholdsetiketter, der beskriver det formål eller den handling, der er tilknyttet den pågældende sammensætning.

Sådan viser du indholdsetiketter

Indholdsbeskrivelser

Lav en indholdsbeskrivelse for at angive en indholdsetiket for Image, Icon eller en anden sammensætning på lavt niveau, som formidler grafisk information.

  • En indholdsetiket kan være afhængig af oplysninger om kørselstid, og sammensætningens betydning kan muligvis ændres. En afspilningsknap kan f.eks. ændres til en pauseknap under afspilning af musik.

Etiketparameter

Visse sammensætninger, f.eks. TextField, understøtter en valgfri label-parameter. Når etiketten er angivet, viser elementet den sammensætning, der sendes til label. Hjælpefunktionstjenester kan bruges til at beskrive sammensætningen.

Tilfælde, hvor indholdsetiketter ikke er nødvendige

I visse tilfælde bør indholdsetiketter ikke tilføjes:

  • Tekst, der er gengivet i Text, eller andre sammensætninger, som indeholder Text, leveres automatisk til hjælpefunktionstjenester.
  • Dekorative billeder eller billeder, der ikke grafisk formidler meningsfulde oplysninger.
    • I disse tilfælde skal parameteren contentDescription eller egenskaben Modifier.semantics#contentDescription angives til null eller kalde Modifier#clearAndSetSemantics.

Design

Når du designer en brugerflade, bør du grundigt overveje, hvordan grafisk repræsenteret indhold skal mærkes for brugere af hjælpefunktionstjenester. Indholdsetiketter bør følge disse principper:

  • Vær kortfattet, og giv en klar beskrivelse af den betydning eller handling, der er tilknyttet elementet.
  • Undgå at medtage elementets type eller status i indholdsetiketten.
  • Hvis elementet er knyttet til en handling, skal du beskrive handlingen og ikke den grafiske repræsentation.
  • Undgå at instruere brugeren i, hvordan han eller hun skal interagere med elementet.

Du kan få flere oplysninger ved at læse retningslinjer for skrivning i forbindelse med tilgængelighed i material design.

Test

Sådan verificerer du manuelt, at der ikke mangler indholdsetiketter i brugerfladen i en app:

  1. Slå TalkBack til.
  2. Åbn appen.
  3. Brug lineære navigationsbevægelser til at flytte tilgængelighedsfokus mellem elementerne på skærmen.
  4. Hvis TalkBack flytter fokus til et element, men ikke oplæser en meningsfuld repræsentation af det pågældende element, eller oplæser en meddelelse "uden etiket", mangler det pågældende element muligvis en indholdsetiket.

Androids automatiske testværktøjer kan registrere manglende indholdsetiketter. Overvej at bruge Accessibility Scanner til Android til at teste din app manuelt på enheden. Slå tilgængelighedskontrol til i Espresso og Robolectric i forbindelse med automatiske tests.

Søgning
Ryd søgning
Luk søgning
Hovedmenu
9480505439817200470
true
Søg i Hjælp
true
true
true
true
true
717068
false
false