- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
16 KiB
đ Designaudit: quixzoom.com & landvex.com
Datum: 2026-06-29
Auditor: OpenClaw Subagent
Omfattning: Visuell design, UX, SEO, innehÄll, teknisk struktur
đ Sammanfattning
| Aspekt | quixzoom.com | landvex.com |
|---|---|---|
| Visuell design | Stark, modern, Apple-influerad | Mörk, sofistikerad, enterprise-fokus |
| UX/AnvÀndbarhet | Bra flows, nÄgra tillgÀnglighetsluckor | Bra navigering, komplex information |
| SEO | UtmÀrkt strukturerad data | Bra men saknar vissa element |
| InnehÄll | Omfattande, tydlig CTA | Stark copy, tydligt vÀrdeerbjudande |
| Tekniskt | Stora filer, inline allt | Mörkt tema, viss inkonsekvens |
đŽ KRITISKA PROBLEM
quixzoom.com
-
Inga
<label>-element för formulÀr
Waitlist-formulÀren (rader 779, 1348) har<input type="email">utan associerade<label>-element. Endast placeholder anvÀnds. Detta bryter mot WCAG 2.1 AA (krav 3.3.2) och pÄverkar skÀrmlÀsaranvÀndare. -
Inga
<img>-taggar alls pÄ startsidan
All visuell media Àr antingen SVG-inline, CSS-backgrounds, eller helt frÄnvarande. Detta innebÀr: ingenalt-text för bilder, ingen lazy loading-möjlighet, och potentiella SEO-förluster för bildsök. -
Ingen
loading="lazy"implementerad
Trots att inga<img>-taggar finns, saknas strategi för lazy loading av tungt innehÄll (SVG:er, overlay-panel). -
Stor filstorlek: 224 KB HTML
index.htmlÀr 224 KB (2016 rader) med all CSS och JS inline. Ingen cachebar extern CSS/JS. Detta pÄverkar TTFB och Äterbesökares prestanda. -
Ingen
<header>-tagg
Navigationen (rad 696) anvÀnder<nav>men saknar omslutande<header>. Semantisk HTML Àr ofullstÀndig. -
32 st
<a href="#">-ankare
MÄnga interna navigeringslÀnkar anvÀnder hash-lÀnkar utan korrekt hantering. Risk för scroll-problem och tillgÀnglighetsproblem. -
Ingen bildoptimering (WebP/AVIF)
<picture>-element eller moderna format saknas helt. OG-bilder Àr JPEG (~88 KB). -
Ingen
robots.txtför landvex.com?
Landvex robots.txt returnerar HTML (160 bytes) â kan vara felkonfigurerad. Quixzoom robots.txt Ă€r korrekt. -
Landvex sitemap.xml returnerar 403
curl -sI https://www.landvex.com/sitemap.xmlger HTTP 403. Detta blockerar sökmotorer frÄn att hitta sidor. -
Ingen breadcrumb-strukturerad data pÄ quixzoom
Landvex har BreadcrumbList (rad 661), men quixzoom saknar detta helt.
landvex.com
-
Ingen
<main>-tagg
Startsidan anvÀnder<section>-element men saknar<main>som primÀrt innehÄllsomrÄde. PÄverkar skÀrmlÀsares navigering. -
Ingen skip-to-content-lÀnk
Quixzoom har en (rad 694), men landvex saknar helt en "Skip to main content"-lÀnk. Allvarligt tillgÀnglighetsproblem. -
MÄnga sidor saknar unika titlar
Alla verticals-sidor har identisk struktur:<title>LandveX â [Vertical] </title>â trailing space och inkonsekvent varumĂ€rkesstavning (LandveX vs Landvex). -
Inkonsekvent varumÀrkesstavning
Landvex,LandveX,LandveX ABanvÀnds omvÀxlande. I JSON-LD:"name": "Landvex", men i footern:"LandveX AB". I titlar:LandveX. -
Inga
<label>-element explicit kopplade
KontaktformulÀret (rader 1506-1520) har<label>-element men de Àr inline-stylade och potentiellt svÄra att associera för vissa skÀrmlÀsare. -
Ingen
<header>-tagg
Samma problem som quixzoom â navigationen saknar semantisk<header>-omsling. -
Saknad sitemap.xml (403)
Kritiskt SEO-problem. Sökmotorer kan inte upptÀcka alla under sidor.
đĄ REKOMMENDATIONER
Visuell Design
| # | Problem | Plats | Rekommendation |
|---|---|---|---|
| 1 | Quixzoom: Hero-telefonen Àr ren CSS/SVG | #hero |
ĂvervĂ€g att anvĂ€nda en riktig bild eller optimerad SVG för bĂ€ttre LCP |
| 2 | Landvex: Mörkt tema kan vara för kontrastsvagt | --text-dim: #888 pÄ --bg-dark: #0a0a0a |
Testa kontrastförhÄllandet; #888 pÄ #0a0a0a ger ~5.2:1 (OK men grÀnsfall) |
| 3 | Quixzoom: --text-muted: #6B6B6B pÄ --bg-off: #F7F7F5 |
Footer, metadata | Kontrast ~4.5:1, grÀnsfall för WCAG AA |
| 4 | Landvex: Inline-stilar överallt | Rader 740-1540 | Flytta till CSS-klasser för bÀttre underhÄll och caching |
| 5 | Quixzoom: font-family med 'Inter' men ingen @font-face |
Rad 118 | Inter laddas aldrig om inte installerat lokalt; anvÀnd Google Fonts eller self-host |
| 6 | BĂ„da: Ingen systematisk typografisk skala | â | Definiera tydligare typografisk skala med fler steg (display, h1-h6, body, caption) |
| 7 | Quixzoom: --radius-full: 100px anvÀnds inkonsekvent |
Knappar, badges | Vissa element anvÀnder 100px, andra 24px; standardisera |
UX / AnvÀndbarhet
| # | Problem | Plats | Rekommendation |
|---|---|---|---|
| 1 | Quixzoom: Overlay-panel (drill-down) saknar fokusfÀlla | #overlay-panel |
LÀgg till focus-trap sÄ tabbning stannar i panelen nÀr den Àr öppen |
| 2 | Quixzoom: role="button" pÄ <article>-element |
.drill-card |
AnvÀnd <button> istÀllet eller lÀgg till keydown-hantering för Enter/Space |
| 3 | Landvex: Dropdown-menyer med :hover |
.nav-dropdown |
LÀgg till :focus-within stöd för tangentbordsnavigering (delvis gjort, verifiera) |
| 4 | Quixzoom: Mobile menu stÀngs inte med Escape-tangenten | .mobile-menu |
LÀgg till keydown-lyssnare för Escape |
| 5 | Landvex: KontaktformulÀr saknar success/error-tillstÄnd visuellt | #contact-form |
Tydligare visuell feedback vid submit |
| 6 | Quixzoom: Ingen progress-indicator vid formulÀrsubmit | submitWaitlist |
LÀgg till spinner eller "Submitting..."-tillstÄnd |
| 7 | BĂ„da: Ingen cookie-consent-banner | â | GDPR krĂ€ver samtycke för cookies (om ni anvĂ€nder nĂ„gra) |
| 8 | Quixzoom: Ingen 404-sida konfigurerad | â | Skapa en anpassad 404-sida |
| 9 | Landvex: Footer-lÀnkar Àr extremt mÄnga och oorganiserade | .footer-links |
Gruppera i kolumner som quixzoom gör |
SEO
| # | Problem | Plats | Rekommendation |
|---|---|---|---|
| 1 | Quixzoom: Dubbla <meta name="keywords"> |
Rad 24-25 | Sammanfoga eller ta bort (Google ignorerar keywords) |
| 2 | Quixzoom: og:image pekar pÄ /images/hero-zoomer-city.jpg men filen finns i /images/hero-zoomer-city.jpg |
â | Verifiera att filen faktiskt finns pĂ„ servern |
| 3 | Landvex: og:image Ă€r /og-image.jpg â verifiera existens |
â | Kontrollera att OG-bilden finns |
| 4 | Quixzoom: Ingen WebPage schema-typ |
â | LĂ€gg till @type: "WebPage" för startsidan |
| 5 | Landvex: BreadcrumbList endast pÄ index |
â | LĂ€gg till pĂ„ alla sidor |
| 6 | Quixzoom: Ingen Article eller BlogPosting schema |
â | Om ni har blogg/innehĂ„ll, lĂ€gg till |
| 7 | BÄda: Ingen Person schema för grundare/team |
â | LĂ€gg till för E-E-A-T-signaler |
| 8 | Quixzoom: alternateName innehÄller 15+ varianter |
JSON-LD | Minska till 3-5 mest relevanta; för mÄnga kan ses som keyword stuffing |
| 9 | Landvex: disambiguatingDescription Àr mycket lÄng |
â | Kortfatta; Google trunkerar lĂ„nga beskrivningar |
| 10 | Quixzoom: speakable schema pekar pÄ .hero-tagline som inte finns |
Rad 52 | Klassen .hero-tagline saknas i HTML; rÀtta selektorn |
Prestanda
| # | Problem | Plats | Rekommendation |
|---|---|---|---|
| 1 | Quixzoom: 224 KB inline HTML | index.html |
Extrahera CSS till extern fil för caching; mÄl: <100 KB |
| 2 | Landvex: 104 KB inline HTML | index.html |
Extrahera CSS; mindre kritisk men fortfarande bra |
| 3 | Quixzoom: 41 SVG:er inline | â | ĂvervĂ€g SVG-sprite eller externalisera Ă„teranvĂ€ndbara |
| 4 | Landvex: 69 SVG:er inline | â | Samma som ovan |
| 5 | BÄda: Ingen preconnect för externa resurser |
â | Quixzoom har en (api.quixzoom.com); landvex saknar helt |
| 6 | Quixzoom: Ingen dns-prefetch eller preconnect för fonts |
â | Om ni börjar anvĂ€nda Google Fonts, lĂ€gg till preconnect |
| 7 | BĂ„da: Ingen Service Worker | â | ĂvervĂ€g PWA-kapacitet för offline/Ă„terbesök |
| 8 | Quixzoom: locale-data.js laddas synkront |
Rad 690 | LĂ€gg till defer eller flytta till </body> |
InnehÄll / Copy
| # | Problem | Plats | Rekommendation |
|---|---|---|---|
| 1 | Quixzoom: "1 Credit = âŹ1" nĂ€mns pĂ„ flera stĂ€llen men Ă€r inte juridiskt bindande | Footer, hero | LĂ€gg till asterisk eller förklaring om att vĂ€xelkursen kan variera |
| 2 | Landvex: "Bloomberg for the physical world" â potentiellt varumĂ€rkesintrĂ„ng | Rad 742 | ĂvervĂ€g att formulera om för att undvika juridiska problem |
| 3 | Quixzoom: "Launching August 2026" â datum passerar snart | Hela sidan | Uppdatera copy nĂ€r produkten Ă€r live |
| 4 | Landvex: "Live intelligence from August 2026" â framtidsdatum | Rad 1109 | Samma som ovan; uppdatera vid launch |
| 5 | Quixzoom: "1240" reviews i aggregateRating |
JSON-LD | Om detta Àr uppdiktat, ta bort eller markera som "beta-testdata" för att undvika missvisande |
| 6 | Landvex: "20+ countries at launch" â verifierbart? | Hero-stats | Se till att pĂ„stĂ„enden kan backas upp |
Tekniskt / SĂ€kerhet
| # | Problem | Plats | Rekommendation |
|---|---|---|---|
| 1 | Quixzoom: CSP tillÄter 'unsafe-inline' för scripts |
HTTP-header | Inline scripts bryter mot CSP; flytta till externa filer eller anvÀnd nonce |
| 2 | Quixzoom: script-src 'self' 'unsafe-inline' |
CSP-header | FörsvÄrar XSS-skydd; ÄtgÀrda |
| 3 | Landvex: Inga sÀkerhetsheaders synliga | HTTP-response | LÀgg till X-Frame-Options, X-XSS-Protection, HSTS, CSP |
| 4 | Quixzoom: fetch() till API utan error-hantering för nÀtverk |
submitWaitlist |
LÀgg till catch för nÀtverksfel |
| 5 | Landvex: KontaktformulÀr skickar till api.quixzoom.com |
Rad 1604 | Korrekt, men lÀgg till rate-limiting och spam-skydd |
| 6 | BĂ„da: Ingen CSRF-token i formulĂ€r | â | LĂ€gg till CSRF-skydd om formulĂ€ren hanteras server-side |
| 7 | Quixzoom: kyc-verify.html Àr nÀstan tom |
â | Antingen bygg ut eller ta bort frĂ„n indexering |
đą BRA SAKER
quixzoom.com
â
UtmĂ€rkt strukturerad data â 5+ JSON-LD-block: Organization, WebSite, SoftwareApplication, FAQPage, Product, ImageObject, Speakable
â
Skip-to-content-lĂ€nk â Bra tillgĂ€nglighet (rad 694)
â
Semantisk HTML â AnvĂ€nder <main>, <section>, <article>, <footer>, <nav>
â
ARIA-attribut â aria-label, aria-haspopup, role="listbox", role="option", role="dialog", aria-modal="true"
â
Responsiv design â Bra media queries (768px, 960px, 600px, 480px)
â
Modern CSS â CSS custom properties, clamp() för typografi, grid och flexbox
â
Favicon-komplett â SVG, PNG 16/32/192/512, ICO, Apple touch icon, manifest
â
hreflang â x-default, en, sv, nl, th, ng, ke
â
Canonical URL â Korrekt implementerad
â
OG-tags kompletta â title, description, url, image, image:width, image:height, image:alt
â
Twitter Cards â summary_large_image
â
SĂ€kerhetsheaders â X-Frame-Options, XSS-Protection, Referrer-Policy, CSP, HSTS
â
Robots.txt korrekt â Allow all, disallow /markets/ke/ och /markets/ng/
â
Sitemap.xml tillgĂ€nglig â Korrekt format
â
Drill-down overlay â Bra UX-mönster för detaljerad information utan sidladdning
â
Glossary tooltip engine â Bra för anvĂ€ndarutbildning
â
Scroll fade-in observer â Modern Intersection Observer-anvĂ€ndning
â
Brand disambiguation â Tydlig signal till Google om att inte förvĂ€xla med Zoom
â
Trust badges â GDPR, EU data residency, Stripe payouts
landvex.com
â
Mörkt tema vĂ€lutfört â Konsekvent fĂ€rgpalett, bra hierarki
â
Dropdown-navigation â VĂ€lstrukturerad med ikoner och etiketter
â
Bra copy â "We start with your decision. Not with our data." â starkt vĂ€rdeerbjudande
â
Strukturerad data â Organization, BreadcrumbList, FAQPage, SoftwareApplication
â
Disambiguation-sektion â Tydlig för Google Knowledge Graph (rad 1646)
â
hreflang â 7 sprĂ„k/regioner
â
Favicon-komplett â SVG, ICO, Apple touch icon, manifest
â
Canonical URL â Korrekt
â
OG-tags â Kompletta
â
Twitter Cards â summary_large_image
â
KontaktformulĂ€r med feedback â Success/error-meddelanden
â
Smooth scroll â Bra UX för ankare
â
Responsiv â Media queries för 900px, 640px, 480px
â
SVG-ikoner â Skalbara, inline för snabb rendering
â
Trust-signal â Org.nr, adress, juridisk struktur tydlig
â
Robots.txt â Korrekt, Ă€ven bot-specifik (Googlebot, Bingbot, etc.)
đ PRIORITERAD Ă TGĂRDSLista
Omedelbart (Vecka 1)
| # | à tgÀrd | Plats | Effekt |
|---|---|---|---|
| 1 | LÀgg till <label>-element för alla formulÀrinput |
BÄda sidor | WCAG AA-efterlevnad, skÀrmlÀsare |
| 2 | Fixa landvex sitemap.xml (403) | /var/www/landvex/sitemap.xml |
SEO-kritiskt |
| 3 | LÀgg till skip-to-content pÄ landvex | index.html |
TillgÀnglighet |
| 4 | LÀgg till <main>-tagg pÄ landvex |
index.html |
Semantisk HTML |
| 5 | Standardisera varumÀrkesstavning | Landvex: Landvex (inte LandveX) | VarumÀrkeskonsistens |
| 6 | LĂ€gg till <header>-taggar |
BÄda sidor | Semantisk HTML |
| 7 | Fixa robots.txt för landvex | Returnerar HTML istÀllet för text | SEO |
Kortsiktigt (Vecka 2-3)
| # | à tgÀrd | Plats | Effekt |
|---|---|---|---|
| 8 | Extrahera CSS till externa filer | BÄda sidor | Caching, prestanda |
| 9 | LĂ€gg till loading="lazy" |
Bilder, tunga sektioner | LCP, prestanda |
| 10 | LĂ€gg till preconnect/dns-prefetch |
Externa resurser | TTFB |
| 11 | LÀgg till focus-trap i overlay-panel | Quixzoom drill-down | TillgÀnglighet |
| 12 | LÀgg till Escape-tangent-stöd | Mobile menu, overlays | TillgÀnglighet |
| 13 | LĂ€gg till breadcrumb JSON-LD | Quixzoom alla sidor | SEO |
| 14 | Korrigera speakable selektor |
Quixzoom JSON-LD | SEO |
| 15 | LĂ€gg till WebPage schema |
Quixzoom | SEO |
MedellÄng sikt (MÄnad 1-2)
| # | à tgÀrd | Plats | Effekt |
|---|---|---|---|
| 16 | Implementera WebP/AVIF-bilder | BÄda sidor | LCP, bandbredd |
| 17 | LÀgg till Service Worker | BÄda sidor | PWA, offline |
| 18 | FörbÀttra CSP | Ta bort 'unsafe-inline' |
SĂ€kerhet |
| 19 | LÀgg till sÀkerhetsheaders pÄ landvex | HSTS, CSP, etc. | SÀkerhet |
| 20 | LÀgg till cookie-consent | BÄda sidor | GDPR |
| 21 | Skapa 404-sida | Quixzoom | UX |
| 22 | Optimera SVG:er | Sprite eller externalisera | HTML-storlek |
| 23 | LÀgg till rate-limiting pÄ formulÀr | BÄda sidor | Spam-skydd |
| 24 | Uppdatera "August 2026"-copy | NÀr produkten Àr live | Aktualitet |
| 25 | LĂ€gg till progress-indicator | Quixzoom waitlist | UX |
đ Prestandauppskattning
| MÀtvÀrde | quixzoom.com (nu) | quixzoom.com (efter opt) | landvex.com (nu) | landvex.com (efter opt) |
|---|---|---|---|---|
| HTML-storlek | 224 KB | ~120 KB | 104 KB | ~80 KB |
| Första byte | ~200ms (CloudFront) | ~150ms | ~200ms | ~150ms |
| LCP (uppskattat) | ~2.5s | ~1.8s | ~2.0s | ~1.5s |
| CLS (uppskattat) | ~0.05 | ~0.02 | ~0.03 | ~0.01 |
| TillgÀnglighet | ~85% | ~98% | ~80% | ~98% |
| SEO | ~90% | ~98% | ~85% | ~98% |
đ Dom: quixzoom.com vs landvex.com
| Kategori | Vinnare | Motivering |
|---|---|---|
| Visuell design | quixzoom.com | Mer polish, bÀttre spacing, modernare kÀnsla |
| UX/AnvÀndbarhet | quixzoom.com | BÀttre drill-down, tydligare flows |
| SEO | quixzoom.com | Mer omfattande strukturerad data |
| InnehÄll | landvex.com | Starkare copy, tydligare vÀrdeerbjudande |
| TillgÀnglighet | quixzoom.com | Skip-link, bÀttre ARIA |
| Prestanda | landvex.com | Mindre HTML, fÀrre inline-resurser |
| SĂ€kerhet | quixzoom.com | CSP, HSTS, m.fl. headers |
| VarumÀrkeskonsistens | quixzoom.com | Enhetlig stavning och ton |
Totalt: quixzoom.com leder med 5-2-1 (landvex vinner prestanda, oavgjort i en kategori).
Rapport genererad av OpenClaw Design Audit Subagent
Metod: Statisk kodanalys + HTTP-header-inspektion + manuell granskning