Dit invoerveld is niet gekoppeld aan een label. Schermlezer-gebruikers horen niet wat er ingevuld moet worden.
https://lectame.com/ → div.flex > form.flex > div.flex-1 > input.w-full
Formulieren zijn voor gebruikers met schermlezers, stemherkenning of dyslexie nauwelijks te gebruiken. Vooral op registratie- en checkout-schermen is dit kritiek.
Koppel elke input met een zichtbaar `<label for="fieldId">`. Als design het label visueel verbergt: gebruik nog steeds `<label>` met `sr-only` styling of een `aria-label`.
<label for="email">E-mailadres</label> <input id="email" type="email" required autocomplete="email" />
Deze cookie heeft de Secure-flag niet. Op een netwerk zonder TLS kan een aanvaller de cookie alsnog lezen of laten meesturen.
https://lectame.com/
De cookie kan lekken naar onversleutelde verbindingen en is zo toegankelijker voor netwerk-observatie.
Voeg `Secure` toe aan alle cookies. In de meeste frameworks is dit één setting per cookiestore (bijvoorbeeld `cookies().set({ secure: true, ... })` in Next.js).
De CSP is aanwezig maar bevat zwakke directives: script-src 'unsafe-inline', script-src 'unsafe-eval'. Daardoor biedt de policy in de praktijk weinig bescherming tegen XSS of clickjacking.
https://lectame.com/
XSS en clickjacking blijven grotendeels ongemitigeerd. Third-party scripts kunnen ongelimiteerd acties uitvoeren.
Vervang `unsafe-inline` door hashes of nonces, verwijder wildcards uit `script-src`, voeg `frame-ancestors` toe (meestal `'none'` of `'self'`), en stel een restrictieve `default-src` in.
De hiërarchie slaat een niveau over. Assistive technology gebruikt deze hiërarchie om de pagina-outline op te bouwen. Sprongen zijn verwarrend.
https://lectame.com/ → div.max-w-6xl > div.grid > div > h4.text-[10px]
Schermlezer-gebruikers missen context of denken dat een sectie ontbreekt.
Gebruik heading-niveaus op volgorde (h1 → h2 → h3 …). Als je visueel een kleinere tekst wilt, pas styling toe, niet het niveau.