Struktur
Styling
Tilgængelighed
Håndtering af data
Øvelser
Struktur
Styling
Tilgængelighed
Håndtering af data
Øvelser
I denne uge
Forms i HTML
De driver internettet (interaktion)
login, køb, kontakt, søgning, tilmelding osv.
De påvirker bundlinjen
De er komplekse i praksis
De er allestedsnærværende
osv.
De er grænsefladen mellem mennesker og systemer. Hvis vi laver dem dårligt, mister vi data, brugere og tillid.
Sikre sig, at de rigtige data er angivet
Standardiseret
Vi stiller ingen spørgsmål, vi udfylder bare formularen
Papirblanketten viser, at vi altid har haft brug for struktur og overskrifter. I webformularer handler det bare om at omsætte de samme principper til kode – men med ekstra fordele som autofyld, validering og tilgængelighed.
Sæt jer sammen med sidemakkeren...
Login
Search
Facebook post
Checkout
<label><label>form lingo
<form>
</form><form>
<label>Label</label>
</form><form>
<label>Label</label>
<input>
</form><form>
<label>Label</label>
<input>
<p>Error message</p>
</form><form>
<label>Label</label>
<input>
<p>Error message</p>
<button>Submit button</button>
</form><form>
<label>Label</label>
<input>
<p>Error message</p>
<button>Submit button</button>
</form>->
"secret"
<input type=" ">text
number
radio
checkbox
tel
date
<input type=" ">text
number
radio
checkbox
tel
date
Enkelt linje tekstfelt (standard)
<input type=" ">text
number
radio
checkbox
tel
date
Numre/cifre
<input type=" ">text
number
radio
checkbox
tel
date
<input type=" ">text
number
radio
checkbox
tel
date
Radioknap
<input type=" ">text
number
radio
checkbox
tel
date
Afkrydsningsfelt
<input type=" ">text
number
radio
checkbox
tel
date
Telefonnummer
<input type=" ">text
number
radio
checkbox
tel
date
Dato
Vælg din favorit
Vælg toppings
<input type="checkbox">
<label>Accept terms</label><input type="checkbox">
<label>Accept terms</label><label>
<input type="checkbox">
Accept terms
</label>vs.
øvelse 1
Sæt de rigtige typer på hvert input-felt
(Lad den være åben)
Label ↔ Input
Dette gør feltet tilgængeligt for skærmlæsere og giver brugeren en større klik-flade, da man kan klikke på <label> for at fokusere input-feltet.
Label ↔ Input
<input type="checkbox" id="my-id">
<label for="my-id">Whole row</label><label for="my-id">
<input id="my-id" type="checkbox">
Whole row
</label>øvelse 2
Brug for og id til at forbinde de respektive labels og input-felter
og skærmlæsere
HTML
<header>
<search>
<nav>
<main>
<article>
<aside>
<footer>vs.
<div class="list">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
</div><ul class="list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>vs.
<div class="article">
<div>Artikel Titel</div>
<div>Skrevet af Forfatter</div>
<div>Artikel indhold her...</div>
</div><article>
<header>
<h1>Artikel Titel</h1>
<p>Skrevet af Forfatter</p>
</header>
<p>Artikel indhold her...</p>
</article>vs.
<div class="nav">
<a href="/">Home</a>
<a href="/about">about</a>
<a href="/contact">Contact</a>
</div><nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</nav>Når flere inputs hører sammen (fx radioknapper eller checkboxes), skal de pakkes i et <fieldset> med en <legend>.
Skærmlæsere forstår, at felterne hører til samme overskift.
<form>
<fieldset>
<legend>
<h3>Choose your favorite superhero</h3>
</legend>
<label for="spiderman">
<input type="radio" id="spiderman">
Spider-man
</label>
...
</fieldset>
<button>Submit</button>
</form>
Alle felter i en formular skal have tilknyttet et unikt navn via name-attributten.
Radios og checkbokse, der hører sammen skal dele navn og have en værdi via value-attributten.
<form>
...
<label for="spiderman">
<input
type="radio"
id="spiderman"
name="superhero"
value="spiderman">
Spider-man
</label>
<label for="spiderman">
<input
type="radio"
id="superman"
name="superhero"
value="superman">
Superman
</label>
...
<button>Submit</button>
</form>
øvelse 3
Tilføj nedenstående HTML-attributter og -tags til den eksisterende form
- fieldset/legend
- name="superhero"
- value
bruges til at identificere felterne i formularindsendelser
nameNogle input-typer deler også det samme navn, hvilket er vigtigt at bemærke, fordi det tillader den samme dataværdi at have flere værdier.
Det, der samles op...
øvelse 4
Brug name til at navngive de respektive input-felter
<form>
<select></select>
<textarea></textarea>
</form>m.fl.
<form>
<label for="message">Besked</label>
<textarea name="message" id="message"> </textarea>
</form>rows, cols, resize etc.
Ligesom tekst-input – bare med flere linjer
start-tag
slut-tag
<form>
<label for="pet-select">Yndlingsdyr</label>
<select id="pet-select" name="pet">
<option value="">--Vælg et dyr--</option>
<option value="dog">Hund</option>
<option value="cat">Kat</option>
</select>
</form>plenum-øvelse
Sæt jer sammen i små grupper og find så mange fejl som muligt. Vi kigger på det i plenum efterfølgende.