Hopp til innhold

Ga hver kontroll med bare ikon i grensesnittet et navn for skjermlesere etter å ha funnet at send‑knappen ble lest opp som «arrow up circle, button», og skrev linteren som krever etiketten innen åtte linjer fra ikonet.

alle kontrollelementer med bare ikon, navngitt for skjermlesere

Situasjon. Grensesnittet brukte systemsymboler for kontrollene sine, og et symbol uten tilgjengelighetsetikett leses opp av skjermleseren med sitt eget interne navn. Sendeknappen ble lest opp som «arrow up circle, button». Det samme gjorde alle de andre rene ikonkontrollene i appen, hver på sin måte — sytten av dem beskrev sin egen grafikk i stedet for funksjonen sin.

Oppgave. Hver ren ikonkontroll trengte en etikett som beskriver hva den gjør, og rettingen måtte komme sammen med en sjekk, fordi det neste ikonet som ble lagt til, ellers ville ført feilen inn igjen umiddelbart.

Handling. Hver av de sytten fikk en etikett som navngir handlingen i stedet for formen, og der kontrollens betydning avhenger av tilstand, følger etiketten tilstanden i stedet for å være fast. Sjekken er den delen som er verdt å beskrive, fordi det ikke finnes noen generell «er dette tilgjengelig»-regel for dette. Linteren ser etter konstruksjonen som lager en ren ikonkontroll, og krever deretter en tilgjengelighetsetikett innenfor åtte linjer fra den. Åtte linjer er en bevisst grov heuristikk, og den ble valgt ved måling: den er lang nok til å dekke hver legitim måte kodebasen skriver en slik kontroll med modifikatorene sine på, og kort nok til at en etikett festet til en annen visning lenger ned ikke tilfeldigvis oppfyller den. En presis regel her måtte ha forstått modifikatorkjedene i SwiftUI som et tre, og den billige nærhetsregelen fanger den faktiske feilen — som ikke er en kontroll med feil etikett, men en kontroll uten etikett.

Resultat. Alle de sytten kontrollene oppgir funksjonen sin, og en attende kan ikke legges til uten en etikett. Unøyaktigheten i regelen er reell og står beskrevet der regelen er definert: den kan oppfylles av en etikett på en visning ved siden av, så den beviser at det finnes en etikett i nærheten, ikke at etiketten er riktig, og riktigheten krever fortsatt at noen lytter på den.

Ett stykke av en lengre oversikt — og den ligger i sin helhet her.

Hver oppføring er skrevet på samme måte: situasjonen, oppgaven, hva vi gjorde, og hva som endret seg.

Se hele oversikten