← Område 2 Uppgift · Projekt 1 Felsökning

Webbutveckling 1 · område 2 · projekt

Projekt 1 – Flersidig ostilad webbplats

En webbplats på minst fyra sidor om ett ämne du väljer själv. Helt utan CSS, semantiskt uppbyggd och validerad utan ett enda fel. Det här projektet sätter betyg.

1. Uppdraget

Du ska bygga en webbplats på minst fyra sidor om ett ämne du väljer själv. Sidorna är länkade till varandra med samma navigation, och innehållet är skrivet med dina egna ord. Någonstans på sajten finns en tabell med data och ett formulär.

Sajten ska vara helt ostilad. Ingen stilmall, inga färger, inga typsnitt. Det är själva poängen med området: HTML säger vad något är, CSS säger hur det ser ut, och de två sakerna ska vara uppenbart olika innan vi slår ihop dem i område 3.

Sajten ska ge noll fel i W3C:s validator. Det blir sista steget i varje uppgift resten av kursen, och det börjar här.

Sajten kommer att se ful ut. Det är rätt

Utan CSS blir bilderna enorma, tabellen en radda text och rubrikerna olika stora. Leta inte efter något att skriva för att fixa det. En sida som ser ostilad ut men har rätt element är exakt vad uppgiften ber om – och i område 3 är det den här sajten du stilsätter.

2. Ämnet

Välj något du kan skriva fyra sidor om utan att slå upp varje mening. En sport, ett spel, en plats, ett hantverk, en musikgenre, en djurgrupp. Ämnet bedöms inte – det som bedöms är strukturen, koden och att texten är din.

Två saker att undvika: ämnen där du bara kan skriva av en encyklopedi, och personer i din närhet. Ingen text, bild eller uppgift om någon annan person utan att den personen vet om det.

Sajten du bygger nu följer med resten av kursen. I område 3 stilsätter du den, i område 4 gör du den mobilanpassad, och i område 6 bygger du in interaktiva moduler i den. Välj ett ämne du står ut med till mars.

3. Kraven

Kryssa av allt eftersom. Kryssen sparas i din webbläsare.

Ska-krav — nivå E

Bör-krav — mot nivå C

Utmaning — mot nivå A

Kryssen sparas i din webbläsare.

4. Tekniska krav

VadSå ska det vara
RepoNytt och publikt. Namnet säger vad sajten handlar om, gemener och bindestreck
Startsidaindex.html i repots rot
FilnamnGemener, bindestreck i stället för mellanslag, ändelsen .html
BilderI mappen bilder/, samma regler för filnamnen
SökvägarRelativa: bilder/karta.svg, kontakt.html. Aldrig inledande snedstreck
Indrag2 mellanslag
Språklang="sv" på varje sida
Teckenkodning<meta charset="utf-8"> som första rad i varje head
CSSIngen alls. Ingen stilmall, inget style-element, inga style-attribut
JavaScriptKrävs inte, och behövs inte till något i den här uppgiften
Valideringvalidator.w3.org, noll fel på varje enskild sida

Så här ser repot ut när du är klar. Filnamnen är dina – index.html är det enda som måste heta som det heter:

bilder/
  ...
index.html
sida-2.html
sida-3.html
sida-4.html
README.md

5. Bedömningsmatris

Så här bedöms sajten, kriterium för kriterium. Matrisen är inte hemlig och den är inte till för slutet – tisdag 29 september går du igenom din egen sajt mot varje rad på lektionen, medan det fortfarande finns tre dagar kvar att göra något åt det.

KriteriumECA
Dokumentets grund Alla sidor har doctype, lang, charset och en title Varje title säger vad just den sidan innehåller. Åäö fungerar överallt, även i filnamn och länkar Entiteter används där de behövs, och du kan förklara skillnaden mellan tecknet och entiteten
Semantisk struktur header, nav, main och footer på varje sida. En h1 per sida section och article används med skäl. Rubriknivåerna hoppar inte, och strukturen syns i indraget Elementvalen är motiverade genomgående. Ingen div där ett semantiskt element finns
Text och länkar Minst tre stycken per sida, en lista, och en navigation som når alla sidor Egna ord med källor i footer. Länktexterna säger vart de går. Aktuell sida markerad med aria-current Ankarlänkar inom en sida, och en sajt som går att ta sig runt i med enbart tangentbord
Bilder och media Minst tre bilder, alla med beskrivande alt Bilder i bilder/, minst en i figure med figcaption, filnamn som beskriver innehållet Formaten är valda medvetet och motiverade. Ljud eller video med track eller transkript
Tabell och formulär En tabell med th och caption. Ett formulär där varje fält har en label med for scope på rubrikcellerna. Flera input-typer och en textarea, samlade i fieldset med legend Rubriker åt båda håll i tabellen. required, pattern och autocomplete använda där de hör hemma
Validering och test Noll fel på varje sida Noll fel och noll varningar. Provad i två webbläsare Du kan läsa ett valideringsfel och säga vad det betyder innan du rättar det
Arbetssätt Koden ligger i det nya publika repot och sajten är publicerad Minst sex commits spridda över arbetspassen, med meddelanden som säger vad du gjorde Du kan förklara varje rad du skrivit, och varför den ser ut som den gör

Ingen rad väger tyngre än någon annan. Ett E på en rad drar inte ned de andra – men en sajt som inte validerar eller inte är publicerad är inte inlämnad, oavsett vad som står i koden.

A handlar inte om mer kod

Ett E kräver varken CSS eller JavaScript, och det gör inte ett A heller. Skillnaden ligger i att elementen du valt är rätt element, och att du kan säga varför du valde dem.

6. Så lämnar du in

  1. Din kod är sparad, committad och synkad till det nya repot.
  2. Sajten är publicerad via GitHub Pages, och du har provat adressen i ett privat fönster där du inte är inloggad.
  3. Länken till det publika repot är inlämnad i itslearning-uppgiften.

Det är repots adress som lämnas in, inte sajtens:

https://github.com/ANVÄNDARNAMN/REPONAMN

Rättningen tittar på koden, inte bara på hur sidorna ser ut, och sajten når man själv därifrån.

Nytt repo betyder ny Pages-inställning

GitHub Pages slås på per repo. Att ditt gamla repo är publicerat hjälper inte det nya. Stegen är desamma som i september: Settings → Pages → Source: Deploy from a branch → Branch: main → Save. Står de i detalj på uppgiftssidan från område 1.

Repot måste också vara publikt. Ett privat repo publicerar ingenting alls och ger 404 för alla utom dig.

7. Kom igång – de tre första sakerna

  1. Bestäm ämnet och vilka fyra sidor sajten ska ha. Skriv rubrikerna på papper först – det tar tre minuter och sparar en timme.
  2. Skapa det nya publika repot på github.com/new. Kryssa i Add a README file, så att repot inte är tomt.
  3. Öppna ett Codespace på det nya repot, skapa index.html och skriv grunddokumentet: doctype, html, head med charset och title, och body.

8. Så ligger tiden

DatumVad som händer
mån 7/9Genomgång: HTML-dokumentets grund. Uppgiften delas ut
tis 8/9Genomgång: semantik, text och länkar
fre 11/9Genomgång: bilder och media
mån 14/9Genomgång: tabeller och formulär
tis 15/9Genomgång: validering och webbläsartest
fre 18/9Arbetspass med handledning
mån 21/9Arbetspass
tis 22/9Arbetspass
fre 25/9Ledig dag. Ingen lektion
mån 28/9Arbetspass
tis 29/9Arbetspass. Avstämning mot bedömningsmatrisen
fre 2/10Sista finputs. Validera, testa i två webbläsare, committa. Deadline 23:59
mån 5/10Prov 1 – kodprov HTML, skriftligt utan dator

Genomgångarna är fem och arbetspassen sex. Du hinner inte bygga hela sajten på arbetspassen om du väntar med allt tills de börjar – börja skriva sidorna redan under genomgångsveckan, och använd arbetspassen till att göra dem rätt.

9. Innan du lämnar in

Gå igenom listan på fredagen den 2 oktober, i den här ordningen. Den sista punkten är den som oftast glöms.

  1. Alla fyra sidorna öppnas från navigationen – provat från varje sida.
  2. Varje sida har en egen title.
  3. Alla bilder har alt, och sökvägarna fungerar på den publicerade adressen.
  4. Tabellen har th och caption.
  5. Varje formulärfält har en label med for.
  6. Ingen CSS någonstans – sök efter style i koden.
  7. Varje sida ger noll fel i validatorn.
  8. Allt är committat och synkat, och syns i repot på github.com.
  9. Adressen fungerar i ett privat fönster.
  10. Repo-länken är inlämnad i itslearning.
Publicerad är inte inlämnad

En sajt som ligger uppe men aldrig lämnades in räknas inte. Klicka Lämna in i itslearning-uppgiften även om du tänker fixa något mer på kvällen.

10. Felsökning

20 rader

SymptomTrolig orsakÅtgärd
Åäö visas som konstiga tecken<meta charset="utf-8"> saknas eller ligger för långt nedDen ska stå först i head, före title
Validatorn: "Start tag seen without seeing a doctype first"Dokumentet börjar inte med <!doctype html>Lägg raden allra överst, före <html>
Validatorn: "Consider adding a lang attribute"lang saknas på html<html lang="sv">
Validatorn: "Duplicate ID"Samma id används två gånger på sidanEtt id får finnas en gång per sida. Döp om det ena
Validatorn: "Element figcaption not allowed here"figcaption ligger utanför sin figureFlytta in den, som första eller sista barn i figure
Validatorn: "Section lacks heading" (varning)En section utan rubrikGe den en rubrik. Har den ingen är det sällan en section
Validatorn hittar hundratals fel på en sidaEn tagg är ostängd tidigt i dokumentetRätta det översta felet och validera om. Ett fel skapar ofta tio
Alla länkar i navigationen ger 404 på webbenVersaler i filnamnenServern skiljer på stort och smått. Gemener i både filnamn och href
Länkarna fungerar hos mig men inte publiceratInledande snedstreck i sökvägenTa bort det: kontakt.html, inte /kontakt.html
Bilden visas som en trasig ikonsrc pekar fel, eller bildfilen är inte committadJämför sökvägen med filträdet, och kontrollera att filen syns i repot på github.com
Bilderna täcker halva skärmenIngenting – sajten har ingen CSSSå ska det se ut här. Storleken sätts i område 3
Tabellen ser ut som en radda text utan linjerIngen CSS. Ramar och linjer är form, inte strukturRätt. th och caption gör tabellen korrekt, inte snygg
Formuläret gör ingenting när jag klickar SkickaDet finns ingen server som tar emotFörväntat. Här bedöms formulärets struktur, inte att det skickas
Klick på texten bredvid fältet gör ingentinglabel saknar for, eller for matchar inget idfor ska vara exakt samma sträng som fältets id
Sidan ser stilad ut fast jag inte lagt till CSSEtt style-attribut ligger kvar, eller så är det webbläsarens standardstilSök efter style i koden. Standardstilen är inte din CSS och ska vara kvar
Rubrikerna blir olika stora på olika sidorDu hoppade från h1 till h3Nivåerna ska följa på varandra. Storleken är standardstilen, inte ett fel
Pages-adressen visar en fillista i stället för sajtenStartsidan heter något annat än index.htmlPages letar efter index.html i repots rot. Döp om filen
404 direkt efter att jag slog på PagesBygget är inte klartVänta en minut och ladda om. Först därefter felsöker du
Läraren ser ett tomt repoDu committade i det gamla repotKontrollera repots namn högst upp i Codespace innan du committar
Mitt Codespace öppnar fel projektDu har ett Codespace per repo, och öppnade det gamlaGå via det nya repots Code → Codespaces