Content: tekst, lijsten en links
Wanneer je pagina “af” lijkt, maar je tekst onrustig leest
Je krijgt een opdracht in de training: maak een pagina “Oefeningen” met een korte intro, drie stappen die de student moet volgen, en onderaan een link naar “Contact”. Veel beginners zetten alles in één groot tekstblok, of gebruiken <br> om regels te breken. Het ziet er op het eerste gezicht oké uit, maar zodra iemand de pagina scant, met een screenreader navigeert, of je later iets moet aanpassen, voelt het rommelig: regels horen bij elkaar, maar dat zie je niet in de code.
Dit is precies het moment waarop content-HTML belangrijk wordt: tekst, lijsten en links zijn de bouwstenen waarmee gebruikers je inhoud begrijpen. Browsers kunnen pas slim weergeven (en hulpmiddelen kunnen pas goed voorlezen) als jij de bedoeling duidelijk maakt: “dit is een paragraaf”, “dit zijn stappen”, “dit is een verwijzing naar iets anders”.
In de vorige les heb je geleerd om de pagina te organiseren met semantische landmarks zoals <header>, <nav>, <main> en <footer>. In deze les zoom je in op wat je ín <main> zet: leesbare tekst, duidelijke lijsten en links die voorspelbaar werken.
Tekst, lijsten en links: wat bedoelt HTML precies?
In HTML beschrijf je niet hoe iets eruitziet, maar wat iets is. Bij content betekent dat vooral: je kiest het juiste element voor het soort tekst of de relatie tussen items. Drie kernbegrippen:
-
Paragraaf (
<p>): een afgerond tekstblok met één gedachte of stukje uitleg. -
Lijst (
<ul>,<ol>,<li>): meerdere items die inhoudelijk bij elkaar horen, als opties of als stappen. -
Link (
<a href="…">): een verwijzing naar een andere plek (pagina, sectie op dezelfde pagina, bestand, e-mailadres).
Onderliggende principes die je steeds helpen kiezen:
-
Structuur boven styling: witruimte of een kleiner lettertype maak je met CSS, niet met extra
<br>of “spaties”. -
Relaties expliciet maken: als dingen bij elkaar horen (stappen, eisen, menu-opties), encodeer je die relatie als lijst.
-
Toegankelijkheid en voorspelbaarheid: screenreaders, toetsenbordgebruik en zoekmachines varen op semantiek; jouw keuze bepaalt of content te navigeren is.
Een bruikbare metafoor: landmarks (header/nav/main/footer) zijn de bewegwijzering in het gebouw. Tekst, lijsten en links zijn de bordjes op de deuren en de routebeschrijving. Als die vaag zijn (“hier, hier, klik”), komen mensen niet waar ze moeten zijn.
Sterke tekststructuur met paragrafen en regelafbreking
Een paragraaf (<p>) is je standaardgereedschap voor lopende tekst. Het element zegt: “dit is één logisch stuk uitleg”. Browsers geven paragrafen vanzelf ruimte ervoor/erna, en hulpmiddelen behandelen het als een betekenisvolle eenheid. Als je in plaats daarvan alles in één blok zet en met <br> regels breekt, maak je vooral een visueel resultaat—maar je verliest de semantische structuur. Dat merk je later: CSS kan lastiger worden, teksten scannen slechter, en bij automatisch herformatteren (mobiel vs. desktop) wordt het rommeliger.
Gebruik <br> daarom alleen wanneer een regelbreuk inhoudelijk is, niet omdat je “een nieuwe regel wil”. Typische geldige gevallen zijn een adresregel, een gedicht, of een korte regelstructuur die semantisch bij elkaar hoort. Voor alle andere gevallen is een nieuwe paragraaf of een lijst vrijwel altijd beter. Dit sluit aan op het semantiekprincipe uit de vorige les: kies tags op functie, niet op uiterlijk.
Best practices voor tekst die meteen rust geven:
-
Schrijf paragrafen kort en doelgericht; één idee per
<p>helpt scanbaarheid. -
Zet kerninformatie vroeg in de paragraaf; veel gebruikers lezen alleen het begin.
-
Combineer paragrafen met duidelijke headings (die je al kent als onderdeel van een logische documentstructuur) zodat content ook zonder CSS begrijpelijk blijft.
Veelvoorkomende valkuilen en misvattingen:
-
Misvatting: “Een paragraaf is gewoon een stukje met een witregel.” In HTML is
<p>een element met betekenis; witregels in je editor tellen niet. -
Valkuil:
<div>gebruiken voor tekstblokken “omdat het werkt”. Het werkt visueel, maar je verliest de semantiek die<p>gratis geeft. -
Valkuil: extra spaties gebruiken voor uitlijning. Browsers klappen spaties samen; uitlijning doe je met CSS, niet met spaties.
Als je twijfelt, stel jezelf één vraag: “Als iemand dit voorleest of op een smal scherm ziet, blijft de bedoeling dan overeind?” Zo niet, dan is je tekststructuur waarschijnlijk te visueel opgebouwd.
Lijsten die betekenis geven: wanneer <ul> en wanneer <ol>?
Lijsten zijn er niet om “bullet points te maken”, maar om een relatie te markeren: meerdere items vormen samen een set. Dat is krachtig, want de browser en hulpmiddelen weten dan: “dit zijn 3 items”, “dit zijn stappen”, “dit zijn keuzes”. Je gebruikt bijna altijd de combinatie <ul> of <ol> met <li>-items. Een <li> bestaat niet los; het hoort altijd binnen een lijstcontainer.
Het verschil tussen <ul> en <ol> gaat niet over uiterlijk, maar over betekenis. <ul> (unordered list) gebruik je wanneer de volgorde niet essentieel is, zoals kenmerken, benodigdheden of navigatie-opties. <ol> (ordered list) gebruik je wanneer de volgorde wél onderdeel is van de instructie, zoals stappen in een opdracht of een procedure. Zelfs als je later met CSS nummers wegstylet, blijft de semantiek overeind: een screenreader kan nog steeds als “stap 1 van 3” aankondigen, wat bij trainingsopdrachten vaak precies is wat je wilt.
Hier is een compacte keuzehulp:
| Keuzevraag | <ul> (ongeordend) |
<ol> (geordend) |
|---|---|---|
| Wat betekent de lijst? | Een set items waarbij de volgorde niet uitmaakt. | Een reeks stappen of volgorde waarbij “eerst/daarná” belangrijk is. |
| Typische training-content | Benodigdheden, aandachtspunten, criteria, menu-links in <nav>. |
Stappenplan (“Maak bestand”, “Vul head”, “Plaats main content”), instructies. |
| Toegankelijkheidsimpact | Screenreaders melden het aantal items; gebruikers kunnen items als losse punten scannen. | Screenreaders kunnen de positie/volgorde communiceren (“item 2 van 4”), wat procedureel helpt. |
| Veelgemaakte fout | Een <ul> gebruiken voor stappen “omdat bullets mooier zijn”. |
Een <ol> gebruiken voor een lijst opties, waardoor de volgorde onbedoeld belangrijk lijkt. |
Veelvoorkomende valkuilen en misvattingen:
-
Misvatting: “Ik kan ook gewoon streepjes typen.” Dat is alleen tekst; machines herkennen geen lijststructuur.
-
Valkuil: elk item als losse
<p>schrijven. Visueel kun je het stylen, maar je verliest de set-relatie (“dit hoort samen”). -
Valkuil: een lijst gebruiken voor lange alinea’s zonder duidelijke itemgrenzen. Dan wordt het voor gebruikers juist zwaarder om te scannen.
Een praktische koppeling met de vorige les: een <nav> bevat vaak een <ul> met links. Dat is geen toeval; navigatie is letterlijk “een set keuzes”, en een lijst maakt die set expliciet.
Links die duidelijk, veilig en onderhoudbaar zijn
Een link maak je met <a> en een href. Dat href-attribuut is niet “extra”; het is de kern van de link. Zonder href is <a> semantisch geen echte navigatielink en wordt hij door browsers en hulpmiddelen anders behandeld. Denk bij links steeds aan drie dimensies: doel, tekst, en gedrag.
1) Doel (waarheen link je?)
Je kunt linken naar een andere pagina (contact.html), naar een sectie op dezelfde pagina (#inschrijven), naar een extern domein, of naar een actie zoals e-mail (mailto:). In trainingssites werk je vaak met meerdere pagina’s; dan is een consistente, voorspelbare linkstructuur cruciaal. Relatieve links (zoals oefeningen.html) zijn onderhoudbaar binnen dezelfde site, maar ze zijn gevoelig voor mapstructuur. Absolute links (zoals https://…) zijn duidelijk maar minder flexibel als je omgeving verandert. Kies bewust: wat moet stabiel blijven?
2) Tekst (wat ziet/hoort de gebruiker?)
De kliktekst moet zelfstandig betekenis hebben. “Klik hier” is in een paragrafische context soms nog te raden, maar in een screenreader-lijst met links is het waardeloos: je krijgt dan 10 keer “klik hier”. Goede linktekst benoemt het doel: “Bekijk de oefeningen”, “Contact opnemen”, “Download stappenplan (PDF)”. In training-opdrachten is dit extra belangrijk omdat je content vaak instructief is: de link is onderdeel van de route.
3) Gedrag (wat gebeurt er in de browser?)
Open je externe links in een nieuw tabblad? Dat kan, maar wees spaarzaam. Onverwacht nieuw-tab gedrag kan verwarrend zijn, en je moet dan ook rekening houden met veiligheid (rel="noopener noreferrer" bij target="_blank"). Voor beginners is de veiligste standaard: laat links openen in hetzelfde tabblad, tenzij je een duidelijke reden hebt. Interne ankerlinks zijn handig om in lange opdrachten snel naar een onderdeel te springen, maar ze werken alleen goed als je id’s consequent en uniek zijn.
Veelvoorkomende valkuilen en misvattingen:
-
Misvatting: “Elke knop is een link.” Een link is navigatie; een knop is een actie. Als het doel een andere pagina/sectie is, is
<a>logisch. -
Valkuil: vage linkteksten (“meer”, “hier”, “lees verder”) waardoor de pagina scan-onvriendelijk wordt.
-
Valkuil: gebroken relatieve paden bij het verplaatsen van bestanden. Een kleine mapwijziging kan je hele navigatie slopen als je niet consistent bent.
Wanneer je links goed maakt, help je niet alleen de gebruiker, maar ook je toekomstige zelf: je code wordt leesbaar (“waar gaat dit heen?”) en fouten zijn sneller te vinden.
Twee uitgewerkte voorbeelden uit trainingsopdrachten
Voorbeeld 1: “Oefeningen”-pagina met stappen en een bronlink
Stel: je pagina in <main> moet een korte uitleg geven, daarna een stappenplan, en daarna een link naar een referentiepagina. Zonder structuur wordt dit snel één lang blok tekst. De solide aanpak is: één introparagraaf, daarna een geordende lijst, daarna een afrondende paragraaf met een concrete linktekst. Zo kan een student de pagina scannen: eerst context, dan “wat moet ik doen”, dan “waar kan ik meer vinden”.
Stap voor stap, inhoudelijk gedacht:
- Je zet de introductie in
<p>omdat het lopende uitleg is: wat is de opdracht en wat is het doel. - Je zet de acties in
<ol>omdat de volgorde telt: stap 1, stap 2, stap 3. Dat is niet alleen visueel; hulpmiddelen communiceren dit als een reeks. - Je sluit af met een
<p>waarin je linktekst volledig is: “Lees de contactinformatie” of “Bekijk de uitleg over links”, in plaats van “klik hier”.
Impact, voordelen en beperkingen:
-
Impact: de pagina is sneller te begrijpen zonder CSS, en de structuur blijft stabiel als je later de opmaak verandert. Ook bij nakijken is meteen duidelijk of je stappen mist.
-
Beperking: een lijst lost geen slechte tekst op. Als je stappen vaag zijn (“doe het en sla op”), blijft het onduidelijk; semantiek is de basis, niet het volledige didactische ontwerp.
-
Workflow-voordeel: zodra je meerdere pagina’s hebt, kun je dezelfde contentvorm hergebruiken: intro → stappen → vervolglink. Dat maakt je site consistent, wat in trainingen vaak expliciet beoordeeld wordt.
Voorbeeld 2: Header/nav is semantisch goed, maar je content voelt “onleesbaar”
Je hebt netjes <header>, <nav>, <main>, <footer> gebruikt, maar reviewers zeggen: “De inhoud leest alsof het een chatbericht is.” Vaak komt dat doordat de content in <main> vooral uit losse regels bestaat met <br>, of doordat je punten die bij elkaar horen niet als lijst hebt opgebouwd. Semantische landmarks geven je pagina een ruggengraat, maar de spieren—de content—moeten ook goed aangehecht zijn.
Stap voor stap hoe je dit herstelt:
- Je kijkt naar je tekst en markeert waar een gedachte eindigt. Elke afgeronde gedachte wordt een
<p>. Dat dwingt je om echt te formuleren en niet te stapelen. - Je zoekt “sets”: eisen, voordelen, keuzes, stappen. Alles wat een set is, wordt een lijst. Stappen worden
<ol>, keuzes/kenmerken<ul>. - Je controleert alle links op zelfstandige betekenis. In trainingscontexten staan links vaak aan het eind (“klik hier voor contact”); maak dat “Contactgegevens bekijken” zodat de link ook buiten context logisch is.
- Je checkt of navigatielinks in
<nav>inderdaad een lijst vormen (vaak<ul>). Losse links kunnen, maar een lijst communiceert beter “dit is een menu met opties”.
Impact, voordelen en beperkingen:
-
Impact: tabben en screenreader-navigatie worden niet alleen landmark-logisch (header/nav/main/footer), maar ook content-logisch: paragrafen en lijsten vormen duidelijke stops.
-
Beperking: als je te veel informatie in één lijst stopt, wordt het alsnog zwaar. Soms is beter: twee korte lijsten met een paragraaf ertussen.
-
Proceskoppeling: in veel opdrachten worden onderhoudbaarheid en uitbreidbaarheid belangrijk. Met paragrafen, lijsten en duidelijke linkteksten kun je later stukken verplaatsen zonder dat de betekenis breekt.
Wat je vanaf nu standaard goed doet
-
Gebruik
<p>voor lopende tekst en kies<br>alleen als een regelbreuk inhoudelijk betekenis heeft. -
Zet items die bij elkaar horen in lijsten:
<ul>voor sets zonder volgorde,<ol>voor stappen waarbij volgorde telt. -
Maak links met
<a href="…">en schrijf linkteksten die zelfstandig duidelijk zijn (“Contact opnemen” in plaats van “klik hier”). -
Denk net als bij landmarks: HTML beschrijft betekenis, CSS regelt uiterlijk.
Now that the foundation is in place, we'll move into Media & formulieren (basis) [30 minutes].