Haarvisie verslagen
← Alle verslagen📄 Download als PDF
🎧 Luister dit verslag
1,0x
⬇️ Download naar telefoon
📖 Lees mee met de podcast

Hallo Jamal! Welkom bij een speciale podcast-update over je Appel 2.0 cross-check examen. Ik ga je door het nieuwste technische rapport leiden, maar dan wel in klare taal, zodat je precies weet hoe je app ervoor staat. Dit examen is een grondige controle geweest, uitgevoerd met geautomatiseerde tools die de app nabootsen in verschillende schermformaten, en ook met handmatige vergelijkingen. We hebben ons gefocust op de ‘test-leerling’ en Dani’s gegevens zijn onaangeroerd gebleven – precies zoals we wilden. Alle live bestanden zijn vergeleken met lokale kopieën en zijn identiek, en je lokale test-suite staat strak op 55 van de 55 groene vinkjes. Dat is alvast een hele geruststelling!

Laten we beginnen met de voordeur, zeg maar de homepage van de app. We hebben deze getest in vier verschillende staten en op twee schermformaten. Goed nieuws: er waren geen consolefouten, geen horizontale scrollbalken die je layout verpesten, en ook geen afgeknipte teksten. De voorleestekst is overal netjes gevuld en zonder gekke woorden. Dit is een sterke basis.

Maar, er is wel een belangrijk aandachtspunt. Stel je voor dat je op de voordeur vier taken afvinkt, terwijl er in totaal acht verborgen items wachten. De app zegt dan vrolijk: "Alles af. Jij bent vrij, ik ook. 😎" Dit kan natuurlijk verwarrend zijn, want je bent nog niet klaar! Dit is iets waar we echt naar moeten kijken. Daarnaast viel op dat sommige klikgebieden, zoals de vinkjes of de knop ‘de planning’, kleiner zijn dan ideaal. Ook zagen we een kleine afwijking in het tijdstip van het eerste thuiskomstbericht en ontbrak de dagstart-speler op 9 september, wat overigens wel verwacht werd gezien de instellingen.

Vervolgens hebben we een 'waarheids-check' gedaan op de content van de thuiskomstberichten, zoals die van 8 september. We hebben Duits, Geschiedenis, Wiskunde en Engels gecheckt. Het goede nieuws is dat de teksten over het algemeen perfect overeenkomen met de onderliggende data. Titels, kernpunten, huiswerkopdrachten – alles klopt zoals het zou moeten. We hebben zelfs gecontroleerd of de app niet ten onrechte de tekst "geen huiswerk" toonde. Wat wel een detail is, is dat in de data soms letterlijk staat "Er is geen huiswerk", terwijl de voorleestekst het verwoordt als "In de les hoorde ik geen huiswerk". Een kleine nuance, maar wel een verschil.

Het afvinken van taken, een belangrijke functie, werkt uitstekend voor de test-leerling. Met een klik, of zelfs met de enter- of spatiebalk, verandert de status netjes naar ‘gedaan’, de teller past zich aan en de voortgangsbalk schuift op. De server registreert dit correct. En zoals gezegd, Dani’s teller bleef onaangeroerd, wat essentieel is. Een klein aandachtspunt: de "Straks"-knop onthoudt je keuze niet na een herlading, en de focus van het toetsenbord gaat verloren na het afvinken. Dit is niet kritisch, maar wel iets om te noteren.

Alle links in de app, dat zijn er maar liefst 35, zijn gecontroleerd en functioneren perfect. Geen 404-fouten, geen ongewenste redirects. Ook links naar de oude Appel-app of relatieve links binnen de nieuwe app werken zoals verwacht. Zelfs de mp3’s voor de audiofragmenten en de avatar-afbeeldingen laden allemaal zonder problemen. Echt top!

Door naar de toetspagina, `toets.html`. De bubbels die aangeven hoeveel je al kent en de tellers kloppen overal. De voorleestekst is weer prima gevuld en er is geen horizontale scroll. Er is echter wel een middelgrote bug bij het vak Frans: het aantal vragen dat in de oefentoets wordt genoemd, klopt niet helemaal, en de link daarheen leidt niet naar alle genoemde onderdelen. Verder viel op dat de links voor 'Toets-Mij-toetsen' soms naar een algemene lijst leiden als de specifieke toets nog niet bestaat. En een melding over nieuwe Toets-Mij-toetsen is nu nog hardcoded met een specifieke datum.

Op de lespagina, `les.html`, en het algemene lessenoverzicht (`lessen.html`), zagen we ook een aantal belangrijke punten. De lespagina's zelf zien er goed uit: vak, titel, tijd, docent, en de audiobestanden werken naar behoren. De inhoud van de lessen, zoals huiswerk en mededelingen, klopt ook. Maar hier is een **belangrijke bug**: wanneer een test-leerling huiswerk afvinkt op de lespagina, wordt dit **altijd toegeschreven aan Dani's account** in plaats van aan de test-leerling. Dit betekent dat je Dani's data onbedoeld beïnvloedt. Ook op kleinere schermen kan het tijdlabel soms net buiten de bubbel vallen, waardoor een minimale horizontale scroll ontstaat. Het algemene lessenoverzicht `lessen.html` functioneert verder perfect, met correcte tijden, docenten en huiswerkoverzichten per dag.

Wat betreft de voorlezen-knop: deze is op de homepage, toets- en lespagina’s aanwezig en werkt. De tekst is correct gevuld. Een aandachtspunt is wel dat de voorleestekst op de homepage wordt afgekapt na 1800 tekens. Met veel lessen kan dit betekenen dat de tekst midden in een zin stopt, wat niet prettig is.

We hebben ook diverse 'randgevallen' uit de code getest. Denk aan lege lessen-bestanden (wat netjes de melding "nog geen les binnen" oplevert), of situaties met twee lessen van hetzelfde vak op één dag (wat kan leiden tot een dubbel bericht). Het huiswerk vervalt trouwens nooit automatisch in de app; het blijft staan tot je het afvinkt. Kleine details, maar het is goed dat hierover nagedacht is.

Tot slot hebben we even gekeken naar de oude oefentoetsen-pagina van Appel, die werkt zonder consolefouten. En de toegankelijkheid: de kleinste lettertypes zijn 11-13 pixels, en de contrastratio’s zijn over het algemeen goed genoeg voor de toegankelijkheidsrichtlijnen. De aria-labels voor de vinkjes zijn correct geïmplementeerd, al zou de voorleesknop nog een extra aria-label kunnen gebruiken voor een nog betere toegankelijkheid.

Dus Jamal, samenvattend: je Appel 2.0 staat er technisch gezien erg goed voor. Veel zaken zijn geslaagd en de app is stabiel. De belangrijkste punten die nu aandacht vragen, zijn die misleidende "Alles af"-melding op de voordeur, het cruciale probleem met afvinken op de lespagina dat Dani's account raakt, en de inconsistenties bij de Franse oefentoets. Daar zit de focus voor de volgende stappen. Maar over het geheel genomen ben je heel goed bezig! Dit was je Appel 2.0 podcast update.

Cross-check-examen Appel 2.0 — 9-9-2026 00:05-00:15

Gemeten met Playwright-MCP (headless), viewports 430x932 en 375x812, plus curl.
Alleen leerling=test aangeraakt; Dani's teller vóór en ná: 15 items (ongewijzigd). Test-leerling ná afloop leeg ({"items": {}}).
Live bestanden = lokale kopieën (md5 gelijk voor index/toets/les/lessen.html, appel2-data.js, appel2.css, alle live/*.json). Lokale test-suite: 55/55 groen.
Screenshots: exam-*.png in deze map (16 stuks; -klein = verkleind).

1. Voordeur — 4 standen × 2 viewports

stand modus .msg console scrollWidth 430/375 buiten beeld afgekapt
echte tijd (wo 9-9 00:05) ochtend, doel 9-9 3 0 430 / 375 0 0
8-9 16:00 thuiskomst thuiskomst, doel 9-9 7 0 430 / 375 0 0
9-9 07:30 ochtend ochtend, doel 9-9 3 0 430 / 375 0 0
23-9 07:30 toetsdag ochtend, doel 23-9 4 0 430 / 375 0 0

2. Waarheids-check thuiskomst (8-9) vs lessen/2026-09-08/*.json

3. Afvinken (thuiskomst, leerling=test)

4. Links (35 unieke hrefs, curl)

5. toets.html (5 toetsen, test_datum 8-9 16:00, leerling=test, 375px)

toets bubbel "jij kent" teller stap 1 blokken bewijs console
wiskunde 23-9 0 van 3 0 van 3 0/3 komt eerlijk "Nog geen officiële toets" 0
engels 24-9 0 van 2 0 van 2 0/3 eerlijk "nog geen" 0
duits 25-9 0 van 6 0 van 6 0/4 Kapitel 1 - Ich, 14 vragen, "2 van 4 zit erin" bij vnw+sein (pogingen test: vraag 5 en 6 reeks 4) ✓; los 10-14 ✓ 0
frans 30-9 0 van 3 0 van 3 0/3 Voyages A (9) + Voyages B (12) 0
nederlands 30-9 0 van 4 0 van 4 0/4 eerlijk "nog geen" 0

6. les.html (4 lessen) + lessen.html

7. Voorlezen-knop

8. Randgevallen uit de code

9. Oude app oefentoetsen.html (appel.haartips.nl)

10. Toegankelijkheid / leesbaarheid

Bugs

Hoog
1. "Alles af. Jij bent vrij, ik ook. 😎" terwijl 4 van 8 af — index.html r.90 (open=l.items.filter(...) kijkt alleen naar de 4 getoonde) en r.100 (else if(l.totaal && !eerste)). Reproduceren: https://appel2.haartips.nl/ nu (Dani heeft de 3 wiskunde- + 1 nederlands-item af, 4 nederlands-items verborgen). Screenshot exam-1-echt-430.png.

Middel
2. les.html negeert ?leerling= → alle vinkjes naar dani (les.html r.27, r.117).
3. Toetsdag-knop (index r.146) en trainingsplan-blok 3/4-links (trainingsplan.json oefentoetsen.html?…&vak=wiskunde|engels|nederlands) sturen naar een oefentoets die niet bestaat; pagina toont stil de algemene lijst. Reproduceren: ?test_datum=2026-09-23T07:30 → "▶ Doe eerst de oefentoets".
4. les.html 375px: tijdlabel steekt buiten beeld, 2px horizontale scroll (les.html r.42 + appel2.css r.131 white-space:nowrap). Reproduceren: les.html?datum=2026-09-08&vak=duits op 375 breed.
5. Frans-route: koppeling van 2 Toets-Mij-toetsen wordt opgeteld ("4 vragen", nummer 1 dubbel), oefen-link en voorlezen alleen toets 1 (appel2-data.js r.237/244, toets.html r.44-46, appel2-data.js r.267). Reproduceren: toets.html?vak=frans&datum=2026-09-30.
6. Les-huiswerk verloopt nooit + SO-aankondiging als huiswerk (appel2-data.js r.84; data lessen/huiswerk.json item -0). Reproduceren: ?test_datum=2026-09-23T07:30 → in "… en nog 3".
7. Toets van vandaag blijft 's avonds "eerstvolgende toets · vandaag" (appel2-data.js r.44). Reproduceren: ?test_datum=2026-09-23T16:00.

Laag
8. Eerste thuiskomst-bericht "vandaag 09:00" (index r.151).
9. weekReeks: UTC vs lokale datum, les--ids tellen niet (index r.43, r.51).
10. Straks doet niets en onthoudt niets; focus weg na elke render (index r.178, r.172).
11. Cosmetiek: "(Volgende week (15 september))" (appel2-data.js r.292), "We deden: Engelse les: …", "NaSk (natuurkunde)les" (index r.66), voornaam+achternaam bij docent zonder initialen (r.277).
12. Hard-coded "13 september" (toets.html r.114); voorleestekst hard op 1800 tekens (index r.190).
13. Citaat-kleur 4,09:1; badge 11px; klik-doelen onder 40px (vink 30/32, foto-link 17 hoog, pil 36, terug 20).
14. Pijplijn-output bevat "geen huiswerk" (duits.json r.41/r.74, engels.json r.82) en les.html toont die mededeling.
15. Twee lessen zelfde vak op één dag → dubbel bericht (index r.205-209) — uit de code, niet gemeten.

Twijfels / niet gemeten

🎙️ Bespreek met Jarvis