E-book Webtechniek - The Internet Academy

advertisement
Dit e-book hoort bij de opleiding Digitale Dienstverlening en de training
Webtechniek.
Titel:
Webtechniek voor niet-techneuten
Uitgever:
The Internet Academy
Auteur:
Jaap van de Putte
Versie:
16 augustus 2016
Met dank aan:
Jules Ernst, 200ok
Mark van Vlerken en Michèlle van Vlerken-Thonen,
Vierkante Meter
Michiel Roering, gemeente Den Helder
Ronald Lamars, gemeente Oudewater
Copyright (C) 2016 Jaap van de Putte
Permission is granted to copy, distribute and/or modify this document under
the terms of the GNU Free Documentation License, Version 1.3 or any later
version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the
license is available on http://www.gnu.org/licenses/fdl.html.
Inhoudsopgave
1. Inleiding........................................................................................ 8
2. Browser......................................................................................... 9
2.1 Soorten browsers.............................................................................. 9
2.2 Browsers voor computers.................................................................... 9
2.3 Browsers voor mobiele toepassingen..................................................... 12
2.4 Test je website in verschillende browsers............................................... 13
3. Het webadres of URL....................................................................... 15
3.1 URL en URI.................................................................................... 15
3.2 Opbouw webadres........................................................................... 15
3.3 Http en https................................................................................. 16
3.4 Subdomeinen................................................................................. 18
3.5 Subdirectories................................................................................ 18
4. HTML en CSS.................................................................................20
4.1 HTML........................................................................................... 20
4.2 Enkele HTML-elementen (HTML5).........................................................22
4.3 CSS............................................................................................. 24
4.4 Kleurcontrast................................................................................. 30
4.5 Semantiek en HTML.........................................................................31
4.6 Afbeeldingen in HTML of CSS...............................................................32
4.7 Responsive design............................................................................36
4.8 Verschillende HTML-versies................................................................38
5. HTML-opbouw webpagina................................................................. 40
5.1 HTML-code basisopbouw webpagina......................................................40
5.2 Taalkeuze.....................................................................................41
5.3 Head-gedeelte...............................................................................41
5.4 Body-gedeelte................................................................................ 45
6. Opbouw van je website....................................................................46
6.1 Content Management Systeem (CMS).....................................................46
6.2 Templates..................................................................................... 51
Inhoudsopgave
Pagina 5
6.3 CSS............................................................................................. 54
6.4 Statische content............................................................................ 54
6.5 Bijzondere bestanden voor zoekmachines...............................................55
7. Client en server............................................................................. 57
7.1 Het client-server-model.................................................................... 57
7.2 Webserver en provider...................................................................... 57
7.3 Communicatie tussen client en server...................................................58
7.4 Client-side versus server-side.............................................................59
7.5 JavaScript..................................................................................... 61
7.6 Cache.......................................................................................... 61
7.7 FTP............................................................................................. 62
7.8 Snelheid website............................................................................. 62
8. HTTP-statuscodes........................................................................... 64
8.1 Overzicht HTTP-codes......................................................................64
8.2 404: Niet gevonden.......................................................................... 64
8.3 410-melding (Pagina is weg)...............................................................65
8.4 301-melding (permanente redirect)...................................................... 66
8.5 302-redirect (tijdelijke redirect).........................................................67
8.6 500-melding (serverfout)................................................................... 67
8.7 Foutief gebruik............................................................................... 68
8.8 Nieuwe structuur van je site...............................................................69
9. Afbeeldingen op je site.................................................................... 70
9.1 Kenmerken afbeelding...................................................................... 70
9.2 Resolutie is niet belangrijk voor het web................................................70
9.3 Bestandstype................................................................................. 70
9.4 Formaat van de afbeeldingen..............................................................72
9.5 Grootte van de bestanden..................................................................72
9.6 Positioneren van afbeeldingen............................................................73
9.7 Naamgeving van afbeeldingen............................................................. 75
9.8 Alt, title en omschrijving................................................................... 76
10. Tekst invoeren met je CMS-editor.....................................................78
10.1 Semantisch opmaken......................................................................78
Inhoudsopgave
Pagina 6
10.2 Scheiden van opmaak en content.......................................................79
10.3 WYSIWYG-modus en tekstmodus......................................................... 79
10.4 Rommelcode................................................................................80
10.5 Voorkomen van ongewenste code.......................................................81
10.6 Ongewenste HTML-code weghalen......................................................82
10.7 Controleren op ongewenste HTML-code................................................ 82
11. Apps: native apps, webapps en hybride apps.......................................83
11.1 Native apps.................................................................................. 83
11.2 Webapps..................................................................................... 83
11.3 Hybride apps................................................................................ 84
11.4 Wat moet je nu kiezen....................................................................85
12. Tools om je website te testen..........................................................86
12.1 Toegankelijkheid toetsen met toetsenbord............................................86
12.2 Controle alternatieve teksten afbeeldingen........................................... 87
12.3 Google Search Console....................................................................87
12.4 Web Developer (add on voor Firefox)................................................... 87
12.5 Screaming Frog.............................................................................88
12.6 Colour Contrast Analyser.................................................................. 93
12.7 WCAG Contrast Checker (add on voor Firefox)........................................ 94
12.8 Testen op kleurenblindheid............................................................... 95
12.9 HTML_CodeSniffer..........................................................................95
12.10 WAVE Accessibility Tool..................................................................96
12.11 Pingdom Website Speed Test............................................................ 97
Inhoudsopgave
Pagina 7
1. Inleiding
In onze trainingen merken we dat veel cursisten moeite hebben met de technische
aspecten van het vak. Logisch, want in veel gevallen heb je dit niet in een opleiding
gehad. Je wordt geacht het wel te weten en mee te kunnen praten met de
techneuten en de webbouwers.
Met deze situatie in ons achterhoofd hebben wij dit e-book geschreven. Het gaat
natuurlijk wel over techniek, maar hopelijk voldoende duidelijk uitgelegd zodat je
begrijpt wat de termen allemaal inhouden.
Heb je correcties, aanvullingen of andere opmerkingen, stuur deze naar
[email protected].
Het e-book gebruiken we bij de eendaagse training Webtechniek en bij de Opleiding
Digitale Dienstverlening.
Inhoudsopgave
Pagina 8
2. Browser
Een browser of webbrowser is het programma waarmee je websites bekijkt. Dat
kan bijvoorbeeld zijn op je computer, je tablet of je mobiele telefoon.
2.1 Soorten browsers
De bekendste browsers zijn:
• voor computers:
°
Firefox
°
Google Chrome
°
Internet Explorer
°
Safari
°
Opera
• voor mobiele telefoons en tablets:
°
Safari Mobile
°
Android
°
Chrome
2.2 Browsers voor computers
Enkele jaren terug had Microsoft met Internet Explorer nog een zeer groot
marktaandeel (wereldwijd 70 %, in Nederland zelfs 90 %) (zie grafiek hieronder).
De afgelopen jaren zijn andere browsers ook populair geworden, ten koste van het
marktaandeel van Internet Explorer. Hieronder de verschuiving in de markt
wereldwijd (bron: Wikipedia).
Inhoudsopgave
Pagina 9
Inhoudsopgave
Pagina 10
De grafiek laat het volgende zien voor de periode 2009 tot en met 2013:
• Internet Explorer daalde van 70 % naar 30 %
• Firefox begon op 28 %, steeg eerst maar daalde vanaf 2011 tot ongeveer 20 % in
2013
• Google's Chrome startte in 2009 en steeg naar 40 % in 2013.
• Apple's Safari steeg van 3 % naar ongeveer 6 % in 2013.
• Mobile steeg vanaf 2009 naar ongeveer 12 % in 2013.
Over het algemeen blijken organisaties vaak verouderde browsers te gebruiken.
Bijna altijd gaat het daarbij om verouderde versies van Internet Explorer.
Particuliere gebruikers updaten sneller en zijn ook sneller overgegaan op andere
browsers dan Internet Explorer. Nog steeds hoor je vaak in organisaties dat ze
vanwege de veiligheid nog niet overgaan op Firefox of Chrome. Het omgekeerde is
het geval: de verouderde versies van Internet Explorer leveren de grootste risico's op
voor virussen en andere ongewenste software.
Hieronder nog het gebruik van de verschillende IE-versies (bron: StatCounter). IE 11
stijgt geleidelijk in gebruik, alle andere IE-versies dalen. IE 8 en 10 scoort minder
dan 2 %, IE 6 en 7 zitten praktisch op 0. IE 9 zit boven de 2 % en IE 11 zit op 17 %.
Inhoudsopgave
Pagina 11
Bij onze trainingen werken we vooral met Firefox, omdat we werken met een aantal
add ons (plug-ins) van deze browser.
2.3 Browsers voor mobiele toepassingen
Mobiele apparaten, zoals smartphones en tablets, hebben weer hun eigen browsers.
Meest gebruikte mobiele browsers zijn:
• Android, voor bijvoorbeeld Samsung-tablets en Samsung-telefoons
• Safari Mobile voor iPhone en iPad
• Chrome
• Windows Mobile voor Nokia-telefoons
• Opera Mobile
Inhoudsopgave
Pagina 12
2.4 Test je website in verschillende browsers
Verschillende browsers
Het is altijd goed om je site op meerdere browsers te testen. Een website zou er in
elke browser hetzelfde uit moeten zien, maar dat is vaak niet het geval. Vaak zijn er
verschillen in lay-out, die op zich niet ernstig hoeven te zijn, maar toch afbreuk
doen aan jouw website.
Zorg dat je zelf op je computer een aantal browsers hebt om te testen. In ieder
geval de nieuwste versies van:
• Internet Explorer
• Firefox
• Chrome
• Safari
De grootste problemen treden vaak op bij de verschillende versies van Internet
Explorer. Op een Windows-computer heb je normaal gesproken slechts 1 versie, dus
zul je voor de andere versies iets anders moeten bedenken. Een website waar je de
verschillende versies van Internet Explorer kunt testen is http://netrenderer.com/.
Verschillende systemen
Dezelfde browsers op verschillende systemen verschillen ook van elkaar. Zo kan de
lay-out op Firefox onder Windows er anders uit zien dan die van Firefox op de Mac.
Daar moet je dus ook op testen.
Inhoudsopgave
Pagina 13
Mobiel testen
Uiteraard moet je je site ook mobiel testen. Een handige site om je site op
verschillende devices te testen is mobiletest.me. Hiermee kun je testen op de meest
gangbare smartphones en besturingssystemen, zoals Android, Apple iOS en Windows
Mobile.
Er zijn ook bedrijven waar je met echte smartphones en tablets kunt testen,
zogenaamde Open Device Labs. Enkele voorbeelden:
•
odl.netvlies.nl
•
odl.vicompany.nl
Meer informatie vind je op opendevicelab.com.
Inhoudsopgave
Pagina 14
3. Het webadres of URL
Elke webpagina heeft een uniek adres, waarmee het vindbaar is op het web. Dit
adres is de Uniform Resource Locator, afgekort tot URL. Webadres is een ander
woord voor URL.
Een voorbeeld van een adres is:
http://www.theinternetacademy.nl
3.1 URL en URI
Een andere benaming voor de URL is URI: Uniform Resource Identifier. Strikt
genomen is dat net iets anders, maar die verschillen zijn mijns inziens niet
belangrijk. Beide termen worden vaak gebruikt als synoniem.
Een URL kan ook gebruikt worden voor andere adressen dan webpagina's,
bijvoorbeeld voor een e-mailadres. De URL is dan bijvoorbeeld:
mailto:[email protected]
Of voor een FTP-adres:
ftp://ftp.theinternetacademy.nl
3.2 Opbouw webadres
Stel we hebben het volgende webadres:
http://www.gemeentebest.nl/zoeken/?q=rommelmarkt
Dat bestaat uit de volgende onderdelen:
• http:
het protocol
• www:
subdomein
• gemeentebest.nl: domein
• nl:
topleveldomein
• zoeken/?q=rommelmarkt: pad
• zoeken: subdirectory (of map)
Inhoudsopgave
Pagina 15
Met een webadres kun je ook binnen een pagina direct verwijzen naar een plek in de
pagina met een zogenaamd tekstanker. Dit is herkenbaar aan het #-teken (of
hashtag), zie bijvoorbeeld hieronder:
https://www.theinternetacademy.nl/trainingen/opleiding-digitaledienstverlening#ervaringen
Er zijn verschillende protocollen:
• http of https: protocol voor webpagina's (zie verder)
• maito: mail-protocol
• ftp: File Transfer Protocol
3.3 Http en https
Secure Socket Layer (SSL)
Een volledige webadres bevat het voorvoegsel http. Dit voorvoegsel is het protocol.
Het kan zijn dat de website beveiligd is met Secure Socket Layer (SSL). Aan het
protocol wordt dan een "s' toegevoegd, het protocol wordt dan "https". Bij SSL
worden alle gegevens versleuteld verstuurd, waardoor ze minder makkelijk door
onbevoegden zijn te achterhalen.
Een voorbeeld van een adres is:
https://www.theinternetacademy.nl
Het gebruik van het certificaat herken je aan het slotje in de adresbalk:
Bij een uitgebreid certificaat is ook de organisatienaam zichtbaar bij het slotje:
Met die extra 's' hoef je in de communicatie geen rekening te houden: als je het
www-adres gebruikt, voegt de server daar vanzelf http of https aan toe.
Problemen met https
Er kunnen problemen zijn met het gebruik van SSL.
Inhoudsopgave
Pagina 16
Het 1e vaak voorkomende probleem is dat niet alle inhoud op de pagina gebruik
maakt van SSL. Bijvoorbeeld als er een plaatje op je website staat waarbij in de url
'http' staat in plaas van 'https'. Er komt dan geen groen slotje in de adresbalk, maar
een grijze met een waarschuwingsicoontje. Als je klikt op het icoontje krijg je een
toelichting.
Een 2e probleem ontstaat als het certificaat verlopen is of niet goed is geïnstalleerd.
Probeer dit te voorkomen: de foutmelding die bezoekers krijgen doet afbreuk aan je
reputatie en het kan zijn dat bijvoorbeeld je bezoekersstatistieken ook niet meer
goed werken.
Inhoudsopgave
Pagina 17
Een 3e probleem is als er zowel gebruik gemaakt wordt van http en https,
bijvoorbeeld als de zoekfunctie over https loopt en de rest van de site niet.
Bezoekers krijgen dan als ze de zoekfunctie weer verlaten de waarschuwing 'Deze
verbinding is niet beveiligd'. Ook dit wil je liever niet en kun je voorkomen door óf
alles over https te laten lopen óf door te zorgen dat het deel dat over https loopt
niet terug gaat naar http. Dit laatste kun je bijvoorbeeld doen als je een webwinkel
hebt. Zodra iemand gaat afrekenen, start het https-deel. Dat doet amazon.com
bijvoorbeeld.
3.4 Subdomeinen
In ons webadres – www.theinternetacademy.nl – is theinternetacademy.nl het
domein. Bij een domein kun je ook subdomeinen gebruiken. In dit geval is www in
feite een subdomein, maar gebruiken we het hier als hoofddomein.
Vaak worden er nog andere subdomeinen gebruikt. Wij gebruiken bijvoorbeeld
elo.theinternetacademy.nl als onze digitale leeromgeving.
Belangrijk om te weten is dat een subdomein in feite een eigen domein is. Dat
betekent dat bijvoorbeeld voor Google de populariteit van het domein geen enkele
invloed heeft op de populariteit van het subdomein, en vice versa. Als je kiest om
content op een subdomein te plaatsen, betekent dat je de linkwaarde van je
hoofddomein niet versterkt, want de waarde van het subdomein komt niet ten goede
aan je hoofddomein. Dat is geen probleem als het echt andere content is en een
andere functie, zoals in ons voorbeeld met het subdomein elo. Maar in de meeste
andere situaties maak je je "merk" minder sterk door content te plaatsen op
subdomeinen.
Ook op de webserver staan de subdomeinen vaak apart. En hebben ze dus eigen
serverruimte en eigen bandbreedte voor het dataverkeer.
3.5 Subdirectories
Een subdirectory is een map op jouw website. Het komt na het domein. Een
voorbeeld van een subdirectory is "trainingen" in het webadres
www.theinternetacademy.nl/trainingen.
De linkwaarde van de content in de subdirectories komen wel ten goede aan de
linkwaarde van het domein zelf.
Inhoudsopgave
Pagina 18
Het is belangrijk om goed het verschil te weten tussen een subdirectory en een
subdomein, en de voor- en nadelen van beide.
Inhoudsopgave
Pagina 19
4. HTML en CSS
Een webpagina is geschreven in de codetaal afgekort tot HTML. In principe zorgt
de HTML voor alles behalve de vormgeving van teksten en afbeeldingen. Deze
vormgeving staat in zogenaamde Cascading Style Sheets (CSS).
4.1 HTML
HTML bestaat uit code. En die code kan bestaan uit HTML-tags , HTML-elementen en
HTML-attributen. Dat leggen we hieronder allemaal uit.
HTML-tags
Een stukje tekst op een webpagina bestaat uit de tekst die we kunnen lezen en
HTML-code, die om de tekst heen staat. Bij een alinea staat er voor de tekst de
HTML-tag <p>. De "p" is van het Engelse paragraph, wat alinea betekent. Na de tekst
volgt er een sluit-tag </p>:
<p>Dit is een stukje tekst.</p>
HTML-elementen
De begin- en sluittag vormen samen het HTML-element. In het vorige voorbeeld heb
je dus het element p en de tag <p>.
Er is niet altijd een begintag en een eindtag. Sommige elementen hebben geen
eindtag. Dit is bijvoorbeeld het geval bij het element voor een afbeelding, het
element img:
<img src="plaatje.gif">
En bij het br-element
Postbus 12<br>
Een ander belangrijk element zijn de headings. De titel bovenaan een pagina moet
een <h1> krijgen. De "h" staat hier voor "heading". Alle andere koppen op een pagina
krigen ook een heading, bijvoorbeeld h2 of h3.
Noot: De nieuwste versie van HTML, HTML 5, kent een aantal wijzigingen. Zo mag
het element h1 meerdere keren voorkomen op de pagina. Je kunt namelijk met
Inhoudsopgave
Pagina 20
nieuwe tags onderscheid maken tussen onderdelen van de pagina, bijvoorbeeld een
menu en de primaire content. Elk onderdeel kan zijn eigen headingsstructuur
hebben. Er kan dus een h1 voor het menu zijn en een h1 voor de gewone content van
de pagina. Overigens is dat nog steeds af te raden, want zoekmachines en
screenreaders kunnen hier nog niet goed mee omgaan.
HTML-attributen
En, om dan gelijk maar het verhaal af te maken, een element kan ook attributen
hebben. In het voorbeeld hierboven heeft het img-element het attribuut src. Elk
element heeft bepaalde attributen. Zo heeft de afbeelding ook het attribuut voor
een alternatieve tekst, het alt-attribuut:
<img src="12345.gif" alt="Golden Retriever">
Commentaar in HTML
Je kunt in HTML tekst ook markeren als commentaar. Het wordt dan niet op de
website getoond, je kunt het alleen zien in de broncode.
Hiervoor gebruik je "<!--" aan het begin en "-->" aan het eind van de tekst die je niet
wil tonen. De code hiervoor is:
<!-- Code toegevoegd op 13 april 2015 –->
Samenvattend
• p is het element voor een alinea.
• <p> is de begintag voor een alinea.
• Een element kan attributen hebben, zoals "src" bij een img-element.
• De meeste elementen hebben een begin- én een eindtag: <p>tekst</p>
• Sommige elementen hebben geen eindtag ', zoals het img-element.
Opdracht
1. Open een willekeurige pagina (maar niet de homepage) van je site.
2. Klik op de rechtermuisknop en kies "Paginabron bekijken".
Inhoudsopgave
Pagina 21
3. Zoek in de code op h1.
Tip: zoeken doe je met Ctrl-F.
4. Welke tekst staat er in het element h1 (tussen de h1-begintag en de h1-eindtag)?
4.2 Enkele HTML-elementen (HTML5)
p (paragraph)
Betekenis
alinea (NIET een paragraaf)
HTML-code
<p>Dit is een voorbeeld.</p>
Voorbeeld
Dit is een voorbeeld.
ul – ongeordende opsomming (unordered list)
Betekenis
ongeordende opsomming
HTML-code
<ul>
<li>Olifanten</li>
<li>Apen</li>
</ul>
Voorbeeld
• Olifanten
• Apen
ol – geordende opsomming (ordered list)
li – opsommingsitem (list item)
Betekenis
Inhoudsopgave
Pagina 22
geordende opsommingen
HTML-code
<ol>
<li>Tel eerst tot 10.</li>
<li>Geef dan je mening.</li>
</ol>
Voorbeeld
1. Tel eerst tot 10.
2. Geef dan je mening.
h1 (heading 1)
Betekenis
Kop 1 (of titel van een pagina)
HTML-code
<h1>Franse wijnen</h1>
Voorbeeld
Franse wijnen
h2
Betekenis
Kop 2
HTML-code
<h2>Bordeaux</h2>
Voorbeeld
Bordeaux
Inhoudsopgave
Pagina 23
br
Betekenis
nieuwe regel (break)
HTML-code
Gemeente Huppeldepup <br>
Kralingerpad 12 <br>
9999 ZZ Gemeente Huppeldepup
Voorbeeld
Gemeente Huppeldepup
Kralingerpad 12
9999 ZZ Gemeente Huppeldepup
img
Attributen
src – adres van de afbeelding (source)
alt – alternatieve tekst (alternative)
Betekenis
afbeelding
HTML-code
<img src="images/retriever.jpg" alt="Retriever">
4.3 CSS
De Cascading Stylesheets (CSS) zijn een of meerdere bestanden, waarin de
vormgeving van content zoals teksten en afbeeldingen is vastgelegd.
In de CSS is vastgelegd welke opmaak er hoort bij welke tag, bijvoorbeeld bij de h1:
h1 { font-size:130%; font-weight:bold;}
In bovenstaande CSS-code staat dat de grootte van de tekst 130 % moet zijn en dat
de tekst vetgedrukt moet zijn.
In de browser wordt de HTML samengevoegd met de CSS tot een leesbare en
opgemaakte titel.
Inhoudsopgave
Pagina 24
Het werken met stylesheets (CSS) is heel handig, want je kunt zo op één plek
vastleggen hoe de opmaak in je site moet zijn. In feite ligt de huisstijl van de
website vast in de CSS. Ook leg je bijvoorbeeld posities van blokken tekst en
afbeeldingen zo vast.
De CSS regelt onder andere de opmaak van:
• lettertypes
• tekstkleur
• achtergrondkleur
• alinea-afstand
• positie tekst en andere elementen , zoals afbeeldingen
• weergave knoppen in formulier
Inhoudsopgave
Pagina 25
Koppelen van CSS aan HTML
De standaard HTML-elementen, zoals de p (alinea) en de h1, kun je via de CSS
opmaken door in de CSS dit element op te nemen en hier een opmaak aan toe te
voegen. In het voorbeeld hieronder is de tekst voor de h1 groot en groen:
h1 {
font-size:200%;
color: green;
}
Daarnaast kun je de elementen ook opmaken door aan het element een class of id
toe te voegen, bijvoorbeeld:
<p class="date">
<div id="summary">
In de CSS staat dan:
.date {
color: #333;
}
#summary {
font-weight:bold;
}
Het verschil tussen een id en een class is dat een id maar 1 keer op een pagina
gebruikt mag worden. Een class mag op een pagina onbeperkt aangeroepen worden.
Dus de 2e regel in deze code is fout:
<p id="space">Stukje tekst</p>
<p id="space">Foutief gebruik: 2 x dezelfde id gebruikt op 1 pagina.</p>
En deze code is goed:
Inhoudsopgave
Pagina 26
<p class="space">Stukje tekst</p>
<p class="space">Correct gebruik: een class mag meerdere keren op 1 pagina
gebruikt worden.</p>
Deze classes en id's zijn niet alleen handig voor het koppelen van de CSS aan de
HTML. Ze worden ook gebruikt om bijvoorbeeld betekenis aan de elementen toe te
voegen. Dit is bijvoorbeeld belangrijk voor zoekmachines, want die weten dan ook
wat zo'n tekst betekent. Meer daarover verderop in dit hoofdstuk.
Anker maken met id
Stel je hebt een lange pagina, dan kan het handig zijn om direct te kunnen linken
naar een tekst verderop in de pagina. Dat kan met een zogenaamde ankerlink.
Hieronder zie je een intern menu op Wikipedia met ankerlinks naar de verschillende
onderdelen van de pagina:
De html-code van de 1e ankerlink is:
<a href="#levensloop">Levensloop</a>
De link leidt naar de kop 'Levensloop' en de code daarvan is:
Inhoudsopgave
Pagina 27
<h2 id="levensloop">Levensloop</h2>
Via de 'id' is de ankerlink gekoppeld.
Opnemen van de CSS
De CSS kun je op 3 manieren koppelen aan je website:
1. Inline style: CSS-code in de HTML-tag
2. Interne stylesheet: CSS-code als blok in de head van de pagina
3. Externe stylesheet: CSS als los bestand
Voor de duidelijkheid: dé manier om CSS te koppelen is methode 3: de CSS plaatsen
in een eigen bestand. CSS is opmaakcode en die hoort niet in de HTML te staan.
Omdat de andere methodes vaak voorkomen en het goed is dat je ze herkent,
bespreken we ze hier allemaal.
Inline style: CSS-code in de HTML-tag
CSS-code kan in de HTML geplaatst worden met het style-attribuut:
<p style="margin-bottom:1.2em">Stukje tekst</p>
Hierbij maak je gebruik van een inline style.
Als je een stukje tekst uit Word direct plakt in het CMS is dit vaak het gevolg: de
opmaakcode vanuit Word is meegekopieerd en staat ook in de webpagina.
De oplossing is vaak om de HTML-modus van de editor te kiezen en het styleattribuut met de stijldefinitie weg te halen. Dat vereist wel enige kennis van HTML …
Bovenstaand voorbeeld ziet er dan zo uit:
<p>Stukje tekst</p>
De nadelen van het opnemen van CSS via een inline style zijn:
• Opmaak staat toch in de HTML.
• Opmaak niet aanpasbaar per apparaat (desktop, mobiele telefoon enz.).
• Gebruiker kan geen eigen opmaak kiezen.
• Aanpassen opmaak moet in elke pagina.
Interne stylesheet: CSS als stijlblok in de head
Inhoudsopgave
Pagina 28
De 2e manier is om de CSS in een stijlblok op te nemen in de head. Dat kun je doen
met het style-element:
<head>
[…]
<style>
p {margin-bottom:1.2em;}
</style>
[…]
</head>
Ook aan deze manier van CSS-koppen zitten nadelen:
• Opmaak staat toch in de HTML.
• Gebruiker kan geen eigen opmaak kiezen.
Externe stylesheet: CSS als extern bestand
Zoals gezegd, dé manier om de CSS te koppelen aan de pagina is de CSS op te nemen
in een apart bestand en in het head-gedeelte van de pagina te verwijzen naar dit
bestand. In code ziet dat er bijvoorbeeld zo uit:
<link rel="stylesheet" href="../styles/default.css" type="text/css" media="screen">
Als je nu een alinea op een bepaalde manier opgemaakt wilt hebben, hoe je alleen
in de CSS de opmaak voor p-element op te nemen. De HTML-code ziet er zo uit:
<p>Stukje tekst</p>
In de CSS staat de volgende code:
p{
margin-bottom:1.2em;
}
Ook kun je met een class of id bij het element opnemen. Via de CSS kun je hier dan
opmaak aan toevoegen. Dus bijvoorbeeld in de HTML voeg je de class summary toe:
<p class="summary">Stukje tekst</p>
In de CSS staat dan de volgende code:
Inhoudsopgave
Pagina 29
.summary {
margin-bottom:1.2em;
font-weight:bold;
}
Het verschil tussen een id en een class is dat je een class meerdere keren op een
pagina kunt gebruiken, terwijl een id slechts 1 keer per pagina mag gebruiken.
Voordelen van het gebruik van een externe stylesheet zijn:
• Opmaak kan eenvoudig worden aangepast, want een aanpassing hoeft maar 1
keer gedaan te worden.
• Opmaak kan gevarieerd worden afhankelijk van de beeldschermgrootte
(responsive design).
• Gebruiker kan zijn eigen opmaak kiezen. Bijvoorbeeld mensen die last hebben
van hele witte vlakken kunnen een grijze achtergrond kiezen. Of witte tekst op
een zwarte achtergrond.
• Via de elementen en de attributen voeg je ook betekenis toe, bijvoorbeeld met
een class "author" maak je duidelijk dat de tekst de naam van de auteur bevat.
Dit bespreken we in de volgende paragraaf.
4.4 Kleurcontrast
Om tekst te kunnen zien moeten de letters voldoende contrast hebben met de
achtergrond. Zo is een zwarte tekst met een witte achtergrond voor de meeste
mensen optimaal leesbaar.
Voor dit contrast is een maat, het contrastratio. Deze maat loopt van 1 tot 21: 1 is
geen contrast, 21 is maximaal contrast. En nu is het erg handig dat er ook een
internationale norm is voor het contrast tussen tekst en achtergrond. Deze norm
staat beschreven in de Web Content Accessibility Guidelines (WCAG). WCAG hanteert
hierbij een aantal niveaus, maar gangbaar is om voor gewone tekst het contrastratio
van 4,5 aan te houden. Met de tools WCAG Contrast Checker en Colour Contrast
Ratio kun je dit zelf meten. We bespreken deze tools in het laatste hoofdstuk.
Hieronder een voorbeeld van een oranje tekst op een witte achtergrond. Het
contrastratio is 2,94. En dat is dus onvoldoende: de waarde moet minimal 4,5 zijn.
Inhoudsopgave
Pagina 30
4.5 Semantiek en HTML
Tot nu toe hebben we vooral aandacht besteed aan de opmaak van de teksten. Maar
de elementen (zoals heading 1 of h1) en de waarde van attributen (zoals
class="author") doen nog iets heel belangrijks: je maken ook duidelijk wat de
betekenis is van de tekst. Het gaat hierbij om semantiek: het toevoegen van
betekenis via HTML-code.
Als een regel tekst tussen <h1>-tags staat, betekent dit dat deze tekst de titel van
de pagina is.
Nog een voorbeeld: een datum van een training, bijvoorbeeld 14 april 2014. Dit kun
je dan opmaken als volgt:
Inhoudsopgave
Pagina 31
<p class="date">14 april 2014</p>
Met deze class heb je betekenis (of semantiek) toegevoegd: je vertelt hiermee aan
Google dat de tekst in feite een datum is.
Met een element voeg je dus vooral betekenis toe. En met een class of een id kun je
ook eigen betekenis toevoegen.
Het semantisch opmaken van je teksten heeft 2 belangrijke voordelen:
• Zoekmachinevriendelijkheid: Zoekmachines weten zo wat de betekenis is van
teksten.
• Toegankelijkheid: Mensen die de opmaak van de tekst niet kunnen zien kunnen zo
toch de betekenis van de teksten weten.
4.6 Afbeeldingen in HTML of CSS
HTML is voor de inhoud, CSS voor de opmaak. Waar horen nu de afbeeldingen, want
je hebt informatieve en decoratieve afbeeldingen? Nou, informatieve moeten in de
HTML en niet-informatieve staan bij voorkeur in de CSS.
Afbeeldingen in de HTML
Als een afbeelding in de HTML is opgenomen dan gebruik je daarvoor het imgelement:
<img src="leuk-plaatje.png">
Positioneren van een afbeelding
Als je een afbeelding links of rechts wilt plaatsen, dan kun je dat ook regelen met
css. Dat kun je doen met een inline stijl, zoals
<img src="plaatje.png" style="float_right">
Dit heeft echter wat nadelen:
1. Bij een mobiele weergave wil je waarschijnlijk geen plaatje rechts, maar
gewoon onder of boven de tekst.
Inhoudsopgave
Pagina 32
2. Als je ooit de stijl wil aanpassen, dan moet je je hele site nalopen waar deze
inline stijl gebruikt wordt.
3. De code wordt rommelig.
Beter is het daarom om ook dit te doen in de externe stylesheet.
De goede manier om een plaatje te positioneren is dus via de externe css,
bijvoorbeeld:
.photo-news {
float:right;
}
Op een kleiner scherm – bijvoorbeeld kleiner dan 500 pixels – kun je de volgende css
gebruiken:
.photo-news {
width:100%;
height:auto;
}
Bij het img-element in de html plaats je dan een class:
<img src="plaatje.png" class="photo-news">
Als je de afbeelding in je CMS kunt positioneren, gebruik dan deze classes, en geen
handmatige opmaak.
De opmaakcode die wel mag in de html is het width- en height-attribuut. Dit is wat
verwarrend, want in feite staat hier toch gewoon opmaakcode in de HTML. Een
reden hiervoor is dat deze informatie belangrijk is voor browsers bij het opbouwen
van de pagina. Ze weten dan welke ruimte ze vrij moeten laten voor de afbeelding,
die vaak na de tekst wordt geplaatst.
Dus de volgende code is wel goed.
<img src="olifant.gif" alt="olifant" width="200" height="100">
Alt-attribuut
Inhoudsopgave
Pagina 33
In principe is de afbeelding informatief, brengt dus informatie over. Je hebt dan ook
een alternatieve tekst nodig, voor degenen die de afbeelding niet kunnen zien. Dit
kan met het alt-attribuut:
<img src="leuk-plaatje.png" alt="Sacrada Familia">
De functie van het alt-attribuut is:
•
Het geeft aan gebruikers van spraak- en braille-uitvoer de alternatieve tekst.
•
Het wordt getoond in plaats van de afbeelding als de afbeelding niet getoond
wordt, bijvoorbeeld omdat je internetverbinding traag is of je hebt het tonen
van afbeeldingen uitgezet om de pagina sneller te laden.
•
Zoekmachines gebruiken deze tekst als beschrijving van de afbeelding. Zo
weten zij ook wat er op de afbeelding is te zien.
Title-attribuut
Een ander attribuut is het title-attribuut:
<img src="leuk-plaatje.png" alt="Sacrada Familia" title="Bron: Wikipedia">
De tekst die je hierin plaatst tonen browsers vaak bij mouse-over. Het title-attribuut
wordt vaak verwisseld met het alt-attribuut. Eigenlijk is er zelden een reden om het
title-attribuut te gebruiken. In het voorbeeld hierboven is bijvoorbeeld het titleattribuut gebruikt om de bron of de fotograaf van de foto te melden, maar ons
inziens is dat ook een slechte toepassing van het title-attribuut. Als je de bron wil
noemen, zet deze dan gewoon zichtbaar voor iedereen bij de foto, zoals in het
voorbeeld hieronder.
Inhoudsopgave
Pagina 34
Vaak zie je dat beide ingevoerd zijn met dezelfde tekst:
<img src="plaatje.png" alt="pepernoot" title="pepernoot">
Voor blinden en slechtzienden is het juist onhandig als er zowel een alt als een title
is ingevuld met dezelfde tekst, want vaak worden beide opgelezen bij de
spraakuitvoer.
Afbeelding in de CSS
Een puur decoratieve afbeelding is bijvoorbeeld een kleurverloop in de site, zie de
afbeelding hieronder.
Afbeelding 1: Decoratieve afbeelding
Omdat deze afbeelding geen betekenis (of inhoud) overbrengt, maar alleen bedoeld
is voor de vormgeving, hoort deze afbeelding thuis in de vormgeving.
Inhoudsopgave
Pagina 35
In de stylesheet (CSS) is dit bijvoorbeeld zo opgenomen:
.wrapper {
margin: 0 8px;
background-image: url("../img/verloop.gif");
}
In CSS is het technisch niet mogelijk om een alternatieve tekst op te nemen. Dat
hoeft hier ook niet, want de afbeelding brengt geen betekenis over.
Het komt regelmatig voor dat een niet-informatieve afbeelding toch in de HTML
staat. Het goede nieuws is dat hier geen grote bezwaren tegen zijn. Ook vanuit
bijvoorbeeld de richtlijnen voor toegankelijkheid is dit toegestaan.
Een reden om een niet-informatieve afbeelding toch in de HTML te plaatsen is als jij
geen toegang hebt tot de CSS. Bij veel CMS-en is dat het geval. Dan heb je geen
andere mogelijkheid dan de afbeelding in de HTML te plaatsen.
Informatief of niet-informatief?
Soms is het moeilijk voor je als redacteur om in te schatten of een afbeelding
informatief is of niet-informatief. In dat geval mag je vaak vertrouwen op je eigen
inschatting. Het is niet verboden om een niet-informatieve afbeelding toch van een
alternatieve tekst te voorzien.
4.7 Responsive design
Een stukje over responsive design mag hier niet ontbreken, want elke zichzelf
respecterende webmanager heeft het hier over.
Met responsive design wordt bedoeld dat de lay-out van de website zich aanpast aan
de grootte van het beeldscherm waarop de website wordt getoond. Dat is met name
belangrijk als de website getoond wordt op kleine schermen, zoals op een mobiele
telefoon. Voor een groot deel wordt deze lay-outaanpassing gedaan met CSS. Bij een
lagere resolutie zorgt de CSS ervoor dat de lay-out wordt gewijzigd.
Inhoudsopgave
Pagina 36
Hieronder zie je een voorbeeld: de 1e afbeelding toont onze website op een gewoon
computerscherm.
In de afbeelding hieronder zie je de lay-out op een mobiele telefoon. Je ziet dat
voor de mobiele weergave het menu is weggelaten, zodat de bezoeker zo snel
mogelijk de primaire content van de pagina te zien krijgt.
Inhoudsopgave
Pagina 37
4.8 Verschillende HTML-versies
HTML kent ook versies. De nieuwste versie is HTML5. De oudere versies – HTML 4 en
XHTML 1 – worden ook nog veel gebruikt.
In een HTML-versie liggen de "grammaticale" regels van de HTML vastgelegd. In de
allereerste regel code van een webpagina is aangegeven welke HTML-versie gebruikt
wordt. Zo weten browsers hoe ze de HTML moeten vertalen naar zichtbare content.
Dit proces van vertalen wordt "parsing" genoemd.
De HTML-versie is aangegeven met de tag DOCTYPE.
Inhoudsopgave
Pagina 38
Het gebruiken van een moderne versie van HTML biedt een site de mogelijkheid om
gebruik te maken van de nieuwste technologieën. Meer informatie over verschillende
versies vind je op http://nl.wikipedia.org/wiki/HyperText_Markup_Language.
Inhoudsopgave
Pagina 39
5. HTML-opbouw webpagina
De HTML-code van een webpagina is ingedeeld in 2 secties:
• head: deze bevat alle meta-informatie
• body: deze bevat de content die zichtbaar is in de webpagina
Al jouw teksten, afbeeldingen en filmpjes staan dus in de body-sectie van de
pagina.
5.1 HTML-code basisopbouw webpagina
De HTML-code begint en sluit met het HTML-element:
<html>
[...]
</html>
Daartussen staan 2 delen:
• head-gedeelte met de meta-informatie
• body-gedeelte met alle content
Deze delen hebben ook hun eigen element. De opbouw is dan als volgt:
<html>
<head>
[allerlei meta-informatie]
</head>
<body>
[de content van de pagina]
</body>
</html>
Voor het html-element staat nog de zogenaamde DOCTYPE-declaratie. Daarin staat
aangegeven welke HTML-versie de website gebruikt. Voor HTML5 is dat:
<!DOCTYPE html>
Inhoudsopgave
Pagina 40
5.2 Taalkeuze
Het html-element bevat ook de taalkeuze van de pagina, bijvoorbeeld voor een
Nederlandstalige site is dat:
<html lang="nl">
5.3 Head-gedeelte
In de head-sectie staat onder ander het volgende:
• title-element: deze bevat de titel van de pagina en is bij de meeste browsers
zichtbaar in de browserbalk
• meta-tags, zoals keywords en description
• links naar de CSS-bestanden
• links naar JavaScript-bestanden
• de Google Analytics Tracking code
Title-element
Een bijzonder HTML-element is de title. Deze bevat de titel van de pagina. Een
goede opbouw van de title is:
titel content – naam organisatie
Deze volgorde past bij de taakgerichtheid van een bezoeker: deze komt eerst voor
de content, en dan pas voor de afzender.
In HTML-code ziet dat er bijvoorbeeld als volgt uit:
<title>Basisopleiding webmanager – The Internet Academy</title>
Het is meta-informatie: de title is geen onderdeel van de content van de pagina,
maar wordt getoond in de browserbalk. In de afbeelding hieronder is dit met een
groen kader aangegeven.
Inhoudsopgave
Pagina 41
Afbeelding 2: Title-element, zichtbaar in de browserbalk
Dit is ook altijd zo de bedoeling geweest toen HTML voor het eerst werd ontwikkeld
door Tim Berners-Lee. In zijn lijst van de 1e HTML-tags staat het volgende over de
title-tag:
The title is not strictly part of the text of the document, but is an attribute of the
node. It may not contain anchors, paragraph marks, or highlighting. the title may be
used to identify the node in a history list, to label the window displaying the node,
etc. It is not normally displayed in the text of a document itself. Contrast titles with
headings.
Bron: www.w3.org/History/19921103hypertext/hypertext/WWW/MarkUp/Tags.html
De oorspronkelijke betekenis was dus om het venster te voorzien van een label, deze
functie is nog steeds dezelfde.
Google gebruikt de titel ook vaak bij het tonen van het zoekresultaat. Om die reden
is het ook heel belangrijk dat de titel betekenisvol is en uniek binnen de site. Het is
onwenselijk dat 2 verschillende pagina's exact dezelfde titel hebben, want voor
Google is het dan onduidelijk welke pagina dan bij welke titel horen.
Metatags
In het head-gedeelte staan vaak meta-tags. De bekendste meta-tags zijn:
• description: beschrijving van de pagina
• keywords: trefwoorden van de pagina
• robots: instructies of zoekmachines de pagina moeten volgen
De meta-tags zijn oorspronkelijk ontwikkeld om meta-informatie over een pagina
mee te geven. Geleidelijk aan werden ze steeds meer misbruikt en hebben ze hun
waarde grotendeels verloren.
Inhoudsopgave
Pagina 42
Metatag description
In code ziet deze er bijvoorbeeld als volgt uit:
<meta name="description" content="The Internet Academy verzorgt cursussen,
opleidingen en workshops over allerhande internet-gerelateerde onderwerpen, zoals
usability, vindbaarheid, online statistieken en toegankelijkheid van websites.">
In de meta-tag description hoort een adequate en korte beschrijving van jouw site te
staan. De lengte is maximaal 160 tekens, want dat is de lengte van de snippettekst
die Google toont bij een zoekresultaat. Deze meta-tag is niet belangrijk voor de
vindbaarheid, maar wel belangrijk voor de zichtbaarheid van jouw site, want
zoekmachines presenteren de inhoud van deze tag soms bij de zoekresultaten. Een
goede, betekenisvolle description-tag kan zo helpen dat mensen vaker op jouw
pagina in de zoekresultaten klikken.
Metatag keywords
Een voorbeeld van de meta-tag keywords is:
<meta name="keywords" content="internet trainingen, cursussen, opleiding,
opleidingen, schrijven voor het web, webmanager, basisopleiding webmanager">
De meta-tag keywords is bedoeld om de belangrijkste trefwoorden van je site in te
plaatsen. Omdat deze tag vaak misbruikt werd om hoger te komen in de
zoekresultaten maken zoekmachines niet of nauwelijks nog gebruik van deze metainformatie. Je kunt de tag dus beter niet gebruiken. Een reden om de tag wel te
gebruiken is als je eigen zoekmachine de trefwoorden gebruikt voor het indexeren
van de content.
Metatag robots
Hieronder een voorbeeld van de code.
<meta name="robots" content="noindex, nofollow">
In dit voorbeeld is de wens dat zoekmachines de pagina NIET indexeren (noindex) en
de links in de pagina NIET volgen (nofollow).
De meta-tag robots geeft onder andere de volgende informatie aan zoekmachines:
• Indexeer deze pagina wel of niet.
• Volg wel of niet de links op deze pagina.
Inhoudsopgave
Pagina 43
Deze tag is alleen nodig als je wil dat een zoekmachine iets niet doet. Dus als je wil
dat de pagina gewoon geïndexeerd moet worden en dat links in de pagina gewoon
gevolgd moeten worden, dan kun je de tag weglaten.
Een andere manier om zoekmachines te informeren over jouw pagina's is het gebruik
van het bestand robots.txt. Deze bespreken we in het volgende hoofdstuk.
Er zijn 2 belangrijke verschillen tussen de metatag robots en het bestand robots.txt:
1. robots.txt gebruik je voor volledige directories. De metatag robots geeft alleen
informatie over de pagina waar de tag in staat.
2. Pagina's van een directory die via de robots.txt uitgesloten zijn, kunnen toch
door Google geïndexeerd worden, als er naar de pagina's wordt gelinkt. Staat
er een metatag robots die aangeeft dat de pagina niet geïndexeerd mag
worden, dan gebeurt dat ook niet.
Wil je dus echt zeker zijn dat een pagina niet geïndexeerd wordt, dan moet je dit
aangeven met de metatag robots.
Het nadeel van zo'n metatag is dat je deze op elke pagina moet toevoegen die je
niet wilt indexeren. Wil je het voor je hele site of een hele directory dan kan het
handig zijn om de HTTP-header X-Robots-Tag te gebruiken. Meer hierover kun je
lezen op https://yoast.com/prevent-site-being-indexed/.
Links naar bestanden
In het head-gedeelte staan ook een aantal links naar bestanden. Bij het opvragen
van de pagina worden deze bestanden ook opgehaald. Het zijn onder andere links
naar:
• CSS-bestanden, bijvoorbeeld:
<link rel="stylesheet" type="text/css" href="/styles/screen.css" media="all">
• JavaScript-bestanden, bijvoorbeeld:
Inhoudsopgave
Pagina 44
<script type="text/javascript"
src="/scripts/jquery-1.7.js"></script>
5.4 Body-gedeelte
Na het head-gedeelte van de webpagina krijg je het body-deel. Dit is omsloten met
het element body:
<body>
[content]
</body>
In het body-deel staat al je content, dus alles wat je ziet als je naar je website
kijkt.
Inhoudsopgave
Pagina 45
6. Opbouw van je website
Als het goed is ziet jouw website er als één geheel uit, maar technisch gezien
bestaat het uit een aantal onderdelen:
•
CMS met database: bestaat uit een invoerdeel en vaak uit verschillende
modulen
•
Templates: samen met de CSS vormen ze de vormgeving van je site
•
Statische content
•
enkele bijzondere bestanden: robots.txt en sitemap.xml
We bespreken deze allemaal hieronder.
6.1 Content Management Systeem (CMS)
Bijna alle sites maken tegenwoordig gebruik van een Content Management Systeem
(CMS). Met een CMS kun je direct via de website (webbased) content invoeren. Die
wordt opgeslagen in een database. Zie de afbeelding hieronder.
Afbeelding 3: CMS met database
Voorbeelden van CMS-en zijn:
• WordPress: veel gebruikt voor wat kleinere sites
• Drupal: een populair open source CMS voor gemeenten
Inhoudsopgave
Pagina 46
• Drupal
• Joomla
• Plone
• closed source CMS-en, zoals van SIM, Green Valley en InfoProjects
Een CMS bestaat in grote lijnen uit:
• invoerdeel met een editor
• ondershoudsdeel voor de pagina's die niet in een module staan
• modulen
• database
Invoerdeel
Het invoerdeel is waar jij als redacteur jouw content beheert. Je moet inloggen met
een inlogaccount. Die bestaat uit een gebruikersnaam en wachtwoord.
Het is per CMS heel verschillend wat je precies wel en niet via het CMS kunt
onderhouden. De vormgeving ligt meestal grotendeels vast in templates en
stylesheets en kun je dus niet direct aanpassen via het CMS.
Editor
Teksten en afbeeldingen invoeren doe je via een editor. Vaak is dit een zogenaamde
WYSIWYG-editor: Een What-You-See-Is-What-You-Get-editor.
Inhoudsopgave
Pagina 47
Afbeelding 4: Edit-scherm van WordPress
Als je met meerdere redacteuren werkt is het handig om de mogelijkheden van de
editor zo veel mogelijk te beperken. Dus liever niet dat iedereen tekst kan
onderstrepen of tekst kan doorhalen.
Een editor is een stukje software, dat jouw webbouwer geplaatst heeft in het CMS.
Er zijn een paar editors die door vrijwel alle CMS-en gebruikt worden. Dat zijn:
• TinyMCE
• FCKeditor
De editors zijn configurabel, wat wil zeggen dat ze aanpasbaar zijn. Wil jij
bijvoorbeeld allerlei knopjes in de editor niet, dan kan de webbouwer deze
weghalen.
Inhoudsopgave
Pagina 48
Noot: De WYSIWYG-editor wordt ook wel een WYSIWYM-editor genoemd: What You
See Is What You Mean. Daarmee bedoelen ze dat je met de editor niet zozeer de
tekst opmaakt, maar vooral betekenis toevoegt. Door bijvoorbeeld een kopje te
voorzien van een opmaakprofiel h2 geef je de betekenis van een kopje mee.
Algemene contentpagina's
De basis van het CMS vormen de standaardpagina's, die je kunt beheren. Soms zijn er
verschillende soorten standaardpagina's.
Modulen
Naast standaardpagina's heeft een website bijna altijd ook content die een speciale
opmaak moet krijgen. Denk bijvoorbeeld aan nieuwsberichten, formulieren of een
forum.
Een module heeft een aantal voordelen:
• Het heeft eigen invoervelden.
• Het hergebruiken van de content is eenvoudig
Eigen invoervelden
Een module heeft een aantal eigen invoervelden. Dit maakt de invoer van content
makkelijk.
Bijvoorbeeld: Een nieuwsmodule heeft de invoervelden:
• Titel
• Samenvatting (lead)
• Afbeelding
• Bodytekst
• Datum tonen vanaf
• Datum tonen tot en met
• Publiceer / depubliceer
Hergebruik van content
Inhoudsopgave
Pagina 49
Doordat modules de content gestructureerd opslaan is het hergebruik hiervan
makkelijk. Je kunt bijvoorbeeld de nieuwsberichten op meerdere plekken in je site
tonen. Daarvoor hoef je de nieuwsberichten zelf niet aan te passen.
Database
Alle content die je invoert met het CMS is opgeslagen in een database. Door te
werken met een database is het beheer van de content veel makkelijker.
Een database kun je vergelijken met een spreadsheet. Het bevat alle teksten van je
site en de koppelingen naar afbeeldingen en downloads.
Meestal maakt de webbouwer of provider elke nacht een backup van de database.
Heb je bijvoorbeeld per ongeluk een tekst weggegooid, dan is deze via de backup
van de vorige dag vaak weer terug te halen.
Een ander voordeel van de database is dat je teksten in één keer kunt doorzoeken en
vervangen. Stel je wil overal dat bepaalde HTML-code wordt weggehaald, dan kan
dat met een zoek-en-vervang-actie op de database. Dit doet in de regel de
webbouwer.
Closed source versus open source
De code van het CMS kan afgeschermd zijn door de ontwikkelaar. Het CMS is dan
closed source: de broncode is niet vrijgegeven.
Het kan ook zijn dat de broncode van het CMS wel vrij beschikbaar is en door
iedereen gedownload kan worden. Het CMS is dan een open source CMS.
Open source heeft een aantal grote voordelen, maar het grootste voordeel is de
leveranciersonafhankelijkheid. Doordat de broncode vrij beschikbaar is, ben je
minder afhankelijk van de leverancier/webbouwer. De code is namelijk niet van de
webbouwer. Ben je niet tevreden met je webbouwer, dan kun je gewoon een andere
zoeken en daarmee verder gaan.
Een open source CMS is niet beter dan een closed source. Dat is afhankelijk van veel
andere factoren. Er zijn bijvoorbeeld webbouwers die heel goede closed source CMSen leveren. En er zijn ook slechte open source CMS-en.
Inhoudsopgave
Pagina 50
De laatste jaren zijn open source CMS-en veel populairder geworden bij non-profitorganisaties, zoals overheden en onderwijsinstellingen. Met name door de kleinere
leveranciersafhankelijkheid zijn de beheerskosten vaak ook lager.
6.2 Templates
De opmaak van de website is vastgelegd in templates. In zo'n template staat code
die op elke pagina terugkomt, zoals een header (bovenste deel van de website), een
footer (het afsluitende deel van je site) en een menu. Je kunt een template van een
website vergelijken met een sjabloon in Word: ook in een sjabloon staan al een paar
standaard zaken, zoals het lettertype, zodat je die niet steeds hoeft te definiëren.
Contentpagina's hebben vaak een eigen template als basis, en voor bijvoorbeeld de
homepage is weer een andere template. Een website heeft vaak meerdere
templates.
Afbeelding 5: CMS, database en templates
Het werken met templates heeft een aantal grote voordelen:
• De site krijgt zo een consistente vormgeving, want de pagina's zijn allemaal
vergelijkbaar opgebouwd .
Inhoudsopgave
Pagina 51
•
Als beheerder hoef je minder na te denken over de vormgeving, want dat is al
grotendeels geregeld in de templates.
Zoals we eerder bespraken ligt de vormgeving voor een deel ook vast in de CSS. De
vormgeving is dus vastgelegd in de CSS-bestanden en de templates.
De CSS en de templates samen worden vaak ook de theme (het thema) genoemd.
Opbouw template
De meeste templates hebben een verschillende opbouw voor de weergave op een
desktop en op een mobiel.
Een webpagina voor desktopweergave bestaat meestal uit de volgende onderdelen
(zie ook afbeelding hieronder):
• bovenkant, de header
• onderkant, de footer
• een menu (boven, links of rechts)
• het contentdeel
• vaak een rechterkolom met gerelateerde of algemene informatie
Inhoudsopgave
Pagina 52
Afbeelding 6: Opbouw template
Vooral de header (bovenkant), het menu en de footer (de onderkant) zijn voor alle
pagina's van de site gelijk of vergelijkbaar.
Voor een mobiele weergave is de weergave zo dat alles onder elkaar bekeken kan
worden. Vaak is de header kleiner, het menu vervangen door een hamburgermenu en
valt de content onder het menu en de info uit de rechterkolom daar weer onder.
Soorten templates
Vaak heeft een site verschillende soorten pagina's, zoals:
• homepage
• gewone contentpagina
• nieuwspagina
Inhoudsopgave
Pagina 53
• zoekresultatenpagina
• formulier
Veel CMS-en maken voor elke soort pagina een eigen template. Sommige CMS-en
doen dit anders en leggen de opbouw niet in een template vast, maar via kleinere
blokken. Zo werkt Drupal met "blocks" en "views".
6.3 CSS
De opmaak van teksten en afbeeldingen wordt geregeld met de Cascading
Stylesheets (CSS), of kortweg stylesheets. Samen met de templates vormen deze de
vormgeving van de site.
Afbeelding 7: Opbouw webpagina met CMS, templates en CSS
6.4 Statische content
De meeste content zit in de database van het CMS, maar soms zijn er pagina's die
daar buiten vallen en niet aanpasbaar zijn via het CMS. Dit noemen we statische
content. Deze content kan meestal alleen door de webbouwer worden aangepast.
Inhoudsopgave
Pagina 54
Afbeelding 8: Opbouw webpagina: CMS, templates, CSS en statische content
6.5 Bijzondere bestanden voor zoekmachines
robots.txt
Het bestand robots.txt gebruik je om aan zoekmachines duidelijk te maken welke
delen van de site NIET geïndexeerd moeten worden.
Het bestand staat in de root van je site. Bij The Internet Academy staat het
bijvoorbeeld op www.theinternetacademy.nl/robots.txt.
Een voorbeeld van zo'n bestand is:
User-agent: *
Disallow: /nieuwesite
Disallow: /service
Met deze code geven wij het volgende aan:
• De informatie geldt voor alle zoekmachines (user-agents = zoekmachines, * = alle)
• Directories die niet geïndexeerd mogen worden zijn "nieuwesite" en "service".
Inhoudsopgave
Pagina 55
Het bestand is alleen nodig als je wilt dat bepaalde directories van je site NIET
bezocht moeten worden. Het bestand gebruikt de Robots Exclusion Standard.
Let op: Met robots.txt voorkom je niet dat de directories niet geïndexeerd worden.
Als er bijvoorbeeld links naar pagina's in deze directories staan, dan worden deze
pagina's wel geïndexeerd. Met de metatag robots voorkom je wel dat een pagina
vindbaar wordt. Deze tag wordt uitgelegd in het hoofdstuk 'HTML-opbouw
webpagina'.
sitemap.xml
Met het bestand sitemap.xml geef je aan zoekmachines aan hoe de structuur is van
je website. Dit bestand plaats je in de root, net als robots.txt.
Google beschrijft dit zelf als volgt:
Sitemaps zijn een methode om Google te informeren over pagina's op uw site die
we anders misschien niet zouden vinden. Een XML-sitemap, meestal gewoon
sitemap genoemd, is een lijst van de pagina's op uw website. Als u een sitemap
maakt en verzendt, zorgt u ervoor dat Google op de hoogte is van alle pagina's op
uw site, inclusief de URL's die tijdens de normale crawlprocedure van Google niet
worden gevonden.
Bron: https://support.google.com/webmasters/answer/183668?
hl=nl&ref_topic=4581190&vid=1-635794707095594598-4212143325
Je kunt een sitemap maken op basis van het sitemapprotocol. Deze kun je vinden op
www.sitemap.org.
Elke keer dat je pagina's maakt of verwijdert moet je dit bestand bijwerken. Het is
daarom handig als je gebruik maakt van een dynamische sitemap. Deze is steeds
bijgewerkt naar de huidige structuur van je website.
Inhoudsopgave
Pagina 56
7. Client en server
Een essentieel onderdeel van webtechniek is het model van client en server. De
client is bijvoorbeeld de browser waarin je websites bekijkt, de server is de
computer waar de website op draait.
7.1 Het client-server-model
Het web is opgebouwd volgens het client-server-model:
• De browser waarin je een pagina bekijkt, is de client.
• De webserver waar de website staat, is de server.
Het model waarbij de client en de server met elkaar communiceren wordt het
client-server-model genoemd. Andere voorbeelden van dit model zijn e-mail en FTP.
De terminologie client/server komt vaak voor op het web, vandaar dat we hier
aandacht aan besteden. Een voorbeeld is de validatie van gegevens in een
webformulier. Deze kan in de browser zijn: dan noemen we dat client side. Of kan
gebeuren op de server: dan noemen we dat server side.
In de Wikipedia wordt het als volgt omschreven:
Het client-servermodel is een model in de informatica en computertechniek voor de
samenwerking tussen twee of meer programma's, die zich op verschillende
computers kunnen bevinden. Kenmerkend voor de asymmetrie in het model is:
– de server is permanent beschikbaar en is reactief
– een client is bij gelegenheid actief en neemt het initiatief tot
communicatie met de server
7.2 Webserver en provider
De website van jouw organisatie staat ergens op een computer die verbonden is met
het internet. Deze computer heet een webserver. Een server is vergelijkbaar met
een gewone computer, maar dan net iets uitgebreider.
Deze webserver staat bij een provider of hosting provider. Je kunt ook zeggen dat
de provider jouw website host.
Inhoudsopgave
Pagina 57
De kwaliteit van de hosting is bijzonder belangrijk voor de kwaliteit van je website.
Een trage server zorgt dat elke bezoeker langer moet wachten. Ook verslechtert de
vindbaarheid van je site, want zoekmachines houden niet van sites die langzaam
laden.
Ook is het belangrijk dat de server niet offline gaat. Offline betekent dat de server
tijdelijk geen contact maakt met het internet en niet bereikbaar is.
Het is belangrijk dat je de monitoring van je site niet overlaat aan je webbouwer,
maar dat je hier zelf ook op let. Als de webbouwer bijvoorbeeld zelf
verantwoordelijk is voor de hosting, heeft hij ook andere belangen dan jouw goed te
informeren over de snelheid van jouw website.
Het monitoren van je site kun je bijvoorbeeld doen met PageSpeed Insights of met
een online dienst als WatchMouse.
Afbeelding 9: PageSpeed Insights van Google
7.3 Communicatie tussen client en server
Als je in je browser een webpagina gaat bezoeken, stuurt je browser (client) een
verzoek aan de server om deze pagina te tonen. Dit verzoek van de client heet een
request.
Inhoudsopgave
Pagina 58
De server geeft hierop een antwoord: dat is de response. Deze communicatie wordt
op de server bijgehouden in een server log of in de logfiles.
Afbeelding 10: Communicatie tussen client en server
Deze communicatie gaat heel snel. Een server kan meerdere requests tegelijkertijd
afhandelen.
7.4 Client-side versus server-side
Een goed begrip van dit client-server-model is handig bij het begrijpen van
verschillende dingen die op een website gebeuren.
Inhoudsopgave
Pagina 59
Als voorbeeld nemen we de validatie van een eenvoudig contactformulier.
Afbeelding 11: Voorbeeld contactformulier
De velden in dit formulier zijn verplicht. Als de velden niet worden ingevuld, dan
moet er een foutmelding verschijnen. Deze foutmelding kan direct al in de browser
gegeven worden. De validatie is dan client side.
Afbeelding 12: Foutmelding direct client side
Het voordeel is dat de invuller al direct de foutmelding krijgt, op het moment dat hij
naar het volgende veld gaat. Deze vorm van validatie kan met HTML5 of met
JavaScript.
De validatie kan ook pas op de server plaatsvinden. Pas als de invuller klikt op
versturen, verschijnt de foutmelding. Deze vorm van validatie is server side.
Inhoudsopgave
Pagina 60
Afbeelding 13: Foutmelding na versturen, server side
Het nadeel van de validatie via de server is dat het pas gebeurt als het formulier
verstuurd is. Echter, JavaScript werkt niet altijd in elke browser, vandaar dat de
validatie via de server ook altijd plaatsvindt.
7.5 JavaScript
JavaScript is een programmeertaal. Zoals we net gezien hebben werkt JavaScript
direct in de browser. Met andere woorden: JavaScript werkt client side. Omdat
JavaScript een scripting-taal wordt genoemd, spreken we ook wel over clientsidescripting.
7.6 Cache
Ook zo'n typische webterm: cache. Met cache wordt bedoeld dat er informatie
onthouden wordt, bijvoorbeeld een pagina die je eerder hebt bezocht. In elke
browser zit cache. Bezoek je een pagina voor de 2e keer, dan hoeft niet alles
Inhoudsopgave
Pagina 61
opnieuw bij de server worden opgehaald, maar kan de pagina uit de cache van de
browser worden getoond.
Het cachen vindt ook vaak plaats op de server. Wordt bij de server een pagina
opgevraagd die al eerder (bijvoorbeeld door iemand anders) is opgehaald, dan is
deze gecached en kan de pagina direct naar de aanvrager (client) worden
opgestuurd. Omdat bijna alle sites tegenwoordig werken met een database, worden
ook de pagina's opgebouwd met informatie uit de database. Dat kost even tijd. Door
pagina's op de server te cachen, is het niet nodig om de database aan te spreken.
Caching kan plaats vinden op elke plek tussen de client en de server. Bijvoorbeeld
ook in een proxy server. Zo'n server wordt vaak gebruikt als meerdere mensen via
één internetverbinding werken, zoals bij organisaties.
Caching kan soms vervelend zijn als jij een website onderhoudt. Kijk je in de
browser of een wijziging goed is doorgevoerd, kan het zijn dat je geen wijzigingen in
de browser ziet. Dan kan het zijn dat je nog kijkt naar de cache. Een paar keer de
pagina herladen of drukken op Ctr-F5 kan hier de oplossing geven.
7.7 FTP
Behalve via websites zijn er ook manieren om bestanden uit te wisselen. Een vrij
technische, maar erg handige methode is via File Transfer Protocol (FTP).
Ook hier heb je een client – de FTP-client – en een server - de FTP-server. Via de
client kun je op je computer contact maken met de FTP-server. Dit is vaak de
webserver. Vervolgens kun je onder andere bestanden heen en weer sturen. Ook kun
je enkele eenvoudige serverhandelingen uitvoeren, zoals het wijzigen van de rechten
van mappen en bestanden op de server.
FTP kan handig zijn als je snel een bestand wil plaatsen op de webserver.
7.8 Snelheid website
In de snelheid van de site spelen verschillende factoren een rol:
• Client-side:
° Performance computer/device
° Kenmerken pagina (complexe code, gebruik JavaScript)
° Snelheid internetverbinding (glasvezel, 3G)
Inhoudsopgave
Pagina 62
• Server-side:
° Kwaliteit netwerk
° Kwaliteit servercode
° Performance server
° Locatie server
• Internet:
° DNS resolving
De snelheid van je site is een belangrijke factor in het succes van je site. Mensen
haken af als het lang duurt voordat de pagina wordt geladen. Je moet dus
controleren of al deze factoren in orde zijn. Maar geen zorgen, in het laatste
hoofdstuk bespreken wij tools waarmee je dit kunt meten.
Inhoudsopgave
Pagina 63
8. HTTP-statuscodes
Als iemand in zijn browser een pagina bezoekt, dan gaat er een verzoek
(request) vanuit zijn browser naar de webserver, waar de site staat. In deze
communicatie gebruiken browser en server zogenaamde HTTP-statuscodes (zie
ook http://nl.wikipedia.org/wiki/Lijst_van_HTTP-statuscodes).
8.1 Overzicht HTTP-codes
De request van de browser aan de server geeft altijd een antwoord (response) van de
server. Deze antwoorden zijn de HTTP-statuscodes of server respons codes.
Deze communicatie moet je je als volgt voorstellen:
• De browser (client):"Mag ik de pagina 'index.html' van jou?"
• De webserver gaat even kijken. Mogelijke antwoorden:
°
"Alsjeblieft, hier is het bestand."(code 200 OK)
°
"Kan hem echt nergens vinden" (code 404 Not Found)
°
'De pagina is verwijderd' (code 410 Gone)
° "Je moet ergens anders zijn. Ik stuur je verzoek door naar het andere adres."
(code 301 Permanent Redirect)
° "Je moet ergens anders zijn. Ik stuur je verzoek door naar het andere adres."
°
(code 302 Temporary Redirect)
"Sorry, maar de website werkt niet." (code 500 Internal Server Error)
8.2 404: Niet gevonden
Als een pagina niet gevonden wordt, krijg je in je browser een 404-melding. Deze
melding geeft de server als hij een adres niet kan vinden.
Het webadres dat je invoerde blijft staan in de adresbalk. Dat is makkelijk, want dan
kun je zien of je wellicht een typefout hebt gemaakt bij het invoeren.
Als eigenaar van een website probeer je te voorkomen dat bezoekers zo'n melding
krijgen. Je kunt het natuurlijk niet altijd voorkomen. Als een bezoeker zelf een
typefout maakt of er staat ergens op een andere site een verkeerde verwijzing naar
jouw site, dan kun jij daar niet veel aan doen. Maar soms ligt de oorzaak wel in je
Inhoudsopgave
Pagina 64
site, bijvoorbeeld als je een pagina hebt hernoemd en geen doorverwijzing hebt
gemaakt van de oude pagina naar de nieuwe.
Er zijn een paar programma's waarmee je kunt controleren of deze meldingen ook op
jouw site voorkomen:
• Hulpprogramma voor Webmasters (zie hoofdstuk 11)
• Screaming Frog (zie hoofdstuk 11)
• Google Analytics of een andere analytics-programma
Wat de site in ieder geval niet moet doen is een zogenaamde zachte 404-melding
geven. Een verkeerd adres wordt dan op de server geredirect naar een andere
pagina. Die pagina lijkt op een 404-pagina, maar is het niet. Je kunt dit zien,
doordat het ingevoerde webadres wordt vervangen door een ander adres. Waarom is
dit niet zo handig?
• Google krijgt dan geen melding dat de pagina niet meer bestaat en past zijn
database niet aan.
• Iemand die het adres heeft ingevoerd ziet dit adres niet meer en weet dus niet of
hij wellicht een typefout heeft gemaakt.
• In de programma's om je site te controleren kun je dan niet meer makkelijk zien
of er 404-meldingen zijn.
Het kan ook zijn dat er een bestand niet gevonden wordt, bijvoorbeeld een
verwijziging naar een JavaScript-bestand, dat niet bestaat. Je krijgt hiervan geen
foutmelding en ziet het dus verder niet. Maar het is wel minder goed voor de
performance. Probeer dit soort fouten ook te voorkomen.
8.3 410-melding (Pagina is weg)
Op dit moment is de trend om websites kleiner te maken. Dat betekent dat je veel
pagina's weg moeten gooien. Hoe doe je dit nu voor zoekmachines en voor je
bezoekers op een nette manier?
Als jij naar een pagina gaat, dan krijgt de webserver een verzoek binnen om deze
pagina te tonen. Als de pagina er niet is, dan wordt normaal gesproken een 404melding gegeven, Niet gevonden. Maar er bestaat ook een responscode 410, en die
betekent 'Verwijderd'. Eigenlijk zou je die dus moeten gebruiken, want daarmee geef
Inhoudsopgave
Pagina 65
je aan zoekmachines aan dat de pagina echt weg is en dat ze deze kunnen
verwijderen uit hun index.
Hoe kun je dit nu voor elkaar krijgen op je site? Dat kan als jij de mogelijkheid hebt
om per pagina een responsheader in te stellen. Dat is vaak niet het geval. In dat
geval is de 404 een goede 2e keus. Ook dan geef je een duidelijke boodschap: de
pagina is er niet (meer) en ook dan verwijdert Google deze uit zijn index.
Controleer verder of jouw site 404-meldingen heeft. Zijn die er, kijk of ze het gevolg
zijn van dode links op je site. Dat kun je eenvoudig onderzoeken met ScreamingFrog,
zie hoofdstuk over tools.
Tot slot zijn er verwijzingen vanaf andere sites naar jouw site. Leiden die
verwijzingen ook naar niet-bestaande pagina's, neem dan contact op met die
organisaties en vraag ze de onjuiste links te verwijderen.
8.4 301-melding (permanente redirect)
De manier om een pagina door te verwijzen is een 301-redirect.
Voorbeeld:
Je hebt een pagina "cursus.html" en je wilt deze hernoemen naar "training.html".
Als je gewoon de naam verandert, dan krijgen de bezoekers die nog cursus.html
intypen een 404-melding. Dat wil je voorkomen, want je wilt graag dat ze toch op
de juiste pagina uitkomen.
Op de server stel je daarom in dat de pagina cursus.html redirect naar
training.html. Dit doe je via een permanente 301-redirect.
Veel CMS-en hebben een tool waarmee je dit kunt doen.
Je kunt ook een hele directory redirecten. Dat kun je zelf met het bestand
.htaccess, maar dit kun je ook aan de webbouwer vragen. In sommige CMS-en kun je
dit ook zelf doen.
Het redirecten van een pagina kan ook in de browser, met een meta-refresh. Dat is
ons inziens altijd af te raden. Meer daarover verderop in het e-book.
Inhoudsopgave
Pagina 66
8.5 302-redirect (tijdelijke redirect)
Als de verwijzing niet definitief is, maar tijdelijk, dan kun je ook een 302-redirect
gebruiken. Dit is zelden het geval en daarom kun je beter in de gangbare situaties
een 301 gebruiken1.
Het verschil met een 301 is bij een 302 dat zoekmachines de oorspronkelijke URL
blijven indexeren. Een ander verschil is dat bij een 302 de oorspronkelijke url in de
adresbalk blijft staan. Bij een 301 komt de bestemmings-url in de adresbalk.
302's worden ook nog wel eens misbruikt door mensen die hun site hoger willen
krijgen in zoekmachines. Conclusie: gebruik voor het redirecten een 301.
8.6 500-melding (serverfout)
Als het probleem op de server ligt, dan kan je een 500-serverfout geretourneerd
krijgen.
Afbeelding 14: 500-melding van Google
Het kan zijn dat de server tijdelijk overbelast is en dat de pagina een paar seconden
later wel geladen wordt. Dit soort fouten wil je echter ook altijd zien te voorkomen.
Via Hulpprogramma's voor Webmasters kun je controleren of deze pagina vaak is
1 www.bigoakinc.com/blog/when-to-use-a-301-vs-302-redirect/
Inhoudsopgave
Pagina 67
getoond aan bezoekers. Zo ja, dan is het tijd om dit verder te onderzoeken,
bijvoorbeeld door het na te vragen bij je provider. Ook kan het reden zijn om om de
performance van je site structureel te gaan meten.
Behalve een 500-fout zijn er ook andere foutmeldingen in de 500-range, zoals een
501 en een 502.
8.7 Foutief gebruik
Soft 404
Sommige sites hebben een algemene pagina waar alle pagina-niet-gevondenmeldingen op uitkomen. deze pagina heeft een eigen adres.
Dus als je zoekt op:
www.ncdt.nl/ikbestaniet/
dan redirect zo'n site naar bijvoorbeeld:
www.ncdt.nl/pagina-niet-gevonden/
De respons van de server is hier echter niet een 404 Page Not Found, maar een 200
OK. Dit heet een "soft 404". Je zou wellicht beter kunnen zeggen een 'fake 404.
Dit heeft allerlei nadelen:
• Zoekmachines herkennen niet dat de pagina niet meer bestaat, want ze krijgen
een 200-melding. Dus blijft de verkeerde verwijzing naar de pagina in hun database.
Foutieve links naar je site blijven bestaan.
• Omdat het adres wijzigt, ziet de gebruiker niet meer welk adres hij heeft
ingevoerd. Stel dat hij een typefout heeft gemaakt, dan ziet hij dat niet meer.
• Het controleren van je site op 404-meldingen wordt iets onhandiger, want je kunt
niet eenvoudig zoeken op de 404's, maar moet gaan zoeken op de naam van de
pagina.
Inhoudsopgave
Pagina 68
Client redirect
Het redirecten van een pagina kan ook in de browser, met een meta-refresh. Meestal
wordt 0 seconden refreshtijd aangehouden, om de pagina direct door te leiden. Deze
browser-redirect heeft echter alleen nadelen:
1. De oude pagina moet eerst geladen worden in de browser voordat deze kan
doorverwijzen. De bezoeker moet hierdoor onnodig langer wachten.
2. Zoekmachines zien niet dat de pagina doorverwijst. Dat is wel het geval bij een
301-redirect: daar krijgt de zoekmachine de juiste responscode (301) terug.
Een browser-redirect van 0 seconden kan zelfs negatieve gevolgen voor de ranking
van je site hebben, omdat zoekmachines dit soms inschatten als spam.
Conclusie: gebruik voor het doorverwijzen altijd een server-redirect.
8.8 Nieuwe structuur van je site
Een ander vraagstuk wat kan spelen is dat je een nieuwe site hebt gekregen met een
nieuwe indeling van de content. Met vaak een nieuw menu. Hoe zorg je er nu voor
dat bezoekers de oude content nog kunnen vinden. OF als deze verdwenen is, hoe ze
wel verder geholpen kunnen worden.
Hierin zijn 3 stappen belangrijk:
• Zorg voor 301-redirects om de oude pagina's door te sturen naar de nieuwe. je
kunt ook een hele directory redirecten, bijvoorbeeld als de directory in de
oude structuur "producten" heette en in de nieuwe structuur "grasmachines".
• Gebruik een 410 voor pagina's die verwijderd zijn en niet logisch geredirect
kunnen worden.
• Genereer een nieuwe sitemap.xml en plaats deze weer op je server. (zie
hoofdstuk 6 over de sitemap) Nog beter: zorg dat je sitemap dynamisch wordt
gegenereerd, zodat deze altijd is bijgewerkt.
Inhoudsopgave
Pagina 69
9. Afbeeldingen op je site
Afbeeldingen op je site maken je content een stuk prettiger om naar te kijken.
Bij het plaatsen van afbeeldingen moet je op een paar dingen letten, zodat de
afbeeldingen ook snel geladen worden en de HTML-code goed blijft.
9.1 Kenmerken afbeelding
Een afbeelding heeft een paar technische kenmerken:
• de resolutie: het aantal pixels per inch of centimeter
• het bestandsformaat: png, gif of jpg
• de afmetingen: de breedte en de hoogte in pixels
• de grootte van de afbeelding in bytes
9.2 Resolutie is niet belangrijk voor het web
Om maar gelijk een mythe de wereld uit te helpen: de resolutie van een afbeelding
is voor het web helemaal niet belangrijk.
Meer hierover lezen? Zie www.photoshopessentials.com/essentials/the-72-ppi-webresolution-myth/.
Toegegeven, ook ik heb lang gedacht dat een afbeelding een resolutie van 72 pixels
per inch moest hebben. Maar de resolutie heeft enkel te maken met het printen
(drukken) van de afbeelding, niet met de weergave op een beeldscherm. Dus de
resolutie die een afbeelding heeft kun je gerust zo laten staan.
9.3 Bestandstype
Voor afbeeldingen voor het web zijn 3 geschikte formaten:
• GIF: geschikt voor afbeeldingen met vlakken, zoals logo's
• JPEG: geschikt voor afbeeldingen met veel kleuren, zoals foto's
• PNG: geschikt voor alle soorten afbeeldingen (combinatie van GIF en JPEG).
Een belangrijk kenmerk van GIF en PNG is dat zij ook transparantie ondersteunen.
PNG lijkt dus het ideale formaat, omdat het voor alle type afbeeldingen geschikt is,
maar PNG blijkt vaak veel grotere bestanden op te leveren dan GIF of JPEG. Ons
advies: kies voor JPEG of GIF.
Inhoudsopgave
Pagina 70
Afbeelding 15: Afbeelding met vlakken, opslaan als GIF of PNG
Afbeelding 16: Afbeelding met veel kleuren, opslaan als JPEG of PNG
Inhoudsopgave
Pagina 71
9.4 Formaat van de afbeeldingen
Dan de grootte van de afbeeldingen in pixels. Wat je moet voorkomen is dat de
afbeelding geresized wordt in de browser. Dat gebeurt als de afbeelding in een
groter formaat op de server staat als dat deze in je webpagina getoond wordt. Dus
als het formaat waarop de afbeelding getoond wordt 100 bij 200 pixels is (dus het
formaat in de browser), dan moet de afbeelding op de server exact dezelfde maten
hebben.
Vaak staat de afbeeldingsgrootte in de HTML aangegeven. In de browser kun je dit
zien als je de HTML bekijkt van de afbeelding, bijvoorbeeld:
<img src="plaatje.gif" alt="" width="100" height="200">
Het betekent niet dat deze maten ook de echte afmetingen van de afbeelding zijn.
Je kunt checken of de grootte in de browser klopt met de werkelijke grootte van de
afbeelding met de tool Web Developer in Firefox. Kies dan de optie Images » Make
Images Full Size (zie het volgende hoofdstuk voor een uitleg).
Het groter of kleiner maken van een afbeelding in de browser heet resizen. Het
resizen in de browser heeft een aantal nadelen:
• Downloaden van een te grote afbeelding kost onnodig meer tijd.
• De afbeelding wordt onscherper, want een browser kan slecht verkleinen en
vergroten.
Zorg dus dat het juiste formaat van de afbeelding al op de server staat. Sommige
CMS-en zorgen voor het aanpassen van de afbeelding op de server, maar veel CMS-en
doen dit niet. In dat geval moet je de afbeelding al in de goede maten maken vooraf
in een fotoprogramma. Voorbeelden van fotoprogramma's zijn:
• IrfanView (voor Windows, gratis)
• Voorvertoning en Pixelmator (voor de Mac)
• Photoshop Elements (Windows en Mac).
Je hebt ook nog online programma's, zoals www.pixlr.com.
9.5 Grootte van de bestanden
Met grootte bedoelen we hier het aantal bytes van de afbeelding. Meestal gaat het
dan over kB's. Hierbij staat k voor kilo: 1 kB is 1.024 bytes.
Inhoudsopgave
Pagina 72
Een foto op een website kan vaak vrij licht (in bytes) blijven. Bij veel
fotoprogramma's kun je bij het opslaan kiezen voor een bepaalde kwaliteit. Kies dan
de laagste kwaliteit waarbij je vindt dat de afbeelding er op het scherm nog steeds
goed uitziet.
In Photoshop Elements gebruik je hiervoor de optie "Opslaan voor het web".
Vervolgens kun je kijken welk bestandstype goed is (GIF, JPEG of PNG) en welke
kwaliteit minimaal nodig is.
Afbeelding 17: Opslaan voor het web in Photoshop
9.6 Positioneren van afbeeldingen
Een afbeelding kun je links, midden of rechts uitlijnen. Ook kun je aangeven of er
nog wat ruimte tussen de afbeelding en de tekst moet komen.
Dit positioneren kun je op 2 manieren:
• met opmaakcode in de HTML, bijvoorbeeld met een inline-style (zie het hoofdstuk
over HTML en CSS)
• met een class, waarmee je verwijst naar de opmaak in de CSS
Inhoudsopgave
Pagina 73
Dé manier om het te doen is de methode met een class. In een CMS betekent dit
bijna altijd dat je de afbeeldingen moet positioneren met de optie "Uitlijnen": daar
kun je kiezen tussen links, rechts of midden. Als het goed is koppelt je CMS dan een
"class" aan de afbeelding. Deze classes zijn gedefinieerd in de CSS van je site,
bijvoorbeeld:
.img-right {
float:right;
padding: 4px 0 4px 8px; /* ruimte tussen afbeelding en tekst */
}
In de HTML ziet het er dan als volgt uit:
<img src="afbeeldinkje.gif" class="img-right" alt="leuke afbeelding">
De andere opties van je CMS, zoals het aangeven van de grootte van de afbeelding
en het aangeven van ruimte tussen de afbeelding en de tekst kun je beter niet
gebruiken, want die geeft opmaakcode in je HTML.
Door het uitlijnen van afbeeldingen te doen met classes zorg je ook voor een
uniforme lay-out van je website; immers als je kiest voor bijvoorbeeld links
uitlijnen, dan gebeurt dat in de hele site op dezelfde manier.
Hieronder de wijze waarop de editor TinyMCE dit aanbiedt:
De opties die je niet moet gebruiken zijn:
Inhoudsopgave
Pagina 74
• Uitlijning
• Afmetingen aanpassen
• Verticale ruimte
• Horizontale ruimte
• Rand
• Stijl
Deze opties geven allemaal een style-attribuut, en die willen we liever niet, onder
andere omdat er dan opmaakcode in de HTML staat.
De enige optie om wel te gebruiken is "Klasse".
9.7 Naamgeving van afbeeldingen
Een afbeelding kun je elke naam geven, maar omdat afbeeldingen getoond worden
op het web, kiezen wij zelf altijd voor bepaalde kenmerken:
Inhoudsopgave
Pagina 75
•
Gebruik alleen kleine letters
•
Gebruik geen spaties
•
Gebruik koppeltekens in plaats van liggende streepjes
Gebruik kleine letters
Voor sommige servers is er verschil tussen "Hond" en "hond". Om vergissingen te
voorkomen is ons advies om standaard altijd alleen kleine letters aan te houden, dus
"hond".
Gebruik geen spaties
Webadressen kennen in principe geen spaties. Omdat de afbeelding ook een
webadres heeft, is het beter om in de afbeeldingsnaam geen spaties te gebruiken.
Gebruik koppeltekens tussen woorden
Zoekmachines zien woorden waar underscores (liggende streepjes) als 1 lang woord.
"tim_james" is dus voor Google "timjames". Als je een koppelteken
(verbindingstreepje, min-teken of in het Engels een hyphen) gebruikt, dan zien
zoekmachines het wel als losse woorden. In het voorbeeld hiervoor wordt het dan
"tim-james"
Voorbeeld:
Niet goed zijn:
"Trouwlocatie Amerpoort.jpg" en "Trouwlocatie_amerpoort.jpg
Wel goed is:
"trouwlocatie-amerpoort.jpg
9.8 Alt, title en omschrijving
Een afbeelding kan extra informatie in de HTML meekrijgen met zogenaamde
attributen. Er zijn 3 attributen die vaak gebruikt worden;
• alt-attribuut voor alternatieve tekst
• title-attribuut voor de titel
• longdesc voor de link naar de omschrijving
Inhoudsopgave
Pagina 76
Alt-attribuut: verplicht bij betekenisvolle afbeelding
Als een afbeelding betekenis overbrengt is een beschrijvende alt-tekst nodig. Dit is
bijvoorbeeld nodig voor blinde gebruikers, die de afbeelding niet kunnen zien. Met
het alternatief krijgen ze toch de informatie van de afbeelding.
Brengt de afbeelding geen extra informatie over, dan mag de alt-tekst leeg blijven.
Title-attribuut: bijna nooit nodig
Het title-attribuut geeft de bekende mouse-over-tekst zodra je met de muis over de
afbeelding beweegt. Het title-attribuut heeft geen toegevoegde waarde. Deze kan
bijna altijd beter leeggelaten worden.
Longdesc: alleen voor link bij complexe afbeeldingen
Met de longdesc kun je een link opnemen naar een pagina. Dit is handig als de
afbeelding te complex is om in een korte alternatieve tekst op te schrijven. Helaas is
de ondersteuning niet bij alle browsers goed. Gebruik je de longdesc, zorg dan
daarnaast altijd voor een link naar de pagina2.
In HTML zien deze attributen als volgt uit:
<img alt="Boswerf Bezoekerscentrum;" class="img-right"
longdesc="/images/boswerf.html" src="/images/boswerf.jpg;" title="Foto: Ronald
Grip">
2 Zie ook http://webaim.org/techniques/images/longdesc
Inhoudsopgave
Pagina 77
10. Tekst invoeren met je CMS-editor
Een klein plekje in dit e-book over het invoeren van tekst lijkt ons wel handig.
10.1 Semantisch opmaken
Als je een tussenkop in je CMS invoert kun je deze even vet maken. Voor het oog ziet
dit er uit als een kop, maar er is in de code niets dat aangeeft dat het een kop is.
Daardoor weten zoekmachines en mensen die jouw tekst niet kunnen zien – zoals
blinden – niet dat het een kop is. Bij het opmaken heb je dus geen betekenis – of
semantiek – meegegeven aan de tekst.
Als je de tussenkop opmaakt met bijvoorbeeld een Kop 2 (heading 2 of h2), dan
krijgt het deze betekenis wel mee. Kop 2 is een opmaakprofiel en in vrijwel elke
editor zit een knop voor het toevoegen van opmaakprofielen.
Afbeelding 18: Opmaakprofilelen in de editor van een CMS
Doordat de tussenkop nu ook opgemaakt is als kop, weten zoekmachines en
screenreaders dat de tekst een kop is. En op deze manier is de structuur die jij
aanbrengt aan de tekst duidelijk voor iedereen en alles.
Semantiek is een kernbegrip van het moderne internet. Het semantische web wordt
ook wel Web 3.0 genoemd (zie bijvoorbeeld
http://nl.wikipedia.org/wiki/Semantisch_web).
Inhoudsopgave
Pagina 78
Met semantisch opmaken bedoelen we dat de betekenis die jij aanbrengt in teksten
ook opgenomen is in de onderliggende HTML-code.
Voorbeelden van semantisch opmaken zijn:
• kopopmaakprofielen (headings) voor titels van pagina's en tussenkoppen
• de opsommingsoptie uit je editor voor opsommingen
• opmaakprofiel tabelkop gebruiken voor tabelkoppen
• het legend-element voor de kop van een fieldset in een formulier
10.2 Scheiden van opmaak en content
Naast semantiek is de scheiding van opmaak en content ook een kernelement van
het web. De regel is dat alle content in de HTML staat en dat de opmaak in de CSS
staat. Dat is in lijn met de genoemde opmaakprofielen. Bij het gebruik van een
opmaakprofiel – zoals kop 2 voor een tussenkop – maak je namelijk niet op, maar
geef je de betekenis mee dat de tekstregel een tussenkop is. Via de CSS wordt dit
vervolgens opgemaakt zodat het er ook uitziet als een kop. (Meer over HTML en CSS
staat in het hoofdstuk over HTML en CSS.)
Bij het invoeren van teksten en afbeeldingen zorgen we dan ook voor een vrij strikte
scheiding van content en opmaak. Dat betekent:
• Meer ruimte tussen alinea's maak je niet met een extra lege regel, maar door de
CSS van de alinea's te wijzigen.
• Een kop maak je niet gewoon vet via je editor, maar geef je het kopopmaakprofiel
mee.
• Bij het plaatsen van een afbeelding geef je deze niet extra witruimte via het
aanpassen van de witruimte om de afbeelding, maar door het juiste opmaakprofiel
te kiezen. (zie ook het hoofdstuk over Afbeeldingen).
Een woord vet of cursief maken kan wel, want ook daar geef je in feite semantiek
mee aan: dat woord heeft extra nadruk.
Je moet voorkomen dat er opmaakinformatie in je HTML staat.
10.3 WYSIWYG-modus en tekstmodus
Tegenwoordig heeft elk CMS een zogenaamde What-You-See-Is-What-You-Get-modus
(WYSIWYG) voor zijn editor. WYSIWYG is een term die komt uit de Oudheid en is
Inhoudsopgave
Pagina 79
bedoeld om aan te geven dat wat jij op je scherm ziet ook zo uit de printer rolt. (Ja,
dat is lang geleden toen ze die term uitvonden.)
Vergelijk het met de look & feel van Word.
Naast de WYWISYG-modus heeft (gelukkig) bijna elke editor ook een tekstmodus of
een HTML-modus. Hieronder zie je een voorbeeld van Wordpress:
Afbeelding 19: Tekstmodus in WordPress
En hieronder zie je editor in het CMS ModX: rechts in de knoppenbalk zie je een knop
HTML om naar de HTML-modus te gaan:
Afbeelding 20: WYSIWYG-modus in ModX met knop HTML
Als je niet weet hoe dat in je eigen CMS zit, bekijk dan even hoe dat daar zit. Voor
het opruimen van die rommelcode is de tekst- of HTML-modus noodzakelijk!
10.4 Rommelcode
Als je werkt met een CMS zul je regelmatig een stukje tekst ergens vandaan halen
om die te plaatsen in je eigen site. Dan heb je ook vast wel eens gemerkt dat het
niet eenvoudig copy & paste is. Als je dat doet, komt er allerlei rommelcode mee.
Wegkrijgen is vaak a hell of a job, om gek van te worden, want die rotcode blijft er
maar in staan. Hieronder leggen we uit hoe je die ongewenste code kunt voorkomen
en kunt verwijderen.
Eerst even een uitleg over die ongewenste HTML-code. Als voorbeeld neem ik
onderstaande tekst:
Doel van sociale media
Inhoudsopgave
Pagina 80
Het doel van sociale media is om zichtbaar te zijn als gemeente, maar vooral om
snel online met specifieke doelgroepen in contact te komen, informatie/kennis uit
te wisselen en signalen op te pikken uit de samenleving.
Ik kopieer dat vanuit Word en plak dat direct in een CMS-pagina. Als ik vervolgens de
HTML-code van de pagina bekijk, zie ik het volgende:
<p><span style="color: #4f81bd;"><span style="font-family:
Cambria,serif;"><span style="font-size: medium;"><b><span
style="color: #00000a;"><span style="font-family: Arial,serif;"><span
style="font-size: small;">Doel van sociale
media</span></span></span></b></span></span></span><br />
Het doel van sociale media is om zichtbaar te zijn als gemeente, maar vooral om
snel online met specifieke doelgroepen in contact te komen, informatie/kennis uit te
wisselen en signalen op te pikken uit de samenleving.</p>
Wat je ziet is dat er allerlei opmaakcode is meegekomen. Voor de duidelijkheid heb
ik die even onderstreept. In HTML hoort geen opmaakcode, want die hoort in de CSS
(zie het hoofdstuk over HTML en CSS).
Maar wellicht nog belangrijker voor je, die opmaak wil je waarschijnlijk helemaal
niet.
In de volgende paragrafen leg ik uit hoe je deze code kunt voorkomen en hoe je deze
weghaalt.
10.5 Voorkomen van ongewenste code
Er zijn een paar manieren om deze ongewenste meeliftende code te voorkomen. Het
is afhankelijk van je editor van je CMS welke methode werkt. De opties, van
makkelijk naar moeilijk:
1. In de WYSIWYG-modus van je editor: plak de tekst met Ctrl-Shift-V (Shft-⌘-V
voor Mac-gebruikers)
2. In de HTML-modus of tekstmodus van je editor: plak de tekst met Ctrl-V (⌘-V
voor de Mac)
Inhoudsopgave
Pagina 81
3. Plak de tekst in Kladblok, kopieer deze vervolgens en plak deze in je
invoerveld in je CMS.
Je begrijpt dat optie 3 nogal omslachtig is, en optie 1 het makkelijkst. Probeer het
in eens in je CMS. Als optie 1 werkt, ben je een blij mens.
10.6 Ongewenste HTML-code weghalen
Maar goed, soms staat die rotzooi-code er toch in.
Gelukkig bieden veel CMS-en tegenwoordig een met een goed werkende
schoonmaakfunctie (knopje in de editor). Dit zou je als eerste kunnen gebruiken.
Werkt dat niet, probeer dan het volgende:
1. Ga naar de HTML-modus (heet soms tekstmodus) van je editor.
2. Heb je de brontekst nog ergens bij de hand, haal dan alle code weg, kopieer de
brontekst opnieuw, en plak de tekst met Ctrl-V (⌘-V voor Mac-gebruikers).
3. Heb je de brontekst niet meer bij de hand, verwijder dan de rommelcode.
4. Weet je niet goed wat nu precies de rommelcode is, gooi dan alle HTML-code
weg die je ziet en laat alleen de content staan.
Ga vervolgens terug naar de WYSIWYG-modus en maak daar de tekst op.
10.7 Controleren op ongewenste HTML-code
Hoe weet je nu of er ongewenste code in je pagina's is geslopen?
Wil je per pagina kijken, dan kun je het makkelijkst dit in de broncode van de pagina
controleren. Bij de meeste browsers kun je hiervoor de rechtermuisknop gebruiken.
Kies dan "Broncode bekijken" of een vergelijkbare tekst.
Wil je je hele site hierop controleren, dan kan dat perfect met de tool
ScreamingFrog. Zie daarvoor het volgende hoofdstuk Tools om je website te testen.
Inhoudsopgave
Pagina 82
11. Apps: native apps, webapps en hybride apps
Een app is een klein programmaatje dat draait op een mobiele telefoon of een
tablet. Naast apps heb je ook webapps. En nog een combinatie van beide: de
hybride apps. Als je overweegt een app te ontwikkelen, is het belangrijk dat je
voor- en nadelen van deze opties kent.
In onderstaande tekst hebben we gebruik gemaakt van het goede artikel Wat is
het verschil tussen een native app, webapp of hybride app? op de website van
Spijker& co.
11.1 Native apps
Een app die speciaal ontwikkeld is voor gebruik op een mobiele telefoon of tablet is
een native app. De app kun je niet openen in een browser en is daarmee wezenlijk
anders dan een webapp (zie verder). Een app specifiek ontwikkeld voor mobiel heeft
de potentie om heel gebruiksvriendelijk te zijn.
Voordelen
• Maximaal gebruik van alle beschikbare functionaliteiten van het apparaat
• Integratie mogelijkheden met andere apps
• Toegang tot de smartphone-bibliotheek voor gebruik van media
• Geen internetverbinding nodig
• Hogere snelheid op het apparaat
Nadelen
• Per platform (Apple iOS, Android, Windows mobile) moet er ontwikkeld worden
• Goedkeuring voor plaatsing in de store nodig
• Verandering/update in de software van het platform kan betekenen dat de
techniek aangepast moet worden
11.2 Webapps
Een webapp is in feite een soort mini-website. Het wordt gebouwd in HTML, CSS en
JavaScript.
Inhoudsopgave
Pagina 83
Het voordeel van een webapp is dat deze vrij goedkoop is om te ontwikkelen. Een
goed voorbeeld van een webapp is de afval-app, die veel gemeenten hebben. Je
voert je postcode in en je ziet gelijk wanneer je je vuilnis buiten moet zetten.
Voordelen
• Voor alle browsers is slechts 1 webapp nodig.
• App is altijd up-to-date
• Beperkt gebruik van specifieke beschikbare sensoren van je smartphone of tablet
(locatie, accelerometer)
• Niet afhankelijk van goedkeuring voor plaatsing in een store
• Relatief lage ontwikkelkosten
Nadelen
• Niet alle functionaliteit van een mobiele telefoon of tablet kan gebruikt worden
• Geen opslag van data op het toestel zelf, dus altijd verbinding met internet nodig
• Geen distributiekanaal (store)
• Technisch gezien zijn er beperkingen doordat je beperkt ben tot de mogelijkheden
van HTML, CSS en JavaScript.
11.3 Hybride apps
Een hybride app combineert de webapp met een native app. De voor- en nadelen
zitten daarom ook tussen beide mogelijkheden in. Het is goedkoper dan een app,
duurder dan een webapp en biedt net wat meer mogelijkheden da de webapp.
Voordelen
• De gecombineerde mogelijkheden van een native en een webapp
• Flexibiliteit
• Minimale uitbreidingen mogelijk zonder een echte release in de store
Nadelen
• Hybride kan een reden zijn tot afwijzing van het plaatsen in de store.
• Onderhouden van 2 omgevingen betekent meer kosten op de lange duur
Inhoudsopgave
Pagina 84
11.4 Wat moet je nu kiezen
Als je je content wil aanbieden voor mobiele platforms, welke vorm moet je dan
kiezen? En om het geheel nog moeilijker te maken: je hebt nog responsive sites:
sites die zich aanpassen aan het beeldscherm van je gebruiker. Er zijn dus 4
varianten.
Het beste kun je beginnen met je website responsive te maken. Je hebt dan maar 1
site om te onderhouden. Een responsive site werkt op een mobiel scherm, op een
tablet zoals een iPad en op een desktop. Dus dan bedien je iedereen.
Maar apps bieden aanvullend een belangrijke voordelen, dus een app kan daarna nog
steeds van meerwaarde zijn voor jouw klanten. Dit is wel een apart project en je
zult de app moeten ontwikkelen én onderhouden.
Begin daarom met een goed strategisch plan:
1. Welk probleem van jouw klant wil je oplossen?
Is het wel een probleem van de klant of is het een wild niet onderbouwd idee van
het management? Misschien bestaat het vraagstuk niet eens (behalve bij je
manager) of kan het probleem al opgelost worden door je website responsive te
maken.
2. Welke functionaliteit is nodig?
Als je eerst een webapp bouwt en je merkt na 2 maanden dat je eigenlijk een
app nodig hebt, dan heb je onnodig geld verspild aan de webapp. Bedenk daarom
vooraf wat nodig is om het probleem effectief op te lossen.
3. Welk budget heb je?
Van goedkoop naar duur: responsive site, webapp, native app en hybride app.
4. Voor welke platformen wil je ontwikkelen?
Pak je webstatistieken erbij en bekijk welke platformen veel gebruikt worden.
Het is vaak al voldoende als je ontwikkelt voor Android en voor iOS van Apple.
Inhoudsopgave
Pagina 85
12. Tools om je website te testen
Toegankelijkheid toetsen met toetsenbord – Google Search Console – Web
Developer (add on voor Firefox) – ScreamingFrog - Colour Contrast Analyser Testen op kleurenblindheid – HTML_CodeSniffer - WAVE Accessibility Tool –
Pingdom Website Speed Test
12.1 Toegankelijkheid toetsen met toetsenbord
(Met dank aan de informatie op http://iacobien.nl/artikelen/tools/).
De makkelijkste en goedkoopste toets op toegankelijkheid is kijken of alles op je site
bereikbaar en bruikbaar is met het toetsenbord. Kun je met de tab-toets, de pijltjestoetsen en de spatiebalk alles bereiken en alles gebruiken?
Testen
•
Focus zichtbaar: zie je bij het tabben door de site? Gebruik hiervoor Firefox,
want bijvoorbeeld Chrome voegt hier zelf een randje aan toe.
•
Logische tabvolgorde: ga je op een logische manier door een formulier of een
menu?
•
Alles bereikbaar: kun je alles bereiken met het toetsenbord? Ook de
bedieningsknoppen van een video of een carrousel?
•
Geen toetsenbordval: blijf je niet hangen op een bepaalde link, bijvoorbeeld
dat je wel een video in kunt komen maar er nooit meer uit?
Instellen toetsenbordtoegankelijkheid op een Mac
Op een Apple-computer moet je de browser aanpassen om te kunnen testen.
Safari:
Voorkeuren » Geavanceerd » Tabtoets markeert elk onderdeel op de
webpagina
Firefox: Systeemvoorkeuren (van de Mac) » Toetsenbord » Toetscombinaties »
Check radiobutton onderaan ‘Alle regelaars’.
Chrome: Voorkeuren » Instellingen » Webinhoud » Vink aan ‘Als u op een webpagina
op Tab drukt worden links en velden in een formulier gemarkeerd’.
Inhoudsopgave
Pagina 86
12.2 Controle alternatieve teksten afbeeldingen
Een informatieve afbeelding moet een alternatieve tekst krijgen. Dit kun je toetsen
met Web Developer (zie verder), maar ook in Firefox:
Extra » Pagina-info » Media
12.3 Google Search Console
Google Search Console heette vroeger Hulpprogramma’s voor webmasters. Je vind
dit bij de producten van Google. We bespreken dit verder niet in dit e-book.
12.4 Web Developer (add on voor Firefox)
Een handige add-on voor Firefox is Web Developer, te vinden op
https://addons.mozilla.org/nl/firefox/addon/web-developer/.
Als je Web Developer hebt geïnstalleerd heb je een extra werkbalk boven je
adresbalk, zie hieronder (even in tweeën geknipt voor de leesbaarheid van de tekst).
De balk bevat de volgende onderdelen:
1. Disable
5. Images
9. Resize
2. Cookies
6. Information
10.Tools
3. CSS
7. Miscellaneous
11.View Source
4. Forms
8. Outline
12.Options
Handige opties zijn:
Inhoudsopgave
Pagina 87
• Disable » JavaScript
Javascript uitzetten, zodat je kunt zien hoe de site werkt als Javascript niet
werkt.
• Forms » Populate form fields
Handig om een formulier te testen. Met deze optie worden alle velden ingevuld.
• Images » Display alt-attributes
Toont alle alt-teksten van afbeeldingen
• Images » Make images full size
Controle of de redacteur de afbeeldingen wel in de juiste grootte heeft geplaatst.
• Outline » Outline Headings
Voor controle of je de koppen goed hebt opgemaakt.
• Outline » Outline Tables » Outline Table Cells
Controle of er tabellen op de pagina zijn gebruikt.
• Tools » Validate HTML
Controle of je bij de invoer geen ongeldige HTML hebt ingevoerd.
De tool heeft meer mogelijkheden, dus bekijk de tool gerust verder.
12.5 Screaming Frog
Onze meest geliefde tool voor het controleren van een site is Screaming Frog, te
vinden op www.screaming-frog.co.uk. Er is een gratis versie en een betaalde. Deze
laatste kost ongeveer € 120, maar die is zijn geld meer dan waard. Hieronder
bespreken we de betaalde versie. In de training Webtechniek bespreken we deze
tool uitgebreid.
Screaming Frog is een spider. Dus net zo'n stukje software als Google gebruikt voor
het indexeren van jouw site. Hij bezoekt alle pagina's, bekijkt de code en bekijkt
ook bijvoorbeeld welke server-response-codes worden teruggegeven.
Je kunt met deze tool bijvoorbeeld controleren:
• Gebruik van inline stijlen (zie het hoofdstuk over CSS). Je controleert dan op
de code "style=""
Inhoudsopgave
Pagina 88
•
•
•
•
•
•
404-meldingen
lengte title
lengte h1
aanwezigheid alt-tekst
aanwezigheid tabellen (die je dan met de hand kunt controleren)
aanwezigheid Google Analytics- of Piwik-trackingcode
Hieronder werken we ScreamingFrog uit met enkele voorbeelden.
Spideractie starten
1. Open ScreamingFrog.
2. Ga naar het invoerveld bovenin "Enter URL to spider".
3. Voer daar jouw domeinnaam in en klik op Start.
4. Bij een normale verbinding scant ze zo'n 1.000 url's per minuut.
5. Als de spider na 10 minuten nog doorgaat of als je intussen al duizenden pagina's
hebt geïndexeerd, klik dan op stoppen. Op sommige onderdelen, zoals agenda's,
blijft ze maar "doorspideren".
6. Als je op een later moment verder wilt met de resultaten kun je deze ook
opslaan.
Controleren 404-meldingen
1. Als het goed is in het bovenste menu het tabblad "Internal" open, zie screenshot
hieronder.
Inhoudsopgave
Pagina 89
2. Klik in het venster met de webadressen op Status Code, zodat deze aflopend
sorteert. Als er 404-meldingen zijn, komen deze bovenaan (tenzij er nog 500meldingen zijn).
3. Selecteer een 404-melding.
4. Kies uit het ondermenu de optie In Links (zie screenshot hierboven). Daar zie
je de pagina staan die leidde tot een 404-melding.
5. Bekijk daar de anchor text. Dit is de linktekst. Gebruik deze om op de pagina
waar de dode link staat te zoeken naar de dode link zelf.
Controleren op unieke paginatitels
Het belangrijkste kenmerk van elke pagina is de paginatitel. Deze vind je in het
HTML-element title. Voor Google is het belangrijk dat elke pagina een unieke titel
heeft. Als dat niet het geval is en je hebt 2 verschillende pagina's met dezelfde titel
is dat verwarrend voor Google.
Het is ook belangrijk voor de bezoekers van je site, want als ze in de zoekresultaten
van Google 2 resultaten zien met dezelfde titel, welke pagina is dan de juiste?
Inhoudsopgave
Pagina 90
Vergelijk dit met dat je een boekhandel binnenloopt en er liggen 2 verschillende
boeken met dezelfde titel. Welk boek was nu het boek dat je wilde kopen?
Ergo: het is een goed streven om elke pagina een unieke titel te geven. Om te
controleren of je dat gedaan gebruik je ScreamingFrog.
1. Kies in het bovenmenu voor Page Titles.
2. Kies in het filter voor Duplicate (zie screenshot hieronder).
3. Je krijgt nu een overzicht van pagina's die geen unieke titel hebben.
Er zijn verschillende oorzaken van duplicate titels. We noemen enkele voorbeelden:
• Webadressen zijn bereikbaar op http EN https. Het is beter slechts 1 protocol te
gebruiken, waarschijnlijk bij voorkeur het https-protocol.
• De website is bereikbaar op met en zonder www in het webadres. Beter is het om
hier 1 domein voor te kiezen.
• Alle nieuwsberichten hebben de titel 'Nieuws". Beter is het om hier elk
nieuwsbericht zijn eigen titel te geven, namelijk de titel van het nieuwsbericht.
Custom filters
Handig in de betaalde versie van ScreamingFrog is het onderdeel Custom filters.
Daarmee kun je zoeken op tekstfragmenten, bijvoorbeeld op het gebruik van inline
stijlen (zie het hoofdstuk over CSS).
Inhoudsopgave
Pagina 91
Je komt daar via Configuration » Custom (zie screenshot).
In het dialoogvenster dat je dan krijgt, stel je de filters in, zie volgend screenshot.
Je kunt daar de filters instellen. Hierboven hebben we bijvoorbeeld enkele filters
ingesteld om te kijken of er opmaakcode in de HTML staat. De code "<table" is
opgenomen om handmatig de tabellen te controleren op toegankelijkheid.
Indexeer vervolgens de hele site. Ga dan in het bovenmenu naar het item "Custom"
en daar zie je alle URL's die voldoen aan een filter.
Je kunt deze optie ook gebruiken om te controleren of de Google Analytics
trackingcode overal geïnstalleerd is.
Inhoudsopgave
Pagina 92
Na het instellen van de custom variables moet je wel opnieuw je website spideren
met ScreamingFrog.
12.6 Colour Contrast Analyser
De laatste tool die we hier bespreken is Colour Contrast Analyser. Dit is een klein
programmaatje, het werkt onder Windows en op de Mac. Je kunt het downloaden
van www.paciellogroup.com/resources/contrastAnalyser.
Het programma spreekt waarschijnlijk voor zich. Voor de analyse van het
kleurcontrast kies je de kleur van de voorgrond en de kleur van de achtergrond. Dat
gaat als volgt:
1. Klik op het witte vlak bij Kleurkeuze.
2. Er opent een dialoogvenster. Klik daar op het vergrootglas.
3. Je kunt dan de kleur aanstippen van datgene dat je wilt onderzoeken.
Inhoudsopgave
Pagina 93
Als je in het eerste venster gekozen hebt voor Luminositeit, dan krijg je in het
scherm eronder het contrastratio.
12.7 WCAG Contrast Checker (add on voor Firefox)
Een andere handige tool om het contrast van tekst met achtergrond te testen is de
WCAG Contrast Checker,
zie https://addons.mozilla.org/nl/firefox/addon/wcag-contrast-checker/ De tool
geeft op basis van je CSS al direct aan of er contrastproblemen zijn. Zelf kun je het
contrast testen door met een pipet de voorgrondkleur en de achtergrondkleur te
selecteren.
Inhoudsopgave
Pagina 94
12.8 Testen op kleurenblindheid
Er zijn online verschillende tools. We hebben daar echter nog weinig ervaring mee.
Weet je een goede tool, mail ons graag op [email protected].
Een tool is www.etre.com/tools/colourblindsimulator/.
12.9 HTML_CodeSniffer
HTML_CodeSniffer is een handig programma om te checken of de HTML van een
webpagina voldoet aan de richtlijnen voor toegankelijkheid. De tool kun je
downloaden van http://squizlabs.github.io/HTML_CodeSniffer.
Met toegankelijkheid wordt bedoeld: de bruikbaarheid van de site voor mensen met
een functionele beperking. Er zijn internationale richtlijnen voor
webtoegankelijkheid, de Web Content Accessibility Guidelines (WCAG) 2.0.
HTML_CodeSniffer test in hoeverre de HTML van de pagina voldoet aan WCAG 2.0.
Nadat je de tool hebt geïnstalleerd, ga je naar een pagina die je wilt testen. Klik in
je bladwijzerbalk op HTML_CodeSniffer en je krijgt een rapportage, dat er ongeveer
zo uit ziet als in onderstaande afbeelding.
Inhoudsopgave
Pagina 95
12.10 WAVE Accessibility Tool
Op wave.webaim.org/ vind je nog een tool om jouw website te testen op
toegankelijkheid. Bekijk in ieder geval de errors: dat zijn de items die niet voldoen
aan WCAG. In de linkerbalk kun je kiezen voor:
•
Summary
•
Details
•
Documentation
•
Outline: overzicht van alle headings die op de pagina worden gebruikt.
Bij details kun je nog kiezen voor Level A of level AA.
Inhoudsopgave
Pagina 96
12.11 Pingdom Website Speed Test
Een van de factoren die het meest bijdragen aan de tevredenheid van gebruikers en
de vindbaarheid van je site in zoekmachines is de laadsnelheid van je site.
Op Pingdom Website Speed Test kun je je site testen op snelheid. Je vindt de site op
http://tools.pingdom.com/fpt/.
Inhoudsopgave
Pagina 97
Wil je je site testen voor Nederland, klik dan op Settings en check Amsterdam aan.
Vul vervolgens het domein in klik op Test Now.
Eventjes wachten en dan krijg je het rapport. Belangrijk is de melding hoe snel je
bent in vergelijking met andere sites. Onze ervaring is dat als je onder de 70 %
functioneert, jouw website te traag is.
De snelheid kun je ook nog testen met pagespeed insights van Google en de Yslowextensie van Firefox/Chrome.
Er zijn ook tools die permanent de snelheid monitoren.
–––
Einde e-book
Inhoudsopgave
Pagina 98
Download