Jetpack Compose Academy · Lektion

Semantics og testtags

Gør brugerfladen testbar og tilgængelig.

Lektion 3 af 413 trin

Semantics og testtags er en gratis Jetpack Compose Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Jetpack Compose Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.

Semantikkens træ

Compose bygger et semantiktræ ved siden af det visuelle træ. Det beskriver, hvad hvert element betyder, og det er præcis det, som både tests og skærmlæsere læser.

Hvorfor semantik er vigtig

Hvis en node ikke har nogen betydning i træet, kan findere ikke nå den, og TalkBack kan ikke annoncere den. God semantik gør din app både testbar og tilgængelig. ♿

Indholdsbeskrivelser giver betydning

Ikoner og billeder indeholder ingen tekst, så giv dem en contentDescription. Den føjer oplysninger til semantiktræet, så tests kan finde dem, og skærmlæsere kan beskrive dem.

Icon(Icons.Default.Add,
    contentDescription = "Add item")

Når teksten ikke er entydig

Nogle gange deler mange noder den samme tekst, så en tekstfinder bliver forvirret. Du har brug for et stabilt håndtag, der ikke afhænger af den synlige etiket.

Introduktion til testTag

Et testTag er en usynlig identifikator, som du tilknytter med en Modifier. Det giver en node et entydigt navn til tests uden at påvirke dens udseende.

Box(Modifier.testTag("avatar"))

Find efter tag

Når noden er mærket, finder du den med onNodeWithTag. Det fungerer stabilt, selv når teksten ændres mellem sprog eller tilstande.

composeTestRule.onNodeWithTag("avatar")
    .assertIsDisplayed()

Hurtig kontrol

Flere knapper har etiketten Done, så en tekstfinder er tvetydig. Hvad giver én knap et entydigt, usynligt håndtag til tests?

Tags kontra beskrivelser

Hold dem adskilt: contentDescription er til rigtige brugere, mens testTag kun findes til tests. Brug ikke den ene til at udføre den andens opgave.

Semantik-modifikatoren

Hvis du vil have fuld kontrol, lader semantics-modifikatoren dig angive tilpassede egenskaber, f.eks. at markere en node som en overskrift for tilgængelighedsværktøjer.

Modifier.semantics { heading() }

Sammenfletning af efterkommere

Compose kan sammenflette en forælder og dens børn til én node med mergeDescendants. Så bliver en hel række annonceret som én samlet og letforståelig enhed.

Modifier.semantics(mergeDescendants = true) {}

Udskriv træet til fejlfinding

Sidder du fast på grund af en manglende node? Kald printToLog på roden for at udskrive hele semantiktræet, og se derefter præcis, hvad du kan matche.

rule.onRoot().printToLog("TREE")

Design til testbarhed

Når du tilføjer tydelige beskrivelser og tags under opbygningen, skriver dine tests næsten sig selv. Tilgængelige og testbare apps vokser ud af de samme vaner.

Opsummering: Semantik og tags

Semantiktræet understøtter både test og tilgængelighed. Brug contentDescription til brugere og testTag til tests, så din brugerflade er nem at kontrollere. 🌳

Gratis at komme i gang

Lær Kotlin med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Semantics og testtags” gratis?

Ja — hele teksten til “Semantics og testtags” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Jetpack Compose Academy-kurset, skal du opgradere til CoddyKit PRO. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Semantics og testtags”?

Gør brugerfladen testbar og tilgængelig. Du øver dig i Jetpack Compose Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Jetpack Compose Academy?

Der kræves ingen tidligere erfaring. Jetpack Compose Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Semantics og testtags”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Jetpack Compose Academy-lektion?

Ja. Alle Jetpack Compose Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. createComposeRule og finders
  2. Assertions og udførelse af handlinger
  3. Semantics og testtags
  4. Test af ViewModels og flows
← Tilbage til Jetpack Compose Academy