Anthropic Claude Sonnet 5.5 – Technology and Computing
via Anthropic · Generated
- AIMAC Debt 4.85
- Cost $0.24
- Total Violations 20
- HTML Size 50 KB
- Em Dashes 17
Screenshot
View Live Page
Accessibility Issues Found
20 Serious
-
color-contrast serious 20 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<td class="c y">✓ Full</td>
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Kernelpoint — Benchmarks you can trust. Tech you can understand.</title>
<meta name="description" content="Kernelpoint delivers lab-tested hardware reviews, honest comparison guides, practical security tips, tech news and verified deals for builders, developers and everyday computer users.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@500;700&family=Space+Grotesk:wght@500;700&display=swap" rel="stylesheet">
<style>
:root{
--ink:#0b1020; --ink-2:#141b33; --ink-3:#1f2847;
--paper:#f5f7fb; --card:#ffffff; --line:#e1e6f0;
--text:#1b2238; --muted:#5b6482;
--accent:#c6f432; --accent-ink:#1a2300;
--cyan:#22d3ee; --violet:#7c5cff; --danger:#ef4444; --ok:#16a34a; --warn:#f59e0b;
--radius:16px; --shadow:0 10px 30px -12px rgba(11,16,32,.25);
--head:'Space Grotesk',system-ui,sans-serif; --body:'Inter',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--body);background:var(--paper);color:var(--text);line-height:1.65;font-size:16px}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--head);line-height:1.2;letter-spacing:-.01em}
p+p{margin-top:1em}
.container{width:min(1240px,92%);margin-inline:auto}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:999px;font-weight:600;font-size:.95rem;border:2px solid transparent;cursor:pointer;transition:.2s;font-family:var(--body)}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px -6px rgba(198,244,50,.6)}
.btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-3)}
.btn-outline{border-color:var(--ink);color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.tag{display:inline-block;font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:.25rem .65rem;border-radius:6px;background:var(--ink);color:var(--accent)}
.tag.light{background:rgba(198,244,50,.15);color:var(--accent)}
.tag.alt{background:#e7e3ff;color:#4b36d4}
/* Top bar & header */
.topbar{background:var(--ink);color:#aab3d3;font-size:.8rem;border-bottom:1px solid var(--ink-3)}
.topbar .container{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;flex-wrap:wrap}
.topbar b{color:var(--accent);font-family:var(--mono);font-weight:500}
header.site{background:var(--ink);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--ink-3)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.8rem 0}
.brand{display:flex;align-items:center;gap:.8rem}
.brand img{width:46px;height:46px;border-radius:12px}
.brand strong{display:block;font-family:var(--head);color:#fff;font-size:1.4rem;line-height:1}
.brand span{display:block;color:#8e99c0;font-size:.75rem;margin-top:.25rem}
nav.primary ul{list-style:none;display:flex;gap:.25rem;align-items:center}
nav.primary a{color:#cdd4ee;padding:.55rem .9rem;border-radius:8px;font-size:.92rem;font-weight:500;transition:.15s}
nav.primary a:hover{color:#fff;background:var(--ink-3)}
nav.primary a.cta{background:var(--accent);color:var(--accent-ink);font-weight:600}
nav.primary a.cta:hover{background:#d6ff50}
.menu-toggle{display:none;background:none;border:1px solid var(--ink-3);color:#fff;padding:.5rem .8rem;border-radius:8px;font-size:1rem;cursor:pointer}
/* Hero */
.hero{background:radial-gradient(900px 400px at 85% 10%,rgba(124,92,255,.35),transparent 60%),radial-gradient(700px 400px at 5% 90%,rgba(34,211,238,.18),transparent 60%),var(--ink);color:#fff;padding:4.5rem 0 5rem;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(180deg,#000 30%,transparent)}
.hero .container{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;align-items:center}
.hero h1{font-size:clamp(2.3rem,5vw,4rem);margin:1rem 0 1.2rem}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero p.lead{color:#b8c1e0;font-size:1.1rem;max-width:56ch}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.hero-stats{display:flex;gap:2.2rem;margin-top:2.5rem;flex-wrap:wrap}
.hero-stats div strong{display:block;font-family:var(--mono);font-size:1.6rem;color:#fff}
.hero-stats div span{font-size:.8rem;color:#8e99c0}
.hero-card{background:var(--ink-2);border:1px solid var(--ink-3);border-radius:20px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.hero-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.hero-card .body{padding:1.4rem 1.5rem 1.6rem}
.hero-card h2{font-size:1.4rem;margin:.7rem 0 .5rem}
.hero-card p{color:#aab3d3;font-size:.92rem}
.score-row{display:flex;align-items:center;gap:1rem;margin-top:1rem}
.score{font-family:var(--mono);font-size:1.9rem;font-weight:700;color:var(--ink);background:var(--accent);padding:.1rem .7rem;border-radius:10px}
.score-row a{color:var(--cyan);font-weight:600;font-size:.92rem}
/* Trust strip */
.strip{background:var(--card);border-bottom:1px solid var(--line)}
.strip .container{display:flex;justify-content:space-between;gap:1.5rem;padding:1.3rem 0;flex-wrap:wrap;color:var(--muted);font-size:.9rem}
.strip span b{color:var(--text)}
/* Layout */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:3rem;padding:4rem 0}
section.block{margin-bottom:5rem}
section.block:last-child{margin-bottom:0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.8rem;flex-wrap:wrap}
.sec-head h2{font-size:clamp(1.7rem,3vw,2.3rem);margin-top:.6rem}
.sec-head p{color:var(--muted);max-width:60ch;margin-top:.5rem}
.link-arrow{font-weight:600;color:var(--ink);border-bottom:2px solid var(--accent)}
.link-arrow:hover{background:var(--accent)}
/* Review cards */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.25s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.card .body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1}
.card h3{font-size:1.2rem;margin:.7rem 0 .5rem}
.card p{color:var(--muted);font-size:.93rem}
.card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:1.1rem;font-size:.82rem;color:var(--muted)}
.rating{font-family:var(--mono);font-weight:700;color:var(--ink);background:var(--accent);padding:.15rem .55rem;border-radius:7px}
.card.wide{grid-column:1/-1;flex-direction:row}
.card.wide img{width:45%;aspect-ratio:auto;height:100%;object-fit:cover}
.card.wide .body{padding:1.8rem}
.card.wide h3{font-size:1.6rem}
/* Benchmark lab */
.lab{background:var(--ink);color:#fff;border-radius:24px;padding:2.4rem;position:relative;overflow:hidden}
.lab::after{content:"";position:absolute;right:-120px;top:-120px;width:340px;height:340px;background:radial-gradient(circle,rgba(124,92,255,.4),transparent 65%)}
.lab>*{position:relative;z-index:1}
.lab h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:.7rem 0 .6rem}
.lab>p{color:#b8c1e0;max-width:62ch}
.lab-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin:1.8rem 0}
.field label{display:block;font-size:.75rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.07em;color:#8e99c0;margin-bottom:.4rem}
select,input[type=email],input[type=text],textarea{width:100%;padding:.8rem 1rem;border-radius:10px;border:1px solid var(--ink-3);background:var(--ink-2);color:#fff;font:inherit;font-size:.95rem}
select:focus,input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.bench{background:var(--ink-2);border:1px solid var(--ink-3);border-radius:16px;padding:1.5rem}
.bench-head{display:grid;grid-template-columns:120px 1fr 1fr;gap:1rem;font-family:var(--head);font-weight:700;margin-bottom:1rem}
.bench-head div:nth-child(2){color:var(--cyan)}
.bench-head div:nth-child(3){color:var(--accent)}
.brow{display:grid;grid-template-columns:120px 1fr 1fr;gap:1rem;align-items:center;padding:.65rem 0;border-top:1px solid var(--ink-3);font-size:.85rem}
.brow .lbl{color:#8e99c0}
.bar{height:26px;background:var(--ink-3);border-radius:7px;position:relative;overflow:hidden}
.bar i{display:block;height:100%;border-radius:7px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.bar.a i{background:linear-gradient(90deg,#0891b2,var(--cyan))}
.bar.b i{background:linear-gradient(90deg,#84cc16,var(--accent))}
.bar span{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:.75rem;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.bar.b span{color:#0b1020;text-shadow:none}
.verdict{margin-top:1.4rem;padding:1.2rem 1.4rem;border-radius:14px;background:rgba(198,244,50,.1);border:1px solid rgba(198,244,50,.35);display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.verdict .big{font-family:var(--mono);font-size:2rem;font-weight:700;color:var(--accent)}
.verdict p{flex:1;min-width:220px;color:#d6dcf2;font-size:.95rem;margin:0}
.lab small{display:block;margin-top:1rem;color:#7d88b0;font-size:.78rem}
/* Guides / matrix */
.split{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-bottom:2rem}
.split img{border-radius:var(--radius);width:100%;aspect-ratio:4/3;object-fit:cover}
.split h3{font-size:1.5rem;margin-bottom:.8rem}
.split p{color:var(--muted)}
.split .btn{margin-top:1.3rem}
.table-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:620px}
caption{text-align:left;padding:1.1rem 1.3rem;font-family:var(--head);font-weight:700;font-size:1.05rem}
th,td{padding:.85rem 1.1rem;text-align:left;border-top:1px solid var(--line)}
th{background:#eef1f8;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-family:var(--mono)}
td.c{text-align:center}
.y{color:var(--ok);font-weight:700}.p{color:var(--warn);font-weight:700}.n{color:var(--danger);font-weight:700}
.legend{padding:.9rem 1.3rem;font-size:.82rem;color:var(--muted);border-top:1px solid var(--line)}
/* Security */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.feature{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}
.feature .ico{width:46px;height:46px;border-radius:12px;background:var(--ink);color:var(--accent);display:grid;place-items:center;font-size:1.3rem;margin-bottom:1rem}
.feature h3{font-size:1.05rem;margin-bottom:.5rem}
.feature p{font-size:.9rem;color:var(--muted)}
.callout{margin-top:1.8rem;background:linear-gradient(120deg,var(--violet),#4b36d4);color:#fff;border-radius:20px;padding:2rem 2.2rem;display:flex;justify-content:space-between;gap:1.5rem;align-items:center;flex-wrap:wrap}
.callout h3{font-size:1.4rem;margin-bottom:.4rem}
.callout p{color:#e3dcff;max-width:56ch;font-size:.95rem}
/* News */
.news-list{display:flex;flex-direction:column;gap:1.2rem}
.news-item{display:grid;grid-template-columns:200px 1fr;gap:1.4rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;transition:.2s}
.news-item:hover{border-color:var(--ink);box-shadow:var(--shadow)}
.news-item img{width:100%;height:100%;min-height:130px;object-fit:cover;border-radius:12px}
.news-item h3{font-size:1.15rem;margin:.5rem 0}
.news-item p{color:var(--muted);font-size:.92rem}
.news-item time{font-size:.8rem;color:var(--muted);font-family:var(--mono)}
/* Testimonials */
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.t-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;position:relative}
.t-card::before{content:"“";font-family:var(--head);font-size:4rem;color:var(--accent);background:var(--ink);width:44px;height:44px;line-height:60px;text-align:center;border-radius:12px;display:block;margin-bottom:1rem;font-size:3rem}
.t-card p{font-size:.93rem;color:var(--text)}
.t-card footer{display:flex;gap:.8rem;align-items:center;margin-top:1.3rem}
.t-card img{width:44px;height:44px;border-radius:50%}
.t-card footer strong{display:block;font-size:.92rem}
.t-card footer span{font-size:.8rem;color:var(--muted)}
/* FAQ */
.faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:.8rem;overflow:hidden}
.faq summary{padding:1.15rem 1.4rem;font-family:var(--head);font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-size:1.4rem;color:var(--ink);background:var(--accent);width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;transition:.2s}
.faq details[open] summary::after{content:"–"}
.faq details[open] summary{border-bottom:1px solid var(--line)}
.faq .ans{padding:1.1rem 1.4rem 1.3rem;color:var(--muted);font-size:.95rem}
/* Sidebar */
aside .sticky{position:sticky;top:96px;display:flex;flex-direction:column;gap:1.5rem}
.widget{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}
.widget h3{font-size:1.1rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.widget h3::before{content:"";width:8px;height:20px;background:var(--accent);border-radius:3px;border:1px solid var(--ink)}
.deal{display:grid;grid-template-columns:64px 1fr;gap:.9rem;padding:.85rem 0;border-top:1px solid var(--line);align-items:center}
.deal:first-of-type{border-top:0;padding-top:0}
.deal img{border-radius:10px;width:64px;height:64px;object-fit:cover}
.deal h4{font-size:.9rem;line-height:1.3}
.deal .price{font-family:var(--mono);font-size:.85rem;margin-top:.2rem}
.deal .price b{color:var(--ok)}
.deal .price s{color:var(--muted);margin-left:.4rem}
.ranked{list-style:none;counter-reset:r}
.ranked li{counter-increment:r;display:flex;gap:.9rem;padding:.7rem 0;border-top:1px solid var(--line);font-size:.9rem;align-items:flex-start}
.ranked li:first-child{border-top:0;padding-top:0}
.ranked li::before{content:counter(r);font-family:var(--mono);font-weight:700;background:var(--ink);color:var(--accent);min-width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:.8rem}
.ranked small{display:block;color:var(--muted);font-size:.78rem}
.forum-w{background:var(--ink);color:#fff;border-color:var(--ink)}
.forum-w p{color:#b8c1e0;font-size:.9rem;margin-bottom:1rem}
.avatars{display:flex;margin-bottom:1rem}
.avatars img{width:38px;height:38px;border-radius:50%;border:2px solid var(--ink);margin-left:-10px}
.avatars img:first-child{margin-left:0}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chips a{font-size:.8rem;padding:.3rem .8rem;border-radius:999px;background:#eef1f8;transition:.15s}
.chips a:hover{background:var(--accent)}
/* Newsletter */
.newsletter{background:var(--ink);color:#fff;padding:4rem 0}
.newsletter .container{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.newsletter h2{font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:.8rem}
.newsletter p{color:#b8c1e0}
.nl-form{display:flex;gap:.6rem;flex-wrap:wrap}
.nl-form input{flex:1;min-width:220px;border-radius:999px;padding:.9rem 1.3rem}
.form-msg{margin-top:.8rem;font-size:.88rem;min-height:1.3em;color:var(--accent)}
.form-msg.err{color:#ff8a8a}
.perks{list-style:none;margin-top:1rem;color:#8e99c0;font-size:.85rem;display:flex;gap:1.2rem;flex-wrap:wrap}
.perks li::before{content:"✓ ";color:var(--accent)}
/* Footer */
footer.site{background:#070b17;color:#8e99c0;padding:4rem 0 1.5rem;font-size:.9rem}
.f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--ink-3)}
.f-grid h4{color:#fff;margin-bottom:1rem;font-size:1rem}
.f-grid ul{list-style:none}
.f-grid li{margin-bottom:.55rem}
.f-grid a:hover{color:var(--accent)}
.f-brand{display:flex;gap:.8rem;align-items:center;margin-bottom:1rem}
.f-brand img{width:42px;height:42px;border-radius:10px}
.f-brand strong{color:#fff;font-family:var(--head);font-size:1.3rem}
.social{display:flex;gap:.6rem;margin-top:1.2rem;flex-wrap:wrap}
.social a{padding:.4rem .8rem;border:1px solid var(--ink-3);border-radius:8px;font-size:.8rem;transition:.15s;color:#cdd4ee}
.social a:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.f-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.5rem;font-size:.82rem}
.f-bottom nav{display:flex;gap:1.3rem}
.f-bottom a:hover{color:#fff}
/* Responsive */
@media(max-width:1040px){
.layout{grid-template-columns:1fr}
aside .sticky{position:static;display:grid;grid-template-columns:repeat(2,1fr)}
.hero .container,.newsletter .container{grid-template-columns:1fr}
.f-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
.menu-toggle{display:block}
nav.primary{position:absolute;left:0;right:0;top:100%;background:var(--ink);border-bottom:1px solid var(--ink-3);display:none;padding:1rem 4%}
nav.primary.open{display:block}
nav.primary ul{flex-direction:column;align-items:stretch}
header.site{position:sticky}
.header-inner{position:relative}
.brand span{display:none}
.cards,.feature-grid,.t-grid,.split{grid-template-columns:1fr}
.card.wide{flex-direction:column}
.card.wide img{width:100%;aspect-ratio:16/10}
.lab-controls{grid-template-columns:1fr}
.bench-head,.brow{grid-template-columns:80px 1fr 1fr;gap:.6rem}
.news-item{grid-template-columns:1fr}
.news-item img{height:180px}
aside .sticky{grid-template-columns:1fr}
}
@media(max-width:560px){
.f-grid{grid-template-columns:1fr}
.lab{padding:1.4rem}
.topbar .container div:last-child{display:none}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
</style>
</head>
<body>
<div class="topbar">
<div class="container">
<div><b>LIVE</b> Lab queue: 14 devices under test · Next teardown: Friday</div>
<div>Independent. Ad-transparent. Reader-funded reviews since 2014.</div>
</div>
</div>
<header class="site">
<div class="container header-inner">
<a href="#top" class="brand" aria-label="Kernelpoint home">
<img src="https://placehold.co/96x96/c6f432/0b1020?text=KP&font=montserrat" alt="Kernelpoint logo" width="46" height="46">
<div>
<strong>Kernelpoint</strong>
<span>Benchmarks you can trust. Tech you can understand.</span>
</div>
</a>
<button class="menu-toggle" id="menuToggle" aria-expanded="false" aria-controls="mainNav">☰ Menu</button>
<nav class="primary" id="mainNav" aria-label="Primary">
<ul>
<li><a href="#reviews">Reviews</a></li>
<li><a href="#lab">Benchmark Lab</a></li>
<li><a href="#guides">Guides</a></li>
<li><a href="#security">Security</a></li>
<li><a href="#news">News</a></li>
<li><a href="#deals">Deals</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#community" class="cta">Join Forum</a></li>
</ul>
</nav>
</div>
</header>
<main id="top">
<section class="hero">
<div class="container">
<div>
<span class="tag light">Lab-tested · Not sponsored</span>
<h1>Stop reading spec sheets. <em>Start reading results.</em></h1>
<p class="lead">Kernelpoint puts laptops, GPUs, storage, networking gear and software through repeatable, documented test runs — thermal logging, sustained load, battery rundowns and real-world debugging sessions — so you can buy once and buy right.</p>
<p class="lead">Every score on this site links back to its methodology, raw data and firmware version. If we can't reproduce it, we don't publish it.</p>
<div class="hero-actions">
<a href="#reviews" class="btn btn-primary">Read Latest Reviews →</a>
<a href="#lab" class="btn btn-ghost">Try the Benchmark Lab</a>
</div>
<div class="hero-stats">
<div><strong>1,240+</strong><span>products benchmarked</span></div>
<div><strong>380k</strong><span>monthly readers</span></div>
<div><strong>96%</strong><span>of picks still in stock at publish</span></div>
</div>
</div>
<article class="hero-card">
<img src="https://picsum.photos/seed/kp-hero/800/500" alt="Slim laptop on a desk beside a monitor in a dim workspace" width="800" height="500">
<div class="body">
<span class="tag light">Editor's Choice</span>
<h2>Aurora X14 Review: The Ultrabook That Finally Stops Throttling</h2>
<p>A redesigned vapor chamber and a tuned power curve let this 14-inch machine hold 94% of its peak multi-core score after an hour of sustained rendering.</p>
<div class="score-row">
<span class="score">9.2</span>
<a href="#reviews">Read the full review →</a>
</div>
</div>
</article>
</div>
</section>
<div class="strip">
<div class="container">
<span><b>Methodology:</b> 3 runs minimum, median reported</span>
<span><b>Thermals:</b> 22 °C ambient, logged every second</span>
<span><b>Disclosure:</b> No pay-for-placement, ever</span>
<span><b>Updated:</b> Scores re-tested after major firmware</span>
</div>
</div>
<div class="container layout">
<div class="content">
<!-- REVIEWS -->
<section class="block" id="reviews">
<div class="sec-head">
<div>
<span class="tag">Hardware Reviews</span>
<h2>Fresh from the test bench</h2>
<p>Our reviewers live with every device for at least two weeks. Here's what recently survived our thermal chamber, battery rundown loops and daily-driver gauntlet.</p>
</div>
<a href="#reviews" class="link-arrow">All reviews →</a>
</div>
<div class="cards">
<article class="card wide">
<img src="https://picsum.photos/seed/kp-titan/900/600" alt="Gaming laptop with illuminated keyboard" loading="lazy" width="900" height="600">
<div class="body">
<span class="tag">Gaming Laptop</span>
<h3>Titan G16 Review: Desktop-Class Frame Rates, Laptop-Class Compromises</h3>
<p>The Titan G16 pairs a 175 W-class GPU with a mini-LED panel that hits 1,100 nits in HDR. In our 12-title suite it averaged 142 fps at 1440p with ray tracing enabled, besting last generation by 31%.</p>
<p>The trade-offs are real, though: fan noise peaks at 49 dBA, the battery barely clears six hours of light browsing, and the 240 W brick is a brute. If you game plugged-in, it's a monster.</p>
<div class="meta"><span>By Marcus Odell · 14 min read</span><span class="rating">8.7</span></div>
</div>
</article>
<article class="card">
<img src="https://picsum.photos/seed/kp-ssd/700/440" alt="Close-up of an NVMe solid-state drive" loading="lazy" width="700" height="440">
<div class="body">
<span class="tag alt">Storage</span>
<h3>Vaultcore P5 2TB NVMe: Fast Enough to Matter?</h3>
<p>PCIe 5.0 sequential reads reach 12,400 MB/s, but our compile-time tests show only a 4% gain over a good Gen 4 drive. We break down where the speed shows up — and where it's just a number.</p>
<div class="meta"><span>By Priya Raman · 9 min read</span><span class="rating">8.1</span></div>
</div>
</article>
<article class="card">
<img src="https://picsum.photos/seed/kp-router/700/440" alt="Wi-Fi 7 mesh router on a shelf" loading="lazy" width="700" height="440">
<div class="body">
<span class="tag alt">Networking</span>
<h3>Halo Mesh Wi-Fi 7 Tri-Pack: Whole-Home Coverage Tested</h3>
<p>We mapped throughput across a 3,200 sq ft house with 41 connected devices. Roaming was seamless, but the companion app's user interface still hides critical QoS settings three menus deep.</p>
<div class="meta"><span>By Jonas Weber · 11 min read</span><span class="rating">8.4</span></div>
</div>
</article>
</div>
</section>
<!-- BENCHMARK LAB -->
<section class="block" id="lab">
<div class="lab">
<span class="tag light">Interactive Tool</span>
<h2>The Kernelpoint Benchmark Lab</h2>
<p>Pick any two machines from our test database and choose how you'll use them. We'll weight the results — sustained CPU, GPU throughput, battery endurance and value — to produce a use-case score you can actually act on.</p>
<div class="lab-controls">
<div class="field">
<label for="selA">Machine A</label>
<select id="selA"></select>
</div>
<div class="field">
<label for="selB">Machine B</label>
<select id="selB"></select>
</div>
<div class="field">
<label for="selUse">Primary use case</label>
<select id="selUse">
<option value="gaming">Gaming & 3D</option>
<option value="creator" selected>Creative & dev workloads</option>
<option value="travel">Travel & battery life</option>
</select>
</div>
</div>
<div class="bench" aria-live="polite">
<div class="bench-head"><div>Metric</div><div id="nameA"></div><div id="nameB"></div></div>
<div id="benchRows"></div>
</div>
<div class="verdict">
<div class="big" id="verdictScore">—</div>
<p id="verdictText"></p>
<a href="#reviews" class="btn btn-primary">Read Full Reviews</a>
</div>
<small>Scores: Geekbench-style single/multi-core, 3DMark-class GPU index, 150-nit web-browsing battery loop. Prices are launch MSRP in USD. Use-case score is a weighted, normalised index (0–100).</small>
</div>
</section>
<!-- GUIDES -->
<section class="block" id="guides">
<div class="sec-head">
<div>
<span class="tag">Comparison Guides</span>
<h2>Buying guides that do the homework</h2>
<p>No affiliate-driven top-ten fluff. Our guides map real-world compatibility, spell out the trade-offs, and tell you who should skip a product entirely.</p>
</div>
<a href="#guides" class="link-arrow">Browse all guides →</a>
</div>
<div class="split">
<img src="https://picsum.photos/seed/kp-dock/700/520" alt="Thunderbolt docking station with multiple cables connected" loading="lazy" width="700" height="520">
<div>
<h3>Thunderbolt Docks: Which One Actually Works With Your Setup?</h3>
<p>A dock that works flawlessly on one laptop can drop displays, charge slowly, or refuse to wake from sleep on another. We tested eight docks against nine laptops and three operating systems, logging firmware versions and every failure.</p>
<p>The compatibility matrix below summarises our findings. For per-model debugging notes, display-mode limits and recommended firmware, grab the full PDF guide.</p>
<a href="#guides" class="btn btn-dark">Download Full Guide (PDF)</a>
</div>
</div>
<div class="table-wrap">
<table>
<caption>Dock compatibility matrix — tested with latest OS and firmware</caption>
<thead>
<tr><th>Dock</th><th>Windows 11</th><th>macOS</th><th>Linux (6.x)</th><th>ChromeOS</th><th>Max displays</th></tr>
</thead>
<tbody>
<tr><td><strong>Anchor TB5 Pro</strong></td><td class="c y">✓ Full</td><td class="c y">✓ Full</td><td class="c p">◐ Partial</td><td class="c y">✓ Full</td><td>3 × 4K60</td></tr>
<tr><td><strong>Dockwell 12-in-1</strong></td><td class="c y">✓ Full</td><td class="c p">◐ 1 display</td><td class="c y">✓ Full</td><td class="c y">✓ Full</td><td>2 × 4K60</td></tr>
<tr><td><strong>Linkbar Mini</strong></td><td class="c y">✓ Full</td><td class="c y">✓ Full</td><td class="c n">✗ No audio</td><td class="c p">◐ Partial</td><td>1 × 4K60</td></tr>
<tr><td><strong>Portal Studio Hub</strong></td><td class="c y">✓ Full</td><td class="c y">✓ Full</td><td class="c y">✓ Full</td><td class="c n">✗ Unstable</td><td>2 × 5K60</td></tr>
</tbody>
</table>
<div class="legend"><span class="y">✓</span> Works as advertised · <span class="p">◐</span> Works with caveats · <span class="n">✗</span> Not recommended</div>
</div>
<div class="split" style="margin-top:2.5rem;margin-bottom:0">
<div>
<h3>Choosing a Monitor for Code: IPS, OLED or Mini-LED?</h3>
<p>Text rendering, subpixel layout and burn-in risk matter more to developers than peak brightness. We photographed ClearType and macOS font smoothing on 14 panels and rated each for long-session eye comfort.</p>
<p>Our verdict: high-density IPS still wins for all-day terminal and IDE work, while QD-OLED is the better pick if your day includes video grading or game development. Watch our side-by-side video to see the fringing for yourself.</p>
<a href="#guides" class="btn btn-outline">Watch Tutorial</a>
</div>
<img src="https://picsum.photos/seed/kp-monitor/700/520" alt="Monitor displaying lines of source code" loading="lazy" width="700" height="520">
</div>
</section>
<!-- SECURITY -->
<section class="block" id="security">
<div class="sec-head">
<div>
<span class="tag">Security Tips</span>
<h2>Practical security, minus the paranoia</h2>
<p>You don't need a threat-modelling degree to be safe online. These six habits stop the overwhelming majority of real-world account takeovers and malware infections we see in reader reports.</p>
</div>
</div>
<div class="feature-grid">
<div class="feature"><div class="ico">🔐</div><h3>Adopt passkeys everywhere</h3><p>Passkeys replace passwords with device-bound cryptographic keys, making phishing nearly impossible. Enable them on your email, cloud storage and password manager first.</p></div>
<div class="feature"><div class="ico">🧩</div><h3>Use a password manager</h3><p>Generate unique 20+ character credentials for every site, and audit for reused or breached logins monthly. Pair it with a hardware security key for your vault.</p></div>
<div class="feature"><div class="ico">🔄</div><h3>Patch on a schedule</h3><p>Automate OS, browser and firmware updates. Router and NAS firmware are the most overlooked attack surface — set a quarterly calendar reminder.</p></div>
<div class="feature"><div class="ico">💾</div><h3>Follow the 3-2-1 backup rule</h3><p>Keep three copies, on two media types, with one offsite or immutable. Test a restore at least twice a year; an untested backup is a hope, not a plan.</p></div>
<div class="feature"><div class="ico">📡</div><h3>Segment your network</h3><p>Put smart-home gadgets and guests on a separate VLAN or guest SSID. A compromised smart bulb should never see your work laptop.</p></div>
<div class="feature"><div class="ico">🕵️</div><h3>Audit app permissions</h3><p>Review browser extensions, OAuth grants and mobile permissions. Remove anything you haven't used in 90 days — each one is a potential supply-chain risk.</p></div>
</div>
<div class="callout">
<div>
<h3>Get the 30-minute Home Security Tune-Up</h3>
<p>A printable checklist with step-by-step screenshots for Windows, macOS, Android and iOS — plus router hardening settings for the 12 most popular brands.</p>
</div>
<a href="#contact" class="btn btn-primary">Download Checklist</a>
</div>
</section>
<!-- NEWS -->
<section class="block" id="news">
<div class="sec-head">
<div>
<span class="tag">News</span>
<h2>What's moving in tech</h2>
<p>Concise, sourced reporting on silicon, software and the policies shaping them. No rumour mill, no rewritten press releases.</p>
</div>
<a href="#news" class="link-arrow">Newsroom →</a>
</div>
<div class="news-list">
<article class="news-item">
<img src="https://picsum.photos/seed/kp-news1/400/260" alt="Silicon wafer being inspected" loading="lazy" width="400" height="260">
<div>
<time>2 HOURS AGO</time> · <span class="tag alt">Silicon</span>
<h3>Next-gen 2 nm mobile chips enter volume production, promising 25% better efficiency</h3>
<p>Foundry yields have crossed the threshold needed for flagship phones and thin-and-light laptops. Early engineering samples suggest meaningful gains in sustained performance per watt, though cost per wafer remains a worry for mid-range devices.</p>
</div>
</article>
<article class="news-item">
<img src="https://picsum.photos/seed/kp-news2/400/260" alt="Developer reviewing code on multiple screens" loading="lazy" width="400" height="260">
<div>
<time>YESTERDAY</time> · <span class="tag alt">Software</span>
<h3>Major IDE update ships AI-assisted debugging with local, on-device inference</h3>
<p>The new release can trace a stack overflow to its root cause without sending code off your machine. We spent a week with it on a 400k-line monorepo — here's where it saved hours and where it confidently pointed us the wrong way.</p>
</div>
</article>
<article class="news-item">
<img src="https://picsum.photos/seed/kp-news3/400/260" alt="Padlock icon over a circuit board" loading="lazy" width="400" height="260">
<div>
<time>2 DAYS AGO</time> · <span class="tag alt">Security</span>
<h3>Critical router firmware flaw affects millions of home gateways: what to do now</h3>
<p>Researchers disclosed an authentication bypass in a widely deployed networking SDK. Patches are rolling out unevenly, so we've compiled a vendor-by-vendor status table and temporary mitigations you can apply in under five minutes.</p>
</div>
</article>
</div>
</section>
<!-- TESTIMONIALS -->
<section class="block" id="community">
<div class="sec-head">
<div>
<span class="tag">Community</span>
<h2>Trusted by builders, admins and curious humans</h2>
<p>Over 48,000 members share build logs, troubleshooting threads and honest owner feedback in our forum. Here's what readers say.</p>
</div>
<a href="#contact" class="btn btn-dark">Join Forum</a>
</div>
<div class="t-grid">
<article class="t-card">
<p>Kernelpoint's thermal charts convinced me to skip a flashy laptop that would've throttled in 10 minutes. Eight months later, my render times are exactly what the review predicted.</p>
<footer><img src="https://i.pravatar.cc/88?u=kp-elena" alt="Elena Park" width="44" height="44"><div><strong>Elena Park</strong><span>Motion designer</span></div></footer>
</article>
<article class="t-card">
<p>The dock compatibility matrix saved my IT team a week of returns. We standardised on two models for 200 seats, and our ticket volume for display issues dropped to nearly zero.</p>
<footer><img src="https://i.pravatar.cc/88?u=kp-david" alt="David Okafor" width="44" height="44"><div><strong>David Okafor</strong><span>IT systems manager</span></div></footer>
</article>
<article class="t-card">
<p>I'm not technical, but the security checklist was clear enough that I secured my parents' accounts in an afternoon. Finally, advice that doesn't talk down to you.</p>
<footer><img src="https://i.pravatar.cc/88?u=kp-sofia" alt="Sofia Lindqvist" width="44" height="44"><div><strong>Sofia Lindqvist</strong><span>Product marketer</span></div></footer>
</article>
</div>
</section>
<!-- FAQ -->
<section class="block faq" id="faq">
<div class="sec-head">
<div>
<span class="tag">FAQ</span>
<h2>Questions we get a lot</h2>
</div>
</div>
<details open>
<summary>How does Kernelpoint test and score products?</summary>
<div class="ans">Every product is tested at least three times under controlled conditions (22 °C ambient, fixed power profile, latest stable firmware). We publish the median result and the full methodology. Scores are a weighted blend of performance, efficiency, build quality, user interface polish and value.</div>
</details>
<details>
<summary>Do manufacturers pay for reviews or scores?</summary>
<div class="ans">Never. We buy or borrow devices, and loaners are returned or donated. We earn revenue through reader memberships and clearly labelled affiliate links, which never influence ratings. Our editorial team has no access to affiliate dashboards.</div>
</details>
<details>
<summary>How are the deals on this page verified?</summary>
<div class="ans">A human editor checks every deal against 90-day price history and stock availability before it's posted. If the "discount" is just a return to the typical street price, we flag it as such — or don't list it at all.</div>
</details>
<details>
<summary>Can I request a review or comparison?</summary>
<div class="ans">Absolutely. Our forum's Request-a-Review board is monitored weekly, and the top-voted products enter our lab queue. Members can also submit their own benchmark results to be included in our community database.</div>
</details>
<details>
<summary>Where can I download your test scripts and datasets?</summary>
<div class="ans">Our open benchmarking toolkit, including scripts for battery rundown, thermal logging and storage testing, is available on the resources page. Datasets are released under a permissive licence after each review is published.</div>
</details>
</section>
</div>
<!-- SIDEBAR -->
<aside id="deals" aria-label="Sidebar">
<div class="sticky">
<div class="widget">
<h3>🔥 Hot Deals</h3>
<div class="deal"><img src="https://picsum.photos/seed/kp-d1/128/128" alt="Wireless earbuds" loading="lazy" width="64" height="64"><div><h4>NoiseGuard ANC Earbuds</h4><div class="price"><b>$89</b><s>$149</s></div></div></div>
<div class="deal"><img src="https://picsum.photos/seed/kp-d2/128/128" alt="Portable SSD" loading="lazy" width="64" height="64"><div><h4>Vaultcore X2 1TB Portable SSD</h4><div class="price"><b>$64</b><s>$99</s></div></div></div>
<div class="deal"><img src="https://picsum.photos/seed/kp-d3/128/128" alt="Mechanical keyboard" loading="lazy" width="64" height="64"><div><h4>Tactile 75 Wireless Keyboard</h4><div class="price"><b>$79</b><s>$120</s></div></div></div>
<div class="deal"><img src="https://picsum.photos/seed/kp-d4/128/128" alt="27-inch monitor" loading="lazy" width="64" height="64"><div><h4>Prisma 27" 4K IPS Monitor</h4><div class="price"><b>$299</b><s>$429</s></div></div></div>
<a href="#deals" class="btn btn-primary" style="width:100%;justify-content:center;margin-top:.8rem">See All Deals</a>
</div>
<div class="widget">
<h3>Editor Picks</h3>
<ol class="ranked">
<li><div>Aurora X14<small>Best ultrabook · 9.2</small></div></li>
<li><div>Halo Mesh Wi-Fi 7<small>Best mesh system · 8.4</small></div></li>
<li><div>Forge Pro 16<small>Best mobile workstation · 9.0</small></div></li>
<li><div>Vaultcore P5<small>Best PCIe 5.0 SSD · 8.1</small></div></li>
</ol>
</div>
<div class="widget forum-w">
<h3 style="color:#fff">Community Picks</h3>
<div class="avatars">
<img src="https://i.pravatar.cc/76?u=kp-a1" alt="Member avatar" width="38" height="38">
<img src="https://i.pravatar.cc/76?u=kp-a2" alt="Member avatar" width="38" height="38">
<img src="https://i.pravatar.cc/76?u=kp-a3" alt="Member avatar" width="38" height="38">
<img src="https://i.pravatar.cc/76?u=kp-a4" alt="Member avatar" width="38" height="38">
</div>
<p>Trending thread: <strong>"Best budget home-lab setup under $500?"</strong> — 214 replies, 38 build photos.</p>
<a href="#contact" class="btn btn-primary" style="width:100%;justify-content:center">Join Forum</a>
</div>
<div class="widget">
<h3>Popular Topics</h3>
<div class="chips">
<a href="#reviews">Laptops</a><a href="#reviews">GPUs</a><a href="#security">Passkeys</a><a href="#guides">Monitors</a><a href="#guides">Docks</a><a href="#news">AI chips</a><a href="#security">VPNs</a><a href="#reviews">Wi-Fi 7</a><a href="#guides">Linux</a>
</div>
</div>
</div>
</aside>
</div>
<!-- NEWSLETTER / CONTACT -->
<section class="newsletter" id="contact">
<div class="container">
<div>
<span class="tag light">The Kernel Dispatch</span>
<h2 style="margin-top:.8rem">One email a week. Zero fluff.</h2>
<p>Every Thursday: the week's most important review, one deal worth your money, a security heads-up, and a reader-submitted setup. Join 92,000 subscribers who like their tech news with the signal intact.</p>
<ul class="perks"><li>Free forever</li><li>Unsubscribe in one click</li><li>No sponsored content</li></ul>
</div>
<div>
<form class="nl-form" id="nlForm" novalidate>
<input type="email" id="nlEmail" placeholder="you@example.com" aria-label="Email address" required>
<button class="btn btn-primary" type="submit">Subscribe</button>
</form>
<div class="form-msg" id="nlMsg" role="status"></div>
<p style="font-size:.85rem;margin-top:1rem">Have a tip, correction or review request? Email <a href="mailto:tips@kernelpoint.example" style="color:var(--accent);text-decoration:underline">tips@kernelpoint.example</a> — we read everything.</p>
</div>
</div>
</section>
</main>
<footer class="site">
<div class="container">
<div class="f-grid">
<div>
<div class="f-brand">
<img src="https://placehold.co/84x84/c6f432/0b1020?text=KP&font=montserrat" alt="Kernelpoint logo" width="42" height="42">
<strong>Kernelpoint</strong>
</div>
<p>Independent tech journalism and lab-tested reviews for people who build, code, game and create. Benchmarks you can trust. Tech you can understand.</p>
<div class="social">
<a href="#" aria-label="X / Twitter">X</a>
<a href="#" aria-label="YouTube">YouTube</a>
<a href="#" aria-label="Mastodon">Mastodon</a>
<a href="#" aria-label="GitHub">GitHub</a>
<a href="#" aria-label="LinkedIn">LinkedIn</a>
</div>
</div>
<div>
<h4>Explore</h4>
<ul>
<li><a href="#reviews">Hardware Reviews</a></li>
<li><a href="#lab">Benchmark Lab</a></li>
<li><a href="#guides">Comparison Guides</a></li>
<li><a href="#security">Security Tips</a></li>
<li><a href="#news">News</a></li>
</ul>
</div>
<div>
<h4>Company</h4>
<ul>
<li><a href="#faq">About & Methodology</a></li>
<li><a href="#deals">Deals</a></li>
<li><a href="#community">Community Forum</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#">Careers</a></li>
</ul>
</div>
<div>
<h4>Contact</h4>
<ul>
<li>Kernelpoint Media Ltd.</li>
<li>218 Foundry Lane, Suite 40<br>Austin, TX 78701, USA</li>
<li><a href="mailto:hello@kernelpoint.example">hello@kernelpoint.example</a></li>
<li><a href="tel:+15125550148">+1 (512) 555-0148</a></li>
</ul>
</div>
</div>
<div class="f-bottom">
<div>© <span id="year">2025</span> Kernelpoint Media Ltd. All rights reserved.</div>
<nav aria-label="Legal">
<a href="#">Privacy Policy</a>
<a href="#">Terms of Service</a>
<a href="#">Cookie Settings</a>
<a href="#">Affiliate Disclosure</a>
</nav>
</div>
</div>
</footer>
<script>
(function(){
// Footer year
document.getElementById('year').textContent = new Date().getFullYear();
// Mobile menu
var toggle = document.getElementById('menuToggle'), nav = document.getElementById('mainNav');
toggle.addEventListener('click', function(){
var open = nav.classList.toggle('open');
toggle.setAttribute('aria-expanded', open);
});
nav.querySelectorAll('a').forEach(function(a){ a.addEventListener('click', function(){ nav.classList.remove('open'); toggle.setAttribute('aria-expanded','false'); }); });
// Benchmark Lab
var machines = {
aurora:{name:'Aurora X14', cpuS:2810, cpuM:14200, gpu:9800, battery:14.5, price:1299},
titan: {name:'Titan G16', cpuS:2650, cpuM:18900, gpu:31200, battery:6.2, price:1999},
forge: {name:'Forge Pro 16',cpuS:2900, cpuM:22500, gpu:24800, battery:8.4, price:2499},
nimbus:{name:'Nimbus Air 13',cpuS:2700, cpuM:11800, gpu:6200, battery:18.0, price:999}
};
var keys = Object.keys(machines);
var max = {}, minPrice = Infinity;
keys.forEach(function(k){
var m = machines[k];
['cpuS','cpuM','gpu','battery'].forEach(function(f){ max[f] = Math.max(max[f]||0, m[f]); });
minPrice = Math.min(minPrice, m.price);
});
var maxPrice = Math.max.apply(null, keys.map(function(k){return machines[k].price;}));
var weights = {
gaming: {gpu:.5, cpuS:.2, cpuM:.1, battery:.05, value:.15},
creator:{cpuM:.35, gpu:.3, cpuS:.15, battery:.1, value:.1},
travel: {battery:.45, cpuS:.15, cpuM:.1, gpu:.1, value:.2}
};
var metrics = [
{id:'cpuS', label:'Single-core', fmt:function(v){return v.toLocaleString();}},
{id:'cpuM', label:'Multi-core', fmt:function(v){return v.toLocaleString();}},
{id:'gpu', label:'GPU index', fmt:function(v){return v.toLocaleString();}},
{id:'battery', label:'Battery (hrs)', fmt:function(v){return v.toFixed(1)+' h';}},
{id:'value', label:'Value index', fmt:function(v){return Math.round(v)+'/100';}}
];
var selA = document.getElementById('selA'), selB = document.getElementById('selB'), selU = document.getElementById('selUse');
keys.forEach(function(k){
selA.add(new Option(machines[k].name + ' — $' + machines[k].price.toLocaleString(), k));
selB.add(new Option(machines[k].name + ' — $' + machines[k].price.toLocaleString(), k));
});
selA.value = 'aurora'; selB.value = 'titan';
function valueOf(m){ return (minPrice / m.price) * 100; }
function norm(m, id){ return id === 'value' ? valueOf(m) : (m[id] / max[id]) * 100; }
function raw(m, id){ return id === 'value' ? valueOf(m) : m[id]; }
function score(m, use){
var w = weights[use], s = 0;
for (var k in w) s += w[k] * norm(m, k);
return s;
}
function render(){
var a = machines[selA.value], b = machines[selB.value], use = selU.value;
document.getElementById('nameA').textContent = a.name;
document.getElementById('nameB').textContent = b.name;
var html = '';
metrics.forEach(function(mt){
html += '<div class="brow"><div class="lbl">'+mt.label+'</div>'+
'<div class="bar a"><i style="width:'+norm(a,mt.id).toFixed(1)+'%"></i><span>'+mt.fmt(raw(a,mt.id))+'</span></div>'+
'<div class="bar b"><i style="width:'+norm(b,mt.id).toFixed(1)+'%"></i><span>'+mt.fmt(raw(b,mt.id))+'</span></div></div>';
});
document.getElementById('benchRows').innerHTML = html;
var sa = score(a,use), sb = score(b,use);
var useLabel = {gaming:'gaming & 3D', creator:'creative and development work', travel:'travel and battery life'}[use];
var out = document.getElementById('verdictScore'), txt = document.getElementById('verdictText');
if (selA.value === selB.value){
out.textContent = sa.toFixed(0);
txt.textContent = 'Pick two different machines to compare. ' + a.name + ' scores ' + sa.toFixed(0) + '/100 for ' + useLabel + '.';
return;
}
var win = sa >= sb ? a : b, lose = sa >= sb ? b : a, ws = Math.max(sa,sb), ls = Math.min(sa,sb);
var gap = ws - ls;
out.textContent = ws.toFixed(0);
if (gap < 3){
txt.textContent = 'Virtually a tie for ' + useLabel + ': ' + a.name + ' ' + sa.toFixed(0) + ' vs ' + b.name + ' ' + sb.toFixed(0) + '. Let price, ports and design break the deadlock.';
} else {
var priceNote = win.price > lose.price ? ' It costs $' + (win.price - lose.price).toLocaleString() + ' more, so weigh that against your budget.' : ' It is also the cheaper option by $' + (lose.price - win.price).toLocaleString() + '.';
txt.textContent = win.name + ' wins for ' + useLabel + ' with ' + ws.toFixed(0) + '/100 against ' + ls.toFixed(0) + ' for ' + lose.name + '.' + priceNote;
}
}
[selA, selB, selU].forEach(function(s){ s.addEventListener('change', render); });
render();
// Newsletter
var form = document.getElementById('nlForm'), email = document.getElementById('nlEmail'), msg = document.getElementById('nlMsg');
form.addEventListener('submit', function(e){
e.preventDefault();
var ok = /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(email.value.trim());
msg.className = 'form-msg' + (ok ? '' : ' err');
msg.textContent = ok ? 'You\'re in! Check your inbox to confirm your subscription.' : 'Please enter a valid email address.';
if (ok) form.reset();
});
})();
</script>
</body>
</html>
View Axe Report (JSON)
{
"testEngine": {
"name": "axe-core",
"version": "4.10.2"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
"windowWidth": 1280,
"windowHeight": 720,
"orientationAngle": 0,
"orientationType": "landscape-primary"
},
"timestamp": "2026-11-12T09:53:06.191Z",
"url": "https://benchmark.aimac.invalid/5e9a206dbf4fe21d5911ed00ecc68e8c01731431d71fe4b5ac224cf6c2c03752.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "svg-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
"help": "<svg> elements with an img role must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "valid-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2aa",
"wcag312",
"TTv5",
"TT11.b",
"EN-301-549",
"EN-9.3.1.2",
"ACT"
],
"description": "Ensure lang attributes have valid values",
"help": "lang attribute must have a valid value",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
"nodes": []
},
{
"id": "video-caption",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag122",
"section508",
"section508.22.a",
"TTv5",
"TT17.a",
"EN-301-549",
"EN-9.1.2.2"
],
"description": "Ensure <video> elements have captions",
"help": "<video> elements must have captions",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
"nodes": []
},
{
"id": "no-autoplay-audio",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag142",
"TTv5",
"TT2.a",
"EN-301-549",
"EN-9.1.4.2",
"ACT"
],
"description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
"help": "<video> or <audio> elements must not play automatically",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
"nodes": []
}
],
"passes": [
{
"id": "aria-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-allowed-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attributes are used correctly for the defined role"
}
],
"none": [
{
"id": "aria-unsupported-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute is supported"
}
],
"impact": null,
"html": "<a href=\"#top\" class=\"brand\" aria-label=\"Kernelpoint home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-conditional-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"none": [],
"impact": null,
"html": "<a href=\"#top\" class=\"brand\" aria-label=\"Kernelpoint home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "deprecatedrole",
"data": null,
"relatedNodes": [],
"impact": "minor",
"message": "ARIA role is not deprecated"
}
],
"impact": null,
"html": "<div class=\"form-msg\" id=\"nlMsg\" role=\"status\"></div>",
"target": [
"#nlMsg"
]
}
]
},
{
"id": "aria-hidden-body",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"wcag412",
"EN-301-549",
"EN-9.1.3.1",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden=\"true\" is not present on the document body.",
"help": "aria-hidden=\"true\" must not be present on the document body",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-hidden-body",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "No aria-hidden attribute is present on document body"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<body>",
"target": [
"body"
]
}
]
},
{
"id": "aria-prohibited-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"impact": null,
"html": "<a href=\"#top\" class=\"brand\" aria-label=\"Kernelpoint home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-required-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "All required ARIA attributes are present"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<div class=\"form-msg\" id=\"nlMsg\" role=\"status\"></div>",
"target": [
"#nlMsg"
]
}
]
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "invalidrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is valid"
},
{
"id": "abstractrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Abstract roles are not used"
},
{
"id": "unsupportedrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is supported"
}
],
"impact": null,
"html": "<div class=\"form-msg\" id=\"nlMsg\" role=\"status\"></div>",
"target": [
"#nlMsg"
]
}
]
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-valid-attr-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute values are valid"
},
{
"id": "aria-errormessage",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
},
{
"id": "aria-level",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-level values are valid"
}
],
"none": [],
"impact": null,
"html": "<a href=\"#top\" class=\"brand\" aria-label=\"Kernelpoint home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-valid-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute name is valid"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#top\" class=\"brand\" aria-label=\"Kernelpoint home\">",
"target": [
".brand"
]
}
]
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "important-letter-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-word-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-line-height",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "line-height in the style attribute is not set to !important, or meets the minimum"
}
],
"none": [],
"impact": null,
"html": "<i style=\"width:96.9%\"></i>",
"target": [
".brow:nth-child(1) > .a.bar > i"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button class=\"btn btn-primary\" type=\"submit\">Subscribe</button>",
"target": [
"button[type=\"submit\"]"
]
}
]
},
{
"id": "bypass",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag241",
"section508",
"section508.22.o",
"TTv5",
"TT9.a",
"EN-301-549",
"EN-9.2.4.1"
],
"description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
"help": "Page must have means to bypass repeated blocks",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "internal-link-present",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Valid skip link found"
},
{
"id": "header-present",
"data": null,
"relatedNodes": [
{
"html": "<h1>Stop reading spec sheets. <em>Start reading results.</em></h1>",
"target": [
"h1"
]
},
{
"html": "<h2>Aurora X14 Review: The Ultrabook That Finally Stops Throttling</h2>",
"target": [
".body > h2"
]
},
{
"html": "<h2>Fresh from the test bench</h2>",
"target": [
"#reviews > .sec-head > div > h2"
]
},
{
"html": "<h3>Titan G16 Review: Desktop-Class Frame Rates, Laptop-Class Compromises</h3>",
"target": [
".wide > .body > h3"
]
},
{
"html": "<h3>Vaultcore P5 2TB NVMe: Fast Enough to Matter?</h3>",
"target": [
".card:nth-child(2) > .body > h3"
]
},
{
"html": "<h3>Halo Mesh Wi-Fi 7 Tri-Pack: Whole-Home Coverage Tested</h3>",
"target": [
".card:nth-child(3) > .body > h3"
]
},
{
"html": "<h2>The Kernelpoint Benchmark Lab</h2>",
"target": [
".lab > h2"
]
},
{
"html": "<h2>Buying guides that do the homework</h2>",
"target": [
"#guides > .sec-head > div > h2"
]
},
{
"html": "<h3>Thunderbolt Docks: Which One Actually Works With Your Setup?</h3>",
"target": [
".split:nth-child(2) > div > h3"
]
},
{
"html": "<h3>Choosing a Monitor for Code: IPS, OLED or Mini-LED?</h3>",
"target": [
".split:nth-child(4) > div > h3"
]
},
{
"html": "<h2>Practical security, minus the paranoia</h2>",
"target": [
"#security > .sec-head > div > h2"
]
},
{
"html": "<h3>Adopt passkeys everywhere</h3>",
"target": [
".feature:nth-child(1) > h3"
]
},
{
"html": "<h3>Use a password manager</h3>",
"target": [
".feature:nth-child(2) > h3"
]
},
{
"html": "<h3>Patch on a schedule</h3>",
"target": [
".feature:nth-child(3) > h3"
]
},
{
"html": "<h3>Follow the 3-2-1 backup rule</h3>",
"target": [
".feature:nth-child(4) > h3"
]
},
{
"html": "<h3>Segment your network</h3>",
"target": [
".feature:nth-child(5) > h3"
]
},
{
"html": "<h3>Audit app permissions</h3>",
"target": [
".feature:nth-child(6) > h3"
]
},
{
"html": "<h3>Get the 30-minute Home Security Tune-Up</h3>",
"target": [
".callout > div > h3"
]
},
{
"html": "<h2>What's moving in tech</h2>",
"target": [
"#news > .sec-head > div > h2"
]
},
{
"html": "<h3>Next-gen 2 nm mobile chips enter volume production, promising 25% better efficiency</h3>",
"target": [
".news-item:nth-child(1) > div > h3"
]
},
{
"html": "<h3>Major IDE update ships AI-assisted debugging with local, on-device inference</h3>",
"target": [
".news-item:nth-child(2) > div > h3"
]
},
{
"html": "<h3>Critical router firmware flaw affects millions of home gateways: what to do now</h3>",
"target": [
".news-item:nth-child(3) > div > h3"
]
},
{
"html": "<h2>Trusted by builders, admins and curious humans</h2>",
"target": [
"#community > .sec-head > div > h2"
]
},
{
"html": "<h2>Questions we get a lot</h2>",
"target": [
"#faq > .sec-head > div > h2"
]
},
{
"html": "<h3>\ud83d\udd25 Hot Deals</h3>",
"target": [
".widget:nth-child(1) > h3"
]
},
{
"html": "<h4>NoiseGuard ANC Earbuds</h4>",
"target": [
".deal:nth-child(2) > div > h4"
]
},
{
"html": "<h4>Vaultcore X2 1TB Portable SSD</h4>",
"target": [
".deal:nth-child(3) > div > h4"
]
},
{
"html": "<h4>Tactile 75 Wireless Keyboard</h4>",
"target": [
".deal:nth-child(4) > div > h4"
]
},
{
"html": "<h4>Prisma 27\" 4K IPS Monitor</h4>",
"target": [
".deal:nth-child(5) > div > h4"
]
},
{
"html": "<h3>Editor Picks</h3>",
"target": [
".widget:nth-child(2) > h3"
]
},
{
"html": "<h3 style=\"color:#fff\">Community Picks</h3>",
"target": [
".forum-w > h3"
]
},
{
"html": "<h3>Popular Topics</h3>",
"target": [
".widget:nth-child(4) > h3"
]
},
{
"html": "<h2 style=\"margin-top:.8rem\">One email a week. Zero fluff.</h2>",
"target": [
".container > div:nth-child(1) > h2"
]
},
{
"html": "<h4>Explore</h4>",
"target": [
".f-grid > div:nth-child(2) > h4"
]
},
{
"html": "<h4>Company</h4>",
"target": [
"div:nth-child(3) > h4"
]
},
{
"html": "<h4>Contact</h4>",
"target": [
"div:nth-child(4) > h4"
]
}
],
"impact": "serious",
"message": "Page has a heading"
},
{
"id": "landmark",
"data": null,
"relatedNodes": [
{
"html": "<main id=\"top\">",
"target": [
"#top"
]
}
],
"impact": "serious",
"message": "Page has a landmark region"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#aab3d3",
"bgColor": "#0b1020",
"contrastRatio": 9.1,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 9.1"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<div><b>LIVE</b> Lab queue: 14 devices under test \u00b7 Next teardown: Friday</div>",
"target": [
".topbar > .container > div:nth-child(1)"
]
}
]
},
{
"id": "document-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"TTv5",
"TT12.a",
"EN-301-549",
"EN-9.2.4.2",
"ACT"
],
"description": "Ensure each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document has a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "duplicate-id-aria",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every id attribute value used in ARIA and in labels is unique",
"help": "IDs used in ARIA and labels must be unique",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "duplicate-id-aria",
"data": "mainNav",
"relatedNodes": [],
"impact": "critical",
"message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<nav class=\"primary\" id=\"mainNav\" aria-label=\"Primary\">",
"target": [
"#mainNav"
]
}
]
},
{
"id": "form-field-multiple-labels",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag332",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.3.3.2"
],
"description": "Ensure form field does not have multiple label elements",
"help": "Form field must not have multiple label elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "multiple-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"selA\">Machine A</label>",
"target": [
"label[for=\"selA\"]"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<select id=\"selA\"><option value=\"aurora\">Aurora X14 \u2014 $1,299</option><option value=\"titan\">Titan G16 \u2014 $1,999</option><option value=\"forge\">Forge Pro 16 \u2014 $2,499</option><option value=\"nimbus\">Nimbus Air 13 \u2014 $999</option></select>",
"target": [
"#selA"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://placehold.co/96x96/c6f432/0b1020?text=KP&font=montserrat\" alt=\"Kernelpoint logo\" width=\"46\" height=\"46\">",
"target": [
"img[width=\"46\"]"
]
}
]
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute exists and is not empty"
},
{
"id": "non-empty-placeholder",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a placeholder attribute"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<input type=\"email\" id=\"nlEmail\" placeholder=\"you@example.com\" aria-label=\"Email address\" required=\"\">",
"target": [
"#nlEmail"
]
}
]
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "link-in-text-block-style",
"data": null,
"relatedNodes": [
{
"html": "<div>",
"target": [
".split:nth-child(2) > div"
]
}
],
"impact": "serious",
"message": "Links can be distinguished from surrounding text by visual styling"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#guides\" class=\"btn btn-dark\">Download Full Guide (PDF)</a>",
"target": [
".btn-dark.btn[href$=\"#guides\"]"
]
}
]
},
{
"id": "link-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute exists and is not empty"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a href=\"#top\" class=\"brand\" aria-label=\"Kernelpoint home\">",
"target": [
".brand"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul>",
"target": [
"#mainNav > ul"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li><a href=\"#reviews\">Reviews</a></li>",
"target": [
"#mainNav > ul > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://placehold.co/96x96/c6f432/0b1020?text=KP&font=montserrat\" alt=\"Kernelpoint logo\" width=\"46\" height=\"46\">",
"target": [
"img[width=\"46\"]"
]
}
]
},
{
"id": "select-name",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": {
"explicitLabel": "Machine A"
},
"relatedNodes": [
{
"html": "<label for=\"selA\">Machine A</label>",
"target": [
"label[for=\"selA\"]"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<select id=\"selA\"><option value=\"aurora\">Aurora X14 \u2014 $1,299</option><option value=\"titan\">Titan G16 \u2014 $1,999</option><option value=\"forge\">Forge Pro 16 \u2014 $2,499</option><option value=\"nimbus\">Nimbus Air 13 \u2014 $999</option></select>",
"target": [
"#selA"
]
}
]
},
{
"id": "summary-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure summary elements have discernible text",
"help": "Summary elements must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<summary>How does Kernelpoint test and score products?</summary>",
"target": [
"details[open=\"\"] > summary"
]
}
]
},
{
"id": "target-size",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag22aa",
"wcag258"
],
"description": "Ensure touch targets have sufficient size and space",
"help": "All touch targets must be 24px large, or leave sufficient space",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "target-size",
"data": {
"minSize": 24,
"width": 361.4,
"height": 46.2
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (361.4px by 46.2px, should be at least 24px by 24px)"
},
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#top\" class=\"brand\" aria-label=\"Kernelpoint home\">",
"target": [
".brand"
]
}
]
},
{
"id": "td-headers-attr",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
"help": "Table cells that use the headers attribute must only refer to cells in the same table",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "td-headers-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The headers attribute is exclusively used to refer to other cells in the table"
}
],
"none": [],
"impact": null,
"html": "<table>",
"target": [
"table"
]
}
]
},
{
"id": "th-has-data-cells",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
"help": "Table headers in a data table must refer to data cells",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "th-has-data-cells",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "All table header cells refer to data cells"
}
],
"none": [],
"impact": null,
"html": "<table>",
"target": [
"table"
]
}
]
}
],
"incomplete": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fontSize": "8.6pt (11.52px)",
"fontWeight": "normal",
"messageKey": "pseudoContent",
"expectedContrastRatio": "4.5:1"
},
"relatedNodes": [
{
"html": "<section class=\"hero\">",
"target": [
".hero"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a pseudo element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"tag light\">Lab-tested \u00b7 Not sponsored</span>",
"target": [
".hero > .container > div > .light.tag"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a pseudo element"
}
]
}
],
"violations": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(1) > .y.c:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(1) > .y.c:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#f59e0b",
"bgColor": "#ffffff",
"contrastRatio": 2.14,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.14 (foreground color: #f59e0b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c p\">\u25d0 Partial</td>",
"target": [
"tr:nth-child(1) > .p.c"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.14 (foreground color: #f59e0b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(1) > .y.c:nth-child(5)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(2) > .y.c:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#f59e0b",
"bgColor": "#ffffff",
"contrastRatio": 2.14,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.14 (foreground color: #f59e0b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c p\">\u25d0 1 display</td>",
"target": [
"tr:nth-child(2) > .p.c"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.14 (foreground color: #f59e0b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(2) > .y.c:nth-child(4)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(2) > .y.c:nth-child(5)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(3) > .y.c:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(3) > .y.c:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ef4444",
"bgColor": "#ffffff",
"contrastRatio": 3.76,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.76 (foreground color: #ef4444, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c n\">\u2717 No audio</td>",
"target": [
"tr:nth-child(3) > .n.c"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.76 (foreground color: #ef4444, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#f59e0b",
"bgColor": "#ffffff",
"contrastRatio": 2.14,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.14 (foreground color: #f59e0b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c p\">\u25d0 Partial</td>",
"target": [
"tr:nth-child(3) > .p.c"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.14 (foreground color: #f59e0b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(4) > .y.c:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(4) > .y.c:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c y\">\u2713 Full</td>",
"target": [
"tr:nth-child(4) > .y.c:nth-child(4)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ef4444",
"bgColor": "#ffffff",
"contrastRatio": 3.76,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"table-wrap\">",
"target": [
".table-wrap"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.76 (foreground color: #ef4444, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"c n\">\u2717 Unstable</td>",
"target": [
"tr:nth-child(4) > .n.c"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.76 (foreground color: #ef4444, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.2pt (13.6px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>$89</b>",
"target": [
".deal:nth-child(2) > div > .price > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.2pt (13.6px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>$64</b>",
"target": [
".deal:nth-child(3) > div > .price > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.2pt (13.6px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>$79</b>",
"target": [
".deal:nth-child(4) > div > .price > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#16a34a",
"bgColor": "#ffffff",
"contrastRatio": 3.29,
"fontSize": "10.2pt (13.6px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>$299</b>",
"target": [
".deal:nth-child(5) > div > .price > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.29 (foreground color: #16a34a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 9872
},
{
"y": 576,
"height": 10313
},
{
"y": 1152,
"height": 10313
},
{
"y": 1728,
"height": 10313
},
{
"y": 2304,
"height": 10313
},
{
"y": 2880,
"height": 10313
},
{
"y": 3456,
"height": 10313
},
{
"y": 4032,
"height": 10313
},
{
"y": 4608,
"height": 10313
},
{
"y": 5184,
"height": 10313
},
{
"y": 5760,
"height": 10313
},
{
"y": 6336,
"height": 10313
},
{
"y": 6912,
"height": 10313
},
{
"y": 7488,
"height": 10313
},
{
"y": 8064,
"height": 10313
},
{
"y": 8640,
"height": 10313
},
{
"y": 9216,
"height": 10313
},
{
"y": 9593,
"height": 10313
}
],
"scans": 19,
"max_states": 512,
"settle_ms": 5000,
"page_timeout_seconds": 150,
"layout_stability": "consecutive 100ms size samples within one CSS pixel",
"animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
"interactive_states": "not exercised",
"horizontal_scroll": "not exercised"
}
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Technology & Computing" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.
**Client & Category:**
- Industry: "Technology & Computing"
- Description: Tech news, software and hardware reviews, gadgets, and computing resources.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Technology & Computing" category.
2. **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3. **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.
**Content & Structure Requirements (Deliver a COMPLETE page):**
- **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
- **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Deals", "News", "Contact".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Technology & Computing" category. Consider themes similar to: "Hardware Reviews", "Comparison Guides", "Security Tips".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "debugging", "compatibility matrix", "user interface".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Download Software", "Join Forum", "Watch Tutorial".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Technology & Computing" sector. Ideas similar but not limited to: "benchmark tool".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "hot deals", "editor reviews", "community picks".
- **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
- **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.