Spring til indhold

Har navngivet alle sytten grænsefladeikoner for skærmlæsere efter at have fundet send‑knappen annonceret som "arrow up circle, button", og har skrevet den linter, der kræver etiketten inden for otte linjer fra ikonet.

Situation. Grænsefladen brugte systemsymboler til sine kontroller, og et symbol uden en tilgængelighedsetiket læses op af skærmlæseren med sit eget interne navn. Send‑knappen blev annonceret som “pil op cirkel, knap”. Det gjorde hver anden kontrol med kun et ikon i programmet også, på sin egen måde — sytten af dem beskrev deres eget billede i stedet for deres funktion.

Opgave. Hver kontrol med kun et ikon havde brug for en etiket, der beskriver hvad den gør, og rettelsen skulle følges af et tjek, for det næste ikon, der blev tilføjet, ville ellers genindføre defekten med det samme.

Handling. Hver af de sytten fik en etiket, der navngiver handlingen frem for formen, og hvor kontrollens betydning afhænger af tilstand, følger etiketten tilstanden i stedet for at være fast. Tjekket er den del, der er værd at beskrive, for en almen regel om “er dette tilgængeligt” findes ikke til dette. Linteren leder efter den konstruktion, der skaber en kontrol med kun et ikon, og kræver derefter en tilgængelighedsetiket inden for otte linjer af den. Otte linjer er en bevidst grov tommelfingerregel, og den blev valgt ved måling: den er lang nok til at spænde over hver legitim måde, kodebasen skriver en af disse kontroller med dens modifikatorer, og kort nok til at en etiket knyttet til en anden visning længere nede ikke ved et uheld opfylder den. En præcis regel her ville skulle forstå SwiftUI’s modifikatorkæder som et træ, og den billige nærhedsregel fanger den faktiske fejl — som ikke er en fejlmærket kontrol, det er en umærket.

Resultat. Alle sytten kontroller annoncerer deres funktion, og en attende kan ikke tilføjes uden en. Reglens upræcished er reel og angivet dér, hvor den defineres: den kan opfyldes af en etiket på en nabovisning, så den beviser, at en etiket findes i nærheden, frem for at bevise at etiketten er korrekt, og korrekthed kræver stadig, at nogen lytter til den.