Märk upp vanliga formulärfält i koden
Hjälp dina användare att fylla i inmatningsfält genom att i koden ange vilken typ av innehåll som förväntas. Då kan webbläsare eller hjälpmedel ibland automatiskt föreslå inmatning (baserat på till exempel tidigare inmatning i fält av samma typ) i vanliga formulärfält (såsom gatu- och postadress). Systemet kan också ytterligare hjälpa användaren genom att presentera fältet på ett sätt (till exempel med en symbol) som användaren känner igen.
Det är bra för alla användare, men kanske framför allt för personer med vissa kognitiva och motoriska funktionsnedsättningar. Det underlättar också för användare som inte behärskar språket så bra.
Rekommendationer för uppmärkning av formulärfältLänk hit
- Använd attributet
autocomplete
på inmatningsfält. - Beskriv förväntat innehåll med attributet
autocomplete
, om det finns en standardiserad benämning. - Ange
autocomplete=”off”
om det gäller känslig information eller om servern erbjuder ordförslag.
Använd attributet autocomplete på inmatningsfältLänk hit
Vissa webbläsare sparar (lokalt) inmatningar som användaren gör i formulärfält. Tack vare detta kan webbläsaren ge förslag på inmatning när användaren senare hamnar på inmatningsfält som ser ut att ha samma innebörd. Google har gjort uppskattningen att användare blir ca 30% snabbare i utcheckning när autocomplete används.
Webbläsare som har autocomplete aktiverat gör sitt bästa för att förslå relevanta inmatningsförslag. De utgår till exempel från att inmatningsfält (input
-element) med samma värde på attributen id
eller name
har samma typ av innehåll. Men så är inte alltid fallet. Med hjälp av attributet autocomplete
kan du som utformar formuläret förbättra möjligheterna för webbläsaren att ge relevanta förslag.
Beskriv förväntat innehåll med attributet autocomplete
, om det finns en standardiserad benämning
I HTML5-standarden finns en lista med vanliga ändamål för inmatningsfält. Om ändamålet för ditt inmatningsfält finns med i denna standardlista kan du genom att använda rätt benämning se till att de förslag som webbläsaren presenterar för användaren med större sannolikhet är relevanta.
Tanken är att det även ska finnas standardiserade (eller individualiserade) symboler för dessa olika ändamål, som webbläsaren (eventuellt med hjälp av hjälpmedel eller tilläggsprogram) kan presentera för användaren i direkt anslutning till inmatningsfältet. Än så länge känner vi dock inte till någon sådan implementation.
Så här skulle ett inmatningsfält för telefonnummer kunna presenteras.
Standardiserad benämning (används som värde på autocomplete-attribut) | Betydelse | Exempel på inmatning |
---|---|---|
”name” | Fullständigt namn | Sir Timothy John Berners-Lee, OM, KBE, FRS, FREng, FRSA |
”given-name” | Förnamn | Timothy |
”additional-name” | Mellannamn | John |
”family-name” | Efternamn | Berners-Lee |
”nickname” | Skärmnamn | Tim |
”organization-title” | Titel | Professor |
”username” | Användarnamn | timbl |
”new-password” | Nytt lösenord (inmatningsfält där användaren ska hitta på ett lösenord.) | GUMFXbadyrS3 |
”current-password” | Aktuellt lösenord (vid inloggning) | qwerty |
”organization” | Namn på företag eller organisation | World Wide Web Consortium |
”street-address” | Gatuadress (kan ha flera rader) | 32 Vassar Street MIT Room 32-G524 |
”address-level1” | Postort | MA |
”country” | Landkod | SE |
”country-name” | Land | Sverige |
”postal-code” | Postnummer | 113 00 |
”cc-name” | Namn på kreditkort | Tim Berners-Lee |
”cc-number” | Kreditkortsnummer | 4114360123456785 |
”cc-exp” | Giltighetsdatum för kreditkort (Expiration date) | 2014-12 |
”cc-exp-month” | Månad i sista giltighetsdatum för kreditkort | 12 |
”cc-exp-year” | Årtal i sista giltighetsdatum för kreditkort | 2014 |
”cc-csc” | Säkerhetskod (CVV) på baksidan av kreditkort | 419 |
”cc-type” | Typ av kreditkort (eller annat betalningsmedel) | Visa |
”transaction-currency” | Valutakod | SEK |
”transaction-amount” | Penningbelopp | 401 |
”language” | Språkkod | sv |
”bday” | Födelsedatum | 1955-06-08 |
”bday-day” | Födelsedatum – dag i månaden | 8 |
”bday-month” | Födelsedatum – månad | 6 |
”bday-year” | Födelseårtal | 1955 |
”sex” | Kön | Male |
”url” | Webbadress | https://www.w3.org/People/Berners-Lee/ |
”photo” | Foto | https://www.w3.org/Press/Stock/Berners-Lee/2001-europaeum-eighth.jpg |
<kontaktväg> “tel” | Telefonnummer | +46 8 678 55 00 |
<kontaktväg> ”tel-country-code” | Plustecken följt av landkod i telefonnummer | +46 |
<kontaktväg> ”tel-national” | Telefonnummer inklusive riktnummer men utan landkod | 08-678 55 00 |
<kontaktväg> ”email” | E-postadress | timbl@w3.org |
<kontaktväg> ”impp” | chat-adress | irc://example.org/timbl,isuser |
<kontaktväg> betyder att det går att specificera om det gäller hem (“home
”), arbete (“work
”), mobiltelefon (“mobile
”), fax (“fax
”) eller personsökare (“pager
”) genom att inleda autocomplete-attributet med motsvarande kod.
Ange autocomplete=”off”
om det gäller känslig information eller om servern erbjuder ordförslag
Det är olämpligt med inmatningsförslag för inmatningsfält som kan innehålla känslig information. Risken är ju att en person som ser “över axeln” på användaren råkar få veta vad användaren tidigare matat in i liknande fält.
Det är onödigt med inmatningsförslag för inmatning som enbart ska göras en gång (till exempel engångskoder för inloggning).
Om webbservern erbjuder förslag på inmatning, baserat på information som inte hämtas från användarens webbläsare utan från en databas (se Ge ordförslag vid sökning och inmatning (R112)) så är det oftast olämpligt att även webbläsaren ger ordförslag.
I samtliga dessa fall bör värdet “off” anges i attributet autocomplete.
ExempelLänk hit
Google har publicerat en stor formulärsida som använder autocomplete
på nästan alla inmatningsfält. Observera dock att de inte till 100% följer standarden. Istället för “given-name
” används “fname
”, och istället för “family-name
” används “lname
”. Detta är inte helt ovanligt, av någon anledning.
Här är exempel på hur det autocomplete kan se ut i kod:
<form >
<input autocomplete="transaction-currency" value="SEK">
<input autocomplete="transaction-amount" value="15.00">
<p><label>Kreditkortsnummer:
<input type="text" autocomplete="cc-number"></label>
<p><label>Kortet giltigt till:
<input type="month" autocomplete="cc-exp"></label>
<p><input type="submit" value="Fortsätt...">
</form>
Utdrag från WCAG-standardenLänk hit
Riktlinje 1.3 Anpassningsbart: Skapa innehåll som kan presenteras på olika sätt (exempelvis med enklare layout) utan att information eller struktur går förlorad.
1.3.5 Identify Input Purpose The purpose of each input field collecting information about the user can be programmatically determined when:
- The input field serves a purpose identified in the Input Purposes for User Interface Components section; and
- The content is implemented using technologies with support for identifying the expected meaning for form input data.
(Nivå AA)
TerminologiLänk hit
Prediktiv textinmatning eller autocomplete på engelska innebär att systemet eller webbsidan baserat på pågående textinmatning kan komma med förslag på fortsättning av inmatningen.
I Skatteverkets tjänst flyttanmälan används autocomplete för att föreslå bland annat gatuadress.
Detta underlättar för den som ska fylla i till exempel sökrutor eller formulär. Funktionen är vanlig och hjälpsam i sökfunktioner där den ger användaren ordförslag vid inmatningen R112.
Kommentarer till denna riktlinje
Kommentarer (2)
Hej,
Gällande postort är det inte address-level2? Då address-level1 hänvisar till provins eller stat.
Från MDN:
”address-level2”
The second administrative level, in addresses with at least two of them. In countries with two administrative levels, this would typically be the city, town, village, or other locality in which the address is located.
”address-level1”
The first administrative level in the address. This is typically the province in which the address is located. In the United States, this would be the state. In Switzerland, the canton. In the United Kingdom, the post town.
Källa:
https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete, (2021-03-18)
Det jag tänker på om du exempelvis i Chrome eller Edge Chromium fyller i postort så visas inte detta i auto-complete med address-level1, fungerar dock med address-level2.
Det finns tyvärr, som vanligt, utrymme för tolkning av specifikationen. Enligt avsnitt 4.10.18.7 i HTML 5.2-specifikationen är
address-level1
”den vidaste administrativa nivån i adressen”. Föraddress-level2
står att den är ”den andra administrativa nivån i adresser med två eller flera administrativa nivåer”. I Sverige är postorten den vidaste administrativa nivån i en adress, eftersom vi inte specificerar län i våra adresser. Nivå två skulle då vara gatuadress, postlåda, boxadress eller liknande.Att Blink-baserade webbläsare som Chrome och Edge anser att ort är nivå 2 beror troligen på att de är amerikanska produkter. I USA är delstaten den vidaste nivån i adresser.
Det vore intressant att höra fler åsikter om hur den här delen av HTML-standarden ska tolkas för svenskt vidkommande.
Skriv kommentar
Funktionen för att skriva kommentarer använder kakor. Läs mer om kakorna. Enbart förstapartskakor används. Vill du inte godkänna kakor så kan du ställa in din webbläsare att blockera dem. Funktionen går ändå att använda men den kommer då att ställa vissa frågor om och om igen, och kan inte förhandsvisa dina kommentarer.
För att kunna erbjuda denna funktion behöver vi lagra de uppgifter som du själv skriver in (namn, e-post, eventuell webbadress och själva kommentaren) samt IP-nummer. Den rättsliga grunden är samtycke och informationen ligger kvar så länge DIGG bedömer att den tillför förståelse för riktlinjen, eller tills du begär att den raderas. Läs mer om DIGGs behandling av personuppgifter.