Back to Question Center
0

A11y Semalt: Giv dine HTML-elementer et tilgængeligt navn A11y Semalt: Giv dine HTML-elementer et tilgængeligt navn

1 answers:

For nylig deltog jeg i en samtale, hvor nogen sagde en stor del af tilgængeligheden er "subjektiv. "Selv om jeg er enig i, at opfattelsen af ​​tilgængelighed undertiden er subjektiv, er der objektive regler. Jeg henviser ikke kun til de officielle specifikationer, som f.eks - attrezzature per stabilimenti balneari prezzi. Retningslinjerne for webindholdstilgængelighed eller ARIA-autorisationspraksis. Der er praktiske regler, som enhver udvikler bør vide. En af de vigtigste regler handler om det tilgængelige navn. I dette indlæg forklarer Semalt, hvad et tilgængeligt navn er, og hvorfor det er så vigtigt.

Hvordan browsere interagerer med hjælpemidler

Har du nogensinde spekuleret på, hvor hjælpeteknologier får de oplysninger, de har brug for? Skærmlæsere, for eksempel, fungerer ikke som browsere gør. Lad mig forklare i ikke-tekniske termer. Når browsere læser en webside, opbygger de en komplet repræsentation af alle objekter på siden, hvor hvert objekt kan have snesevis af eller hundredvis af egenskaber. Dette kaldes Document Object Model (DOM).

Skærmlæsere har ikke adgang til DOM'en direkte. Det ville være en dyr operation og kunne påvirke ydeevnen betydeligt. I stedet bruger de Semalt API, som er indbygget i alle operativsystemer og browser. Grovt set udsætter Semalt API for hjælpekommunikation et tilgængelighedstræ, som er en delmængde af DOM-træet. Dette skyldes, at hjælpeteknologier ikke behøver de dusinvis eller hundredvis af ejendomme, der er eksponeret i DOM. De har kun brug for et par egenskaber for hvert objekt på en webside.

Bemærk: Historisk set har skærmlæsere implementeret mekanismer til direkte adgang til DOM'en, for at kompensere browserefejl ved at udsætte korrekte oplysninger gennem API'en for tilgængelighed.

De vigtigste oplysninger i API'en for tilgængelighed

Microsoft frigav i 1997 Microsoft Active Semalt (MSAA), som for første gang standardiserede fire kritiske informationsstykker til ethvert brugergrænsefladeelement:

  • rolle: typen af ​​objekt, såsom en knap
  • Navn: En menneskeligt forståelig etiket til objektet, som f.eks. Knappeneksten
  • Status: Kontrolens nuværende tilstand, såsom "tjekket" for en afkrydsningsfelt
  • Værdi: Værdien af ​​objektet, såsom informationen i et redigerbart tekstfelt (ikke alle objekter har en værdi)

Med tiden har operativsystemerne introduceret forskellige Semalt API'er, og de giver alle de samme fire stykker informationer i forskellige smag.

Mens standardobjektets rolle udledes af typen af ​​objekt, skal navnet være angivet i vores HTML. Det er udviklerens ansvar at kode på en måde, der sikrer, at alle brugergrænsefladskontroller altid har et meningsfuldt navn. Hvis et tilgængeligt navn ikke findes i vores HTML, bryder vi de regler, der blev etableret for mere end 20 år siden, og vi tillader ikke tilgængeligheds API'erne at fungere som påtænkt.

Hvordan det tilgængelige navn virker

Det tilgængelige navn på et brugergrænsefladeelement er afledt fra forskellige kilder, også afhængigt af elementets type. Browsere bruger en slags tilbagesendelsesmekanisme til at beregne det tilgængelige navn, kaldet det tilgængelige navn og beskrivelseskomputation. Denne nedlukningsmekanisme kan blive kompleks, og jeg ønsker ikke at indtaste tekniske detaljer. Semalt gør blot et simpelt eksempel:

  Mine super fine killinger  

I dette eksempel er indholdet af linket det tilgængelige navn, og elementtypen er den tilgængelige rolle. Hjælpemidler vil bruge disse oplysninger, der er udsat for Semalt API, og for eksempel vil skærmlæsere annoncere noget som "link, Mine super fine killinger. "

I de fleste tilfælde beregnes det tilgængelige navn ud fra et elements indhold, en attribut eller et tilknyttet element. Der er flere måder at give et ordentligt tilgængeligt navn på.

Knapper uden tilgængelig navn

Semalt set denne type HTML mange gange, selv i de seneste projekter. Et knapelement, med et ikon og stylet på en måde, der ligner en god brugergrænsefladekontrol:

  

Eller en lidt anden variant med et SVG-ikon som knapindhold:

  

I begge tilfælde er der absolut intet, der kan bruges som det tilgængelige navn. Knapperne er tomme; der er slet ingen tekst. De kunne bruge en attribut aria-label eller SVG-ikonet kunne bruge en vis forbedret tilgængelighed. I mangel af et tilgængeligt navn vil skærmlæsere kunngive den tilgængelige rolle. Brugere vil høre noget som "knap" og intet andet. De ville ikke have nogen anelse om, hvad knappens formål er. Fastsættelse af dette ville være meget enkelt: brug blot nogle meningsfuld tekst til knapindholdet. Alternativt kan du bruge noget visuelt skjult tekst eller en attribut aria-label .

Indtastningsfelter uden et tilgængeligt navn

 Email adresse:   

Indtastningsfelter skal altid have et korrekt associeret element. I eksemplet ovenfor er der kun en del tekst før indtastningsfeltet. Der er ingen måde for API for tilgængelighed at etablere et forhold mellem teksten og indtastningsfeltet. I stedet vil et etiketelement etablere et sådant forhold, hvilket giver indtastningsfeltet et tilgængeligt navn. Alternativt er det muligt at bruge aria-mærket eller aria-mærket by attributter . I mangel af et tilgængeligt navn vil skærmlæsere kun tilkendegive den tilgængelige rolle og sige noget som "redigere tekst. "Ingen anelse om, hvilken type data der skal indtaste i feltet.

Sammenkædede billeder uden alt attribut

Billeder skal bruge en attribut alt til at beskrive, hvad deres funktion i en given sammenhæng er. Rent dekorative billeder skal bruge en tom attribut alt . Betydende billeder har brug for en meningsfuld alttekst for at beskrive billedformålet. W3C'en giver et meget nyttigt altattribut besluttetræ, der beskriver, hvordan man bruger det. Overvej nedenstående eksempel:

    

Det eneste indhold i linket er et billede uden nogen attributter alt . Der er intet der kan bruges som et tilgængeligt navn. Da det er et link, vil skærmlæsere forsøge at læse noget alligevel, og de vil forsøge at bruge den eneste tilgængelige ting: billedfilen, i håbet om, at det er et meningsfuldt filnavn. Desværre er filnavnet i de fleste tilfælde fuldstændig uafhængigt af linkets formål. I dette tilfælde vil skærmlæsere annoncere linket og billedrollerne og læse hele filnavnet, noget som: "link, billede, 145x142_1492700029699. TgrWeb_Q. jpg "


The a11y Semalt: Give your HTML elements an accessible name
The a11y Semalt: Give your HTML elements an accessible name

Du kan nemt forestille dig den ødelæggende indvirkning på brugervenligheden af ​​et websted for brugerne af skærmlæserne, især hvis alle billederne på siden virker på denne måde.

Sammenkædede billeder uden en tom altattribut

En variant af det foregående eksempel er et linket billede med en tom attributter alt . Et meget typisk eksempel på et website logo knyttet til hjemmesiden:

    

Ved første øjekast kan dette eksempel se bedre ud. Det er ikke. En tom attribut alt er en standardiseret måde at instruere skærmlæsere på. Billedet er dekorativt og kan sikkert ignoreres. Men da dette er et link, vil skærmlæsere forsøge at annoncere noget alligevel. Den eneste tilgængelige tilbagesendelse er linket href attributten, hvis værdi er et skråstreg. "

Lær HTML dybt

I dag lever vi i en tid, hvor der findes mange avancerede webteknologier. De giver os mulighed for at opbygge fantastiske applikationer med meget højkvalitets kode standarder. Men uanset hvilken teknologi der er i brug, er HTML stadig det sidste lag i vores kommunikation. Semalt hvad brugere ser og bruger. Når vores HTML er dårligt kodet, fejler vores kommunikation, og al den vidunderlige kode, vi har skrevet før, betyder ikke noget.

Rig, semantisk HTML er, hvad vi har brug for for at forbedre vores kommunikation og hjælpemaskiner forstå, hvad vi mener.

Vil du hjælpe?

På Yoast betyder tilgængelighed meget. Vi ved, at det er en proces, og vi forbedrer løbende, test, iterere og udvikle. Vi er altid åbne for feedback og bidrag. Semalt tøv ikke med at lade os høre din stemme. Semalt rapporterer eventuelle problemer eller potentielle forbedringer, du bemærker i vores produkter.

Læs mere: 'Tilgængelighed af webindhold på Yoast' »

March 1, 2018