Qwen Qwen3.8 Max (0902) – Technology and Computing
via Alibaba · Generated
- AIMAC Debt 5.93
- Cost $0.25
- Total Violations 62
- HTML Size 78 KB
- Em Dashes 46
Screenshot
View Live Page
Accessibility Issues Found
62 Serious
-
color-contrast serious 62 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<span class="mono">bench-04 — kernelcurrent</span>
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KERNELCURRENT — Hardware, decoded. Software, defended.</title>
<meta name="description" content="Kernel Current is an independent tech lab and newsroom: retail-bought reviews, open benchmark data, comparison tools, and field-tested computing guides.">
<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=Chakra+Petch:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel="stylesheet">
<style>
/* ============ TOKENS / RESET ============ */
:root{
--bg:#07090c; --panel:#0d1218; --panel2:#111923; --line:#1e2a36; --line2:#2c3b4a;
--text:#dbe7f1; --muted:#7f93a5; --dim:#54687a;
--acc:#b6f04a; --acc-dk:#86b52f; --amber:#ffb454; --cyan:#6ee7ff;
--disp:'Chakra Petch',sans-serif; --body:'IBM Plex Sans',sans-serif; --mono:'IBM Plex Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-padding-top:96px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--acc);color:#0a0d10}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#0a0f14}
::-webkit-scrollbar-thumb{background:#243444;border:2px solid #0a0f14}
::-webkit-scrollbar-thumb:hover{background:var(--acc-dk)}
.wrap{max-width:1240px;margin:0 auto;padding:0 28px}
.mono{font-family:var(--mono)}
.kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;color:var(--acc);text-transform:uppercase}
/* noise overlay */
.noise{position:fixed;inset:0;z-index:999;pointer-events:none;opacity:.045;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
.skip{position:absolute;left:-9999px;top:0;background:var(--acc);color:#0a0d10;padding:10px 18px;font-family:var(--mono);z-index:1200}
.skip:focus{left:12px;top:12px}
/* ============ TICKER ============ */
.ticker{background:#0a0f14;border-bottom:1px solid var(--line);overflow:hidden;font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.ticker-in{display:flex;width:max-content;animation:tick 42s linear infinite}
.ticker:hover .ticker-in{animation-play-state:paused}
.ticker span{padding:8px 0;white-space:nowrap}
.ticker em{font-style:normal;color:var(--acc)}
.ticker b{color:var(--amber);font-weight:500}
@keyframes tick{to{transform:translateX(-50%)}}
/* ============ HEADER ============ */
header.site{position:sticky;top:0;z-index:900;background:rgba(7,9,12,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
header.site.scrolled{box-shadow:0 8px 32px rgba(0,0,0,.55)}
.head-row{display:flex;align-items:center;gap:34px;padding:14px 28px;max-width:1360px;margin:0 auto}
.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}
.brand img{width:42px;height:42px;border:1px solid var(--line2)}
.brand-name{font-family:var(--disp);font-weight:700;font-size:1.12rem;letter-spacing:.05em;line-height:1}
.brand-name span{color:var(--acc)}
.brand-tag{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;color:var(--muted);margin-top:5px;text-transform:uppercase}
nav.main{display:flex;gap:4px;margin-left:auto}
nav.main a{font-family:var(--mono);font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);padding:9px 13px;position:relative;transition:color .25s}
nav.main a::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:1px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform .3s}
nav.main a:hover{color:var(--text)}
nav.main a:hover::after{transform:scaleX(1)}
nav.main a.hot{color:var(--acc)}
.cart-btn{position:relative;background:none;border:1px solid var(--line2);color:var(--text);width:42px;height:42px;display:grid;place-items:center;flex-shrink:0;transition:border-color .25s}
.cart-btn:hover{border-color:var(--acc)}
.cart-badge{position:absolute;top:-7px;right:-7px;background:var(--acc);color:#0a0d10;font-family:var(--mono);font-size:.62rem;font-weight:600;min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px}
.cart-badge.bump{animation:bump .4s ease}
@keyframes bump{40%{transform:scale(1.45)}}
.burger{display:none;background:none;border:1px solid var(--line2);width:42px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.burger span{display:block;width:18px;height:2px;background:var(--text);transition:transform .3s,opacity .3s}
body.nav-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* ============ BUTTONS / CHIPS ============ */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:15px 26px;border:1px solid var(--acc);border-radius:2px;transition:transform .2s,box-shadow .25s,background .25s,color .25s}
.btn-solid{background:var(--acc);color:#0a0d10}
.btn-solid:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(182,240,74,.28)}
.btn-ghost{background:transparent;color:var(--acc)}
.btn-ghost:hover{background:rgba(182,240,74,.09);transform:translateY(-2px)}
.btn-dim{border-color:var(--line2);color:var(--muted)}
.btn-dim:hover{border-color:var(--text);color:var(--text)}
.btn:active{transform:translateY(0)}
.chip{display:inline-block;font-family:var(--mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line2);padding:4px 9px;border-radius:2px}
.chip.acc{color:var(--acc);border-color:rgba(182,240,74,.4)}
.chip.amb{color:var(--amber);border-color:rgba(255,180,84,.4)}
/* ============ REVEAL ============ */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease var(--d,0s),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.rv.in{opacity:1;transform:none}
/* ============ MASTHEAD ============ */
.masthead{position:relative;padding:74px 0 0;border-bottom:1px solid var(--line);
background:
radial-gradient(1100px 480px at 74% -12%,rgba(182,240,74,.075),transparent 62%),
linear-gradient(rgba(182,240,74,.045) 1px,transparent 1px) 0 0/100% 46px,
linear-gradient(90deg,rgba(182,240,74,.045) 1px,transparent 1px) 0 0/46px 100%}
.mast-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start;padding-bottom:64px}
.mast-h1{font-family:var(--disp);font-weight:700;font-size:clamp(2.1rem,4.6vw,3.9rem);line-height:1.06;letter-spacing:.01em;text-transform:uppercase;margin:22px 0 26px}
.mast-h1 .acc{color:var(--acc)}
.lede{color:var(--muted);font-size:1.06rem;max-width:56ch;margin-bottom:34px}
.lede b{color:var(--text);font-weight:500}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.mast-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:38px;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;color:var(--dim);text-transform:uppercase}
.mast-meta i{color:var(--acc);font-style:normal}
/* terminal panel */
.term{background:#0a0e13;border:1px solid var(--line2);border-radius:3px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.term-bar{display:flex;align-items:center;gap:7px;padding:11px 15px;border-bottom:1px solid var(--line)}
.term-bar i{width:9px;height:9px;border-radius:50%;background:#2c3b4a}
.term-bar i:first-child{background:#e5534b}
.term-bar i:nth-child(2){background:var(--amber)}
.term-bar i:nth-child(3){background:var(--acc)}
.term-bar span{margin-left:auto;font-size:.64rem;color:var(--dim);letter-spacing:.1em}
.term pre{padding:20px 18px;font-family:var(--mono);font-size:.74rem;line-height:1.8;color:#9fe870;min-height:172px;white-space:pre-wrap}
.term pre::after{content:"▊";color:var(--acc);animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.tele{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.tele>div{padding:13px 8px;text-align:center;border-right:1px solid var(--line)}
.tele>div:last-child{border-right:0}
.tele span{display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;color:var(--dim);text-transform:uppercase;margin-bottom:5px}
.tele strong{font-family:var(--mono);font-size:.86rem;color:var(--acc);font-weight:500}
.term-link{display:block;padding:12px 18px;border-top:1px solid var(--line);font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--cyan);transition:background .25s,color .25s}
.term-link:hover{background:rgba(110,231,255,.07);color:#a5f0ff}
/* stats strip */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.stat{padding:26px 24px;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat b{display:block;font-family:var(--disp);font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:700;color:var(--text)}
.stat b em{font-style:normal;color:var(--acc)}
.stat span{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;color:var(--dim);text-transform:uppercase}
/* ============ SECTION SHELL ============ */
section{padding:86px 0}
.sec-head{display:grid;grid-template-columns:120px 1fr auto;gap:28px;align-items:end;border-top:1px solid var(--line2);padding-top:22px;margin-bottom:48px}
.sec-no{font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;color:var(--acc)}
.sec-head h2{font-family:var(--disp);font-weight:700;font-size:clamp(1.7rem,3.2vw,2.6rem);text-transform:uppercase;line-height:1.1;letter-spacing:.01em}
.sec-head p{color:var(--muted);max-width:62ch;margin-top:12px;font-size:.98rem}
.sec-link{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);white-space:nowrap;padding-bottom:6px;border-bottom:1px solid transparent;transition:border-color .25s}
.sec-link:hover{border-color:var(--acc)}
/* ============ NEWS + SIDEBAR ============ */
.news-grid{display:grid;grid-template-columns:1fr 320px;gap:44px;align-items:start}
.feature-card{position:relative;background:var(--panel);border:1px solid var(--line);overflow:hidden;margin-bottom:26px}
.kb{overflow:hidden}
.kb img{width:100%;height:100%;object-fit:cover;animation:kenburns 16s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.09) translate(1.6%,-1.4%)}}
.feature-card .kb{height:360px}
.feature-body{padding:30px 32px}
.chip-row{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.feature-body h3,.news-item h3{font-family:var(--disp);font-weight:600;line-height:1.25}
.feature-body h3{font-size:clamp(1.25rem,2.2vw,1.7rem);margin-bottom:13px;transition:color .25s}
.feature-card:hover h3{color:var(--acc)}
.feature-body p{color:var(--muted);font-size:.98rem;max-width:70ch}
.byline{margin-top:18px;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--dim);text-transform:uppercase}
.byline i{font-style:normal;color:var(--acc)}
.news-item{display:grid;grid-template-columns:118px 1fr;gap:18px;padding:20px 0;border-top:1px solid var(--line);align-items:center}
.news-item .thumb{width:118px;height:80px;overflow:hidden;border:1px solid var(--line)}
.news-item .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.news-item:hover .thumb img{transform:scale(1.08)}
.news-item h3{font-size:1.02rem;margin:7px 0 8px;transition:color .25s}
.news-item:hover h3{color:var(--acc)}
.news-item p{color:var(--muted);font-size:.88rem}
/* corner brackets motif */
.card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:3px;transition:border-color .3s,transform .3s}
.card::before,.card::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--acc);opacity:0;transition:opacity .3s;z-index:2}
.card::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.card::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.card:hover{border-color:var(--line2)}
.card:hover::before,.card:hover::after{opacity:1}
/* sidebar */
.side{position:sticky;top:100px;display:flex;flex-direction:column;gap:26px}
.side-box{background:var(--panel);border:1px solid var(--line);padding:22px}
.side-box h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;color:var(--acc);text-transform:uppercase;margin-bottom:18px;display:flex;align-items:center;gap:9px}
.side-box h4::after{content:"";flex:1;height:1px;background:var(--line)}
.trend{list-style:none;counter-reset:tr}
.trend li{counter-increment:tr;display:flex;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.9rem;align-items:baseline}
.trend li:last-child{border-bottom:0}
.trend li::before{content:"0" counter(tr);font-family:var(--mono);color:var(--dim);font-size:.72rem}
.trend a:hover{color:var(--acc)}
.deal{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.deal:last-child{border-bottom:0}
.deal .old{color:var(--dim);text-decoration:line-through;font-size:.78rem;margin-right:7px}
.deal .new{color:var(--acc);font-family:var(--mono);font-weight:600}
.tut{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.tut:last-child{border-bottom:0}
.tut span{font-family:var(--mono);font-size:.68rem;color:var(--dim);white-space:nowrap}
.tut a:hover{color:var(--acc)}
/* ============ TEST BENCH ============ */
#reviews{background:linear-gradient(#0a0f14,#07090c)}
.bench-grid{display:grid;grid-template-columns:1fr 400px;gap:36px;align-items:start}
.review-list{display:flex;flex-direction:column;gap:22px}
.review-card{display:grid;grid-template-columns:212px 1fr;overflow:hidden}
.review-card .kb{height:100%;min-height:190px}
.review-body{padding:24px 26px}
.review-body h3{font-family:var(--disp);font-size:1.16rem;font-weight:600;margin:10px 0 9px;transition:color .25s}
.review-card:hover h3{color:var(--acc)}
.review-body p{color:var(--muted);font-size:.9rem}
.verdict-line{margin-top:13px;font-size:.86rem;color:var(--text)}
.verdict-line i{font-style:normal;color:var(--acc);font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;margin-right:8px}
.score{position:absolute;top:16px;right:16px;width:54px;height:54px;z-index:3}
.score svg{width:54px;height:54px;transform:rotate(-90deg)}
.score circle{fill:none;stroke-width:4}
.score .bg{stroke:#1c2836}
.score .fg{stroke:var(--acc);stroke-linecap:square;stroke-dasharray:0 113;transition:stroke-dasharray 1.3s cubic-bezier(.2,.7,.2,1) .25s}
.rv.in .score .fg{stroke-dasharray:calc(var(--p)*1.13) 113}
.score b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-size:.8rem;color:var(--acc)}
.lab-panel{display:flex;flex-direction:column;gap:26px;position:sticky;top:100px}
.panel-box{background:var(--panel);border:1px solid var(--line);padding:24px}
.panel-box h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;color:var(--acc);text-transform:uppercase;margin-bottom:6px}
.panel-box .sub{font-size:.82rem;color:var(--dim);margin-bottom:20px}
.bench-row{display:grid;grid-template-columns:1fr 58px;gap:8px;align-items:center;margin-bottom:15px}
.bench-row>span{font-family:var(--mono);font-size:.66rem;color:var(--muted);letter-spacing:.05em;grid-column:1/-1}
.bar{height:14px;background:#141d27;border:1px solid var(--line);overflow:hidden}
.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--acc-dk),var(--acc));transition:width 1.4s cubic-bezier(.2,.7,.2,1) .2s}
.bench-row.ref .bar i{background:#33465a}
.rv.in .bar i{width:var(--w)}
.bench-row b{font-family:var(--mono);font-size:.72rem;color:var(--text);text-align:right;font-weight:500}
table.matrix{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.68rem}
table.matrix th,table.matrix td{border:1px solid var(--line);padding:9px 8px;text-align:center}
table.matrix th{color:var(--dim);font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-size:.58rem}
table.matrix td:first-child,table.matrix th:first-child{text-align:left;color:var(--muted)}
.ok{color:var(--acc)}.mid{color:var(--amber)}.no{color:var(--dim)}
.legend{margin-top:14px;font-family:var(--mono);font-size:.62rem;color:var(--dim);line-height:1.9}
/* ============ COMPARE LAB ============ */
#compare{border-top:1px solid var(--line)}
.lab{background:var(--panel);border:1px solid var(--line2);border-radius:3px;padding:34px;position:relative;overflow:hidden}
.lab::before{content:"COMPARE//LAB v3.2";position:absolute;top:14px;right:18px;font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;color:var(--dim)}
.lab-head{display:grid;grid-template-columns:1fr 58px 1fr;gap:16px;align-items:end;margin-bottom:14px}
.pick label{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;color:var(--acc);margin-bottom:9px}
.sel{position:relative}
.sel select{width:100%;appearance:none;-webkit-appearance:none;background:#0a0e13;border:1px solid var(--line2);color:var(--text);font-family:var(--mono);font-size:.82rem;padding:14px 40px 14px 15px;border-radius:2px;cursor:pointer;transition:border-color .25s}
.sel select:hover,.sel select:focus{border-color:var(--acc);outline:none}
.sel::after{content:"▾";position:absolute;right:15px;top:50%;transform:translateY(-50%);color:var(--acc);pointer-events:none}
.pick small{display:block;margin-top:8px;font-family:var(--mono);font-size:.64rem;color:var(--dim);letter-spacing:.08em}
.swap{background:#0a0e13;border:1px solid var(--line2);color:var(--acc);height:50px;font-size:1.15rem;border-radius:2px;transition:background .25s,transform .3s}
.swap:hover{background:rgba(182,240,74,.1)}
.swap.spun{transform:rotate(180deg)}
.presets{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:24px;font-size:.62rem;letter-spacing:.16em;color:var(--dim)}
.presets button{background:none;border:1px solid var(--line2);color:var(--muted);font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:2px;transition:all .25s}
.presets button:hover{border-color:var(--acc);color:var(--acc)}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line)}
table.cmp{width:100%;border-collapse:collapse;min-width:620px}
table.cmp td,table.cmp th{border-bottom:1px solid var(--line);padding:13px 16px;font-size:.88rem}
table.cmp th{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;color:var(--dim);text-transform:uppercase;text-align:left;background:#0a0e13}
table.cmp th:nth-child(2),table.cmp td:nth-child(2),table.cmp th:nth-child(3),table.cmp td:nth-child(3){text-align:right;font-family:var(--mono);font-size:.82rem}
table.cmp td:first-child{color:var(--muted);font-size:.82rem}
table.cmp tr:last-child td{border-bottom:0}
table.cmp td.win{color:var(--acc)}
table.cmp td.win::after{content:" ◂ best";font-size:.6rem;letter-spacing:.1em;color:var(--acc-dk)}
table.cmp td.info{color:var(--dim);font-size:.76rem}
.lab.flash .tbl-wrap{animation:flash .55s ease}
@keyframes flash{0%{box-shadow:inset 0 0 0 1px var(--acc)}100%{box-shadow:inset 0 0 0 1px transparent}}
.verdict-box{margin-top:24px;border:1px solid rgba(182,240,74,.35);background:rgba(182,240,74,.05);padding:20px 24px}
.verdict-box b{display:block;font-family:var(--disp);font-size:1rem;text-transform:uppercase;letter-spacing:.04em;color:var(--acc);margin-bottom:7px}
.verdict-box p{color:var(--muted);font-size:.92rem}
.verdict-box p strong{color:var(--text);font-weight:500}
/* ============ GUIDES (sticky 2-col) ============ */
.guides-grid{display:grid;grid-template-columns:380px 1fr;gap:56px;align-items:start}
.guides-sticky{position:sticky;top:104px}
.guides-sticky h2{font-family:var(--disp);font-size:clamp(1.7rem,3vw,2.4rem);text-transform:uppercase;line-height:1.12;margin:16px 0 20px}
.guides-sticky p{color:var(--muted);margin-bottom:18px;font-size:.97rem}
.runbook-stat{display:flex;gap:26px;margin:28px 0 32px;font-family:var(--mono);font-size:.68rem;color:var(--dim);letter-spacing:.1em;text-transform:uppercase}
.runbook-stat b{display:block;font-family:var(--disp);font-size:1.5rem;color:var(--text)}
.guide-list{display:flex;flex-direction:column;gap:22px}
.guide{display:grid;grid-template-columns:190px 1fr;overflow:hidden}
.guide .kb{min-height:172px}
.guide-body{padding:22px 26px}
.guide-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.guide-body h3{font-family:var(--disp);font-size:1.1rem;font-weight:600;margin-bottom:9px;transition:color .25s}
.guide:hover h3{color:var(--acc)}
.guide-body p{color:var(--muted);font-size:.89rem}
.guide-cta{display:inline-block;margin-top:13px;font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;color:var(--cyan);text-transform:uppercase}
.guide-cta:hover{color:#a5f0ff}
/* ============ OPEN STACK ============ */
#stack{background:linear-gradient(#07090c,#0a0f14)}
.stack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tool{padding:26px}
.tool-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.tool-glyph{font-family:var(--mono);font-size:1.5rem;color:var(--acc)}
.tool h3{font-family:var(--disp);font-size:1.08rem;font-weight:600;margin-bottom:9px}
.tool p{color:var(--muted);font-size:.88rem;margin-bottom:18px;min-height:3.4em}
.tool-foot{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:.66rem;color:var(--dim);border-top:1px solid var(--line);padding-top:14px}
.tool-foot b{color:var(--amber);font-weight:500}
.stack-more{text-align:center;margin-top:38px}
/* ============ SHOP ============ */
.shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.prod figure{height:190px;overflow:hidden;border-bottom:1px solid var(--line)}
.prod figure img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.prod:hover figure img{transform:scale(1.07)}
.prod-b{padding:20px 22px 24px}
.prod-b h3{font-family:var(--disp);font-size:1rem;font-weight:600;margin:12px 0 8px}
.prod-b p{color:var(--muted);font-size:.83rem;min-height:3.2em}
.prod-f{display:flex;justify-content:space-between;align-items:center;margin-top:16px}
.prod-f strong{font-family:var(--disp);font-size:1.25rem;color:var(--acc)}
.add-cart{background:none;border:1px solid var(--line2);color:var(--text);font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;padding:10px 14px;text-transform:uppercase;border-radius:2px;transition:all .25s}
.add-cart:hover{border-color:var(--acc);color:var(--acc)}
.add-cart.added{background:var(--acc);color:#0a0d10;border-color:var(--acc)}
/* ============ TESTIMONIALS ============ */
#signal{border-top:1px solid var(--line)}
.quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.quote{padding:30px 32px;transform:rotate(var(--r,0deg));transition:transform .35s,border-color .3s}
.quote:hover{transform:rotate(0) translateY(-5px);border-color:var(--line2)}
.quote q{display:block;font-size:1rem;line-height:1.7;color:var(--text);quotes:"“" "”";margin-bottom:22px}
.quote q::before{color:var(--acc);font-family:var(--disp);font-size:1.3em}
.quote-who{display:flex;align-items:center;gap:14px}
.quote-who img{width:44px;height:44px;border-radius:50%;border:1px solid var(--line2)}
.quote-who b{display:block;font-size:.9rem}
.quote-who span{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;color:var(--dim);text-transform:uppercase}
/* ============ SUPPORT / FAQ ============ */
.support-grid{display:grid;grid-template-columns:1fr 380px;gap:44px;align-items:start}
.faq-item{border:1px solid var(--line);background:var(--panel);margin-bottom:12px;border-radius:2px}
.faq-q{width:100%;background:none;border:0;color:var(--text);display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;padding:20px 24px;font-family:var(--disp);font-size:1rem;font-weight:600;transition:color .25s}
.faq-q:hover{color:var(--acc)}
.faq-ic{font-family:var(--mono);color:var(--acc);font-size:1.1rem;transition:transform .35s;flex-shrink:0}
.faq-item.open .faq-ic{transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.2,.7,.2,1)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a-in{overflow:hidden}
.faq-a p{padding:0 24px 22px;color:var(--muted);font-size:.92rem}
.help-card{position:sticky;top:104px;background:var(--panel);border:1px solid rgba(182,240,74,.35);padding:30px;border-radius:3px}
.help-card h3{font-family:var(--disp);font-size:1.3rem;text-transform:uppercase;margin:12px 0 14px}
.help-card p{color:var(--muted);font-size:.92rem;margin-bottom:24px}
.help-card .btn{width:100%;justify-content:center;margin-bottom:12px}
.status-line{margin-top:20px;font-family:var(--mono);font-size:.66rem;color:var(--dim);letter-spacing:.08em}
.status-line i{font-style:normal;color:var(--acc);animation:pulse 2.2s ease infinite}
@keyframes pulse{50%{opacity:.35}}
/* ============ FOOTER ============ */
footer.site{border-top:1px solid var(--line2);background:#05070a;padding:70px 0 0;overflow:hidden}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:44px;padding-bottom:56px}
.foot-grid h5{font-family:var(--mono);font-size:.66rem;letter-spacing:.22em;color:var(--acc);text-transform:uppercase;margin-bottom:20px}
.foot-about p{color:var(--muted);font-size:.9rem;margin:16px 0 20px;max-width:38ch}
.foot-list{list-style:none}
.foot-list li{margin-bottom:11px}
.foot-list a{color:var(--muted);font-size:.88rem;transition:color .25s,padding-left .25s}
.foot-list a:hover{color:var(--acc);padding-left:5px}
.foot-contact p{color:var(--muted);font-size:.88rem;margin-bottom:11px;font-family:var(--mono);font-size:.78rem;line-height:1.8}
.socials{display:flex;gap:11px;margin-top:20px}
.socials a{width:38px;height:38px;border:1px solid var(--line2);display:grid;place-items:center;color:var(--muted);transition:all .25s}
.socials a:hover{border-color:var(--acc);color:var(--acc);transform:translateY(-3px)}
.socials svg{width:16px;height:16px}
.news-form{display:flex;margin-top:14px;border:1px solid var(--line2)}
.news-form input{flex:1;background:#0a0e13;border:0;color:var(--text);font-family:var(--mono);font-size:.78rem;padding:13px 15px;min-width:0}
.news-form input:focus{outline:none}
.news-form button{background:var(--acc);color:#0a0d10;border:0;font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.12em;padding:0 20px;text-transform:uppercase;transition:background .25s}
.news-form button:hover{background:#cdf77e}
.news-ok{display:none;margin-top:12px;font-family:var(--mono);font-size:.7rem;color:var(--acc)}
.foot-word{font-family:var(--disp);font-weight:700;font-size:clamp(3rem,10.5vw,9rem);line-height:.95;text-align:center;color:transparent;-webkit-text-stroke:1px #1d2b39;user-select:none;letter-spacing:.02em;transform:translateY(8%)}
.legal{border-top:1px solid var(--line);padding:22px 28px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:.66rem;color:var(--dim);letter-spacing:.08em}
.legal a{color:var(--dim)}.legal a:hover{color:var(--acc)}
.legal .links{display:flex;gap:22px}
/* ============ RESPONSIVE ============ */
@media (max-width:1080px){
.mast-grid{grid-template-columns:1fr;gap:44px}
.news-grid{grid-template-columns:1fr}
.side{position:static;display:grid;grid-template-columns:repeat(3,1fr)}
.bench-grid{grid-template-columns:1fr}
.lab-panel{position:static}
.guides-grid{grid-template-columns:1fr;gap:40px}
.guides-sticky{position:static}
.stack-grid{grid-template-columns:repeat(2,1fr)}
.shop-grid{grid-template-columns:repeat(2,1fr)}
.support-grid{grid-template-columns:1fr}
.help-card{position:static}
.foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:960px){
nav.main{position:fixed;inset:0;top:71px;background:rgba(5,7,10,.98);flex-direction:column;padding:44px 30px;gap:8px;transform:translateY(-10px);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
body.nav-open nav.main{transform:none;opacity:1;pointer-events:auto}
nav.main a{font-size:1rem;padding:14px 0;border-bottom:1px solid var(--line)}
.burger{display:flex}
}
@media (max-width:680px){
.wrap{padding:0 20px}
.head-row{padding:12px 20px;gap:16px}
section{padding:64px 0}
.sec-head{grid-template-columns:1fr;gap:10px}
.stats,.side{grid-template-columns:1fr 1fr}
.stat{border-bottom:1px solid var(--line)}
.review-card,.guide{grid-template-columns:1fr}
.review-card .kb,.guide .kb{height:190px;min-height:0}
.lab{padding:24px 18px}
.lab-head{grid-template-columns:1fr;gap:12px}
.swap{width:100%}
.stack-grid,.shop-grid,.quotes{grid-template-columns:1fr}
.tele{grid-template-columns:repeat(2,1fr)}
.tele>div{border-bottom:1px solid var(--line)}
.news-item{grid-template-columns:92px 1fr}
.news-item .thumb{width:92px;height:66px}
.foot-grid{grid-template-columns:1fr}
.quote{transform:none}
}
/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
.rv{opacity:1;transform:none}
.kb img{animation:none}
.ticker-in{animation:none;flex-wrap:wrap}
.rv .bar i{width:var(--w)}
.rv .score .fg{stroke-dasharray:calc(var(--p)*1.13) 113}
}
</style>
</head>
<body>
<a class="skip" href="#main">Skip to content</a>
<div class="noise" aria-hidden="true"></div>
<!-- ============ BREAKING TICKER ============ -->
<div class="ticker" aria-label="Latest headlines">
<div class="ticker-in">
<span><b>LIVE ▸</b> Linux 6.12 LTS lands in stable <em>◆</em> RTX-class mid-tier street prices drop 9% this week <em>◆</em> Firefox 139 ships opt-in on-device translation <em>◆</em> Raspberry Pi CM6 teased ahead of Computex <em>◆</em> EU charger rules now cover laptops — USB-C PD 3.2 required <em>◆</em> Our NVMe group test hits 2.1M reads <em>◆</em> </span>
<span aria-hidden="true"><b>LIVE ▸</b> Linux 6.12 LTS lands in stable <em>◆</em> RTX-class mid-tier street prices drop 9% this week <em>◆</em> Firefox 139 ships opt-in on-device translation <em>◆</em> Raspberry Pi CM6 teased ahead of Computex <em>◆</em> EU charger rules now cover laptops — USB-C PD 3.2 required <em>◆</em> Our NVMe group test hits 2.1M reads <em>◆</em> </span>
</div>
</div>
<!-- ============ HEADER ============ -->
<header class="site" id="siteHeader">
<div class="head-row">
<a class="brand" href="#top" aria-label="Kernel Current home">
<img src="https://placehold.co/96x96/0d1218/b6f04a?text=K%2FC&font=oswald" alt="Kernel Current logo" width="42" height="42">
<span>
<span class="brand-name">KERNEL<span>/</span>CURRENT</span>
<span class="brand-tag">The signal in the silicon</span>
</span>
</a>
<nav class="main" id="primaryNav" aria-label="Primary">
<a href="#news">News</a>
<a href="#reviews">Reviews</a>
<a href="#compare" class="hot">Compare</a>
<a href="#guides">Guides</a>
<a href="#shop">Shop</a>
<a href="#support">Support</a>
</nav>
<button class="cart-btn" id="cartBtn" aria-label="Cart, item count shown on badge">
<svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><path d="M6 7h12l1.2 13H4.8L6 7z"/><path d="M9 7V6a3 3 0 0 1 6 0v1"/></svg>
<span class="cart-badge" id="cartCount" aria-live="polite">0</span>
</button>
<button class="burger" id="burger" aria-label="Toggle menu" aria-expanded="false" aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</header>
<main id="main">
<!-- ============ MASTHEAD ============ -->
<section class="masthead" id="top">
<div class="wrap">
<div class="mast-grid">
<div>
<p class="kicker">// Independent tech lab & newsroom · est. 2019 · Portland, OR</p>
<h1 class="mast-h1">
<span class="decode" data-text="WE TAKE IT APART,">WE TAKE IT APART,</span><br>
<span class="decode" data-text="BENCH IT, AND TELL YOU">BENCH IT, AND TELL YOU</span><br>
<span class="acc decode" data-text="EXACTLY WHAT WE FOUND.">EXACTLY WHAT WE FOUND.</span>
</h1>
<p class="lede">Kernel Current buys hardware <b>at retail</b>, runs it through <b>40+ hours of standardized benchmarks</b>, and publishes everything — thermals, driver bugs, teardown photos and all. No paid scores, no affiliate-shaped verdicts, no "sponsored by the thing we're reviewing."</p>
<div class="cta-row">
<a class="btn btn-solid" href="#news">▸ Read today's teardown</a>
<a class="btn btn-ghost" href="#compare">Run the Compare Lab</a>
</div>
<div class="mast-meta">
<span><i>▣</i> 247 published reviews</span>
<span><i>▣</i> Raw CSVs on every score</span>
<span><i>▣</i> Sys time <span id="sysclock">--:--:--</span></span>
</div>
</div>
<div class="term rv" style="--d:.15s">
<div class="term-bar"><i></i><i></i><i></i><span class="mono">bench-04 — kernelcurrent</span></div>
<pre id="bootlog" aria-label="Boot log animation"></pre>
<div class="tele" aria-label="Live bench telemetry">
<div><span>GPU temp</span><strong id="tGpu">61.4°C</strong></div>
<div><span>Bench load</span><strong id="tLoad">37%</strong></div>
<div><span>Readers</span><strong id="tRead">4,182</strong></div>
<div><span>Uptime</span><strong id="tUp">126d 07:42</strong></div>
</div>
<a class="term-link" href="#reviews">▸ open this week's benchmark log →</a>
</div>
</div>
<div class="stats">
<div class="stat rv"><b><span data-count="247">0</span></b><span>Reviews published</span></div>
<div class="stat rv" style="--d:.1s"><b><span data-count="18304">0</span></b><span>Hours on the bench</span></div>
<div class="stat rv" style="--d:.2s"><b><span data-count="96">0</span><em>+</em></b><span>Open-source fixes shipped</span></div>
<div class="stat rv" style="--d:.3s"><b><span data-count="412">0</span>K</b><span>Monthly readers</span></div>
</div>
</div>
</section>
<!-- ============ 01 · DISPATCHES (NEWS + SIDEBAR) ============ -->
<section id="news">
<div class="wrap">
<div class="sec-head rv">
<span class="sec-no">SEC.01</span>
<div>
<h2>Dispatches</h2>
<p>The wire, filtered. Kernel releases, silicon launches, and policy shifts — written by people who actually read the patch notes. One big story up top; the rest ranked by consequence, not clicks.</p>
</div>
<a class="sec-link" href="#news">All dispatches →</a>
</div>
<div class="news-grid">
<div>
<article class="feature-card card rv">
<div class="kb"><img src="https://picsum.photos/seed/gpu-driver-stack/1200/620" alt="Engineers working on the open-source GPU driver stack"></div>
<div class="feature-body">
<div class="chip-row"><span class="chip acc">Open source</span><span class="chip">Feature</span><span class="chip amb">12 min read</span></div>
<h3><a href="#news">Inside the new open-source GPU driver stack: 14 months, 41 contributors, and one very stubborn DMA bug</a></h3>
<p>When upstream maintainers merged the scheduler rewrite last spring, nobody expected it to take four release cycles to stabilize. We sat down with three lead maintainers, traced the regression through 2,200 commits, and benchmarked the final stack against the proprietary baseline — the delta will surprise exactly nobody who has ever filed a bug report at 2 a.m.</p>
<p class="byline">By <i>Rhea Castellanos</i> · Senior silicon editor · 4h ago</p>
</div>
</article>
<article class="news-item rv" style="--d:.08s">
<div class="thumb"><img src="https://picsum.photos/seed/kernel-terminal/300/200" alt="Terminal window showing kernel logs"></div>
<div><div class="chip-row"><span class="chip acc">Kernel</span></div>
<h3><a href="#news">Linux 6.12 LTS lands: scheduler rewrite, saner hybrid-core handling, and what it means for your desktop</a></h3>
<p>The long-term branch finally treats big.LITTLE topologies as first-class citizens. Our fleet of three test rigs saw 7–11% gains in mixed workloads — and one laptop stopped spontaneously waking from sleep.</p>
</div>
</article>
<article class="news-item rv" style="--d:.16s">
<div class="thumb"><img src="https://picsum.photos/seed/mesh-router-node/300/200" alt="Mesh router node on a desk"></div>
<div><div class="chip-row"><span class="chip acc">Networking</span></div>
<h3><a href="#news">Mesh handoff, explained: why your Wi-Fi roams badly and how 802.11r actually fixes it</a></h3>
<p>Sticky clients are a configuration problem, not a hardware one. We captured packet traces across four vendors to show exactly where the roam decision stalls — and the two settings that un-stall it.</p>
</div>
</article>
<article class="news-item rv" style="--d:.24s">
<div class="thumb"><img src="https://picsum.photos/seed/oled-handheld/300/200" alt="Handheld gaming console with OLED screen"></div>
<div><div class="chip-row"><span class="chip acc">Gaming</span></div>
<h3><a href="#news">Handhelds grow up: OLED panels hit the $300 tier, and the thermal designs finally keep pace</a></h3>
<p>Three new SKUs this quarter pair efficient APUs with vapor chambers that used to cost twice as much. We ran the full battery-per-frame matrix — the winner is not the one with the biggest battery.</p>
</div>
</article>
<article class="news-item rv" style="--d:.32s">
<div class="thumb"><img src="https://picsum.photos/seed/usbc-chargers/300/200" alt="USB-C chargers and cables"></div>
<div><div class="chip-row"><span class="chip acc">Policy</span></div>
<h3><a href="#news">EU charger rules reach laptops — what USB-C PD 3.2 compliance actually requires from OEMs</a></h3>
<p>The deadline is closer than most product roadmaps. We break down EPR messaging, the 240W ceiling, and which current shipping machines already pass the spec today.</p>
</div>
</article>
</div>
<aside class="side" aria-label="Sidebar">
<div class="side-box rv">
<h4>Trending now</h4>
<ol class="trend">
<li><a href="#compare">Compare Lab: five laptops, one spreadsheet</a></li>
<li><a href="#reviews">The DRAM-less SSD problem, measured</a></li>
<li><a href="#guides">Kernel panic debugging runbook</a></li>
<li><a href="#stack">Pulseboard hits 20k stars</a></li>
<li><a href="#reviews">Compatibility matrix Q2 update</a></li>
</ol>
</div>
<div class="side-box rv" style="--d:.1s">
<h4>Hot deals</h4>
<div class="deal"><span>Norda N700 2TB NVMe</span><span><span class="old">$189</span><span class="new">$129</span></span></div>
<div class="deal"><span>27" 1440p 180Hz panel</span><span><span class="old">$329</span><span class="new">$249</span></span></div>
<div class="deal"><span>65W GaN 3-port charger</span><span><span class="old">$54</span><span class="new">$33</span></span></div>
</div>
<div class="side-box rv" style="--d:.2s">
<h4>Latest tutorials</h4>
<div class="tut"><a href="#guides">Netconsole 101: catch panics over the wire</a><span>08:24</span></div>
<div class="tut"><a href="#guides">Fan curves without fan noise</a><span>12:03</span></div>
<div class="tut"><a href="#guides">Your first Docker compose stack</a><span>17:45</span></div>
</div>
</aside>
</div>
</div>
</section>
<!-- ============ 02 · TEST BENCH ============ -->
<section id="reviews">
<div class="wrap">
<div class="sec-head rv">
<span class="sec-no">SEC.02</span>
<div>
<h2>The Test Bench</h2>
<p>Every review below passed through bench-04: scripted workloads, thermal chamber running, cameras rolling. Scores are computed from logged data first and opinions second — the raw CSVs are public, and driver updates that change results trigger a re-score.</p>
</div>
<a class="sec-link" href="#reviews">Review archive →</a>
</div>
<div class="bench-grid">
<div class="review-list">
<article class="review-card card rv">
<div class="kb"><img src="https://picsum.photos/seed/graphics-card-bench/560/420" alt="Graphics card mounted on the test bench"></div>
<div class="review-body">
<div class="chip-row"><span class="chip acc">GPU</span><span class="chip">180W TGP</span><span class="chip">PCIe 5.0</span></div>
<h3><a href="#reviews">Nexa RTX-class 5070 review: efficiency finally has a face</a></h3>
<p>One hundred and eighty watts of sane, quiet performance. Frame pacing is steady within 3% across our nine-game suite, and the cooler never broke 62°C in an open-air rig — numbers that used to require a custom loop.</p>
<p class="verdict-line"><i>VERDICT</i>The first mid-tier card in years we'd recommend without a footnote.</p>
</div>
<div class="score" style="--p:86"><svg viewBox="0 0 44 44" aria-hidden="true"><circle class="bg" cx="22" cy="22" r="18"/><circle class="fg" cx="22" cy="22" r="18"/></svg><b>8.6</b></div>
</article>
<article class="review-card card rv" style="--d:.1s">
<div class="kb"><img src="https://picsum.photos/seed/mini-pc-homelab/560/420" alt="Compact mini PC on a workbench"></div>
<div class="review-body">
<div class="chip-row"><span class="chip acc">Mini PC</span><span class="chip">6W idle</span><span class="chip">2× 2.5GbE</span></div>
<h3><a href="#reviews">Monolith Mini Pro: a homelab in your palm</a></h3>
<p>Six watts at idle, dual 2.5-gigabit Ethernet, and ECC-capable memory on a board smaller than a paperback. We ran it as a router, a media host, and a CI runner for three weeks straight; uptime never dropped, thermals never spiked.</p>
<p class="verdict-line"><i>VERDICT</i>Buy it for the homelab. Keep it for the silence.</p>
</div>
<div class="score" style="--p:91"><svg viewBox="0 0 44 44" aria-hidden="true"><circle class="bg" cx="22" cy="22" r="18"/><circle class="fg" cx="22" cy="22" r="18"/></svg><b>9.1</b></div>
</article>
<article class="review-card card rv" style="--d:.2s">
<div class="kb"><img src="https://picsum.photos/seed/e-ink-tablet-desk/560/420" alt="E-ink tablet resting on a desk beside a notebook"></div>
<div class="review-body">
<div class="chip-row"><span class="chip acc">E-ink</span><span class="chip">3 weeks battery</span><span class="chip">Stylus included</span></div>
<h3><a href="#reviews">A pixel-free week with the LedgerTab Air e-ink tablet</a></h3>
<p>The panel is gorgeous — 300 PPI with genuinely zero ghosting on the new refresh mode. But the storefront tax is real: sideloaded readers work, sync is manual, and PDF reflow still mangles two-column papers.</p>
<p class="verdict-line"><i>VERDICT</i>Beautiful panel, punishing store. Import if you're patient.</p>
</div>
<div class="score" style="--p:79"><svg viewBox="0 0 44 44" aria-hidden="true"><circle class="bg" cx="22" cy="22" r="18"/><circle class="fg" cx="22" cy="22" r="18"/></svg><b>7.9</b></div>
</article>
</div>
<div class="lab-panel">
<div class="panel-box rv">
<h4>▮ This week on the bench</h4>
<p class="sub">NVMe sequential read, MB/s — four drives, one queue depth.</p>
<div class="bench-row"><span>Vantaracharge V900 · PCIe 5.0</span><div class="bar"><i style="--w:100%"></i></div><b>13,900</b></div>
<div class="bench-row"><span>Norda N700 · PCIe 4.0</span><div class="bar"><i style="--w:52.5%"></i></div><b>7,300</b></div>
<div class="bench-row"><span>Budgeta B1 · DRAM-less</span><div class="bar"><i style="--w:35.6%"></i></div><b>4,950</b></div>
<div class="bench-row ref"><span>2019 SATA SSD · reference</span><div class="bar"><i style="--w:3.9%"></i></div><b>540</b></div>
</div>
<div class="panel-box rv" style="--d:.12s">
<h4>▮ Driver compatibility matrix</h4>
<p class="sub">Q2 2025 · verified on bench-04, updated fortnightly.</p>
<table class="matrix" aria-label="Driver compatibility matrix">
<tr><th>Adapter</th><th>Linux 6.12</th><th>Win 11 24H2</th><th>macOS eGPU</th></tr>
<tr><td>Nexa 5070</td><td class="ok">✓ full</td><td class="ok">✓ full</td><td class="no">✕ none</td></tr>
<tr><td>AMD 9070 XT</td><td class="ok">✓ full</td><td class="ok">✓ full</td><td class="mid">◐ partial</td></tr>
<tr><td>Intel B580</td><td class="mid">◐ partial</td><td class="ok">✓ full</td><td class="no">✕ none</td></tr>
<tr><td>Apple M4 iGPU</td><td class="no">✕ n/a</td><td class="no">✕ n/a</td><td class="ok">✓ native</td></tr>
</table>
<p class="legend">✓ full acceleration & display out · ◐ works with quirks — see footnotes · ✕ unsupported</p>
</div>
</div>
</div>
</div>
</section>
<!-- ============ 03 · COMPARE LAB ============ -->
<section id="compare">
<div class="wrap">
<div class="sec-head rv">
<span class="sec-no">SEC.03</span>
<div>
<h2>Compare Lab</h2>
<p>Stop squinting at marketing sheets. Pick any two machines from this quarter's tested pool — every number below was measured on our bench, not copied from a spec PDF. Winners per row are flagged automatically; the verdict is computed live.</p>
</div>
<a class="sec-link" href="#reviews">Full spec sheets →</a>
</div>
<div class="lab rv" id="labBox">
<div class="lab-head">
<div class="pick">
<label for="devA">Unit A</label>
<div class="sel"><select id="devA"></select></div>
<small id="roleA"></small>
</div>
<button class="swap" id="swapBtn" title="Swap units" aria-label="Swap Unit A and Unit B">⇄</button>
<div class="pick">
<label for="devB">Unit B</label>
<div class="sel"><select id="devB"></select></div>
<small id="roleB"></small>
</div>
</div>
<div class="presets mono">Presets ▸
<button data-a="apex15" data-b="monolith16">Creator</button>
<button data-a="orbital17" data-b="apex15">Gamer</button>
<button data-a="nimbus14" data-b="corsa13">Travel</button>
<button data-a="nimbus14" data-b="apex15">Battery vs. power</button>
</div>
<div class="tbl-wrap">
<table class="cmp" aria-label="Side-by-side specification comparison">
<thead><tr><th>Metric — bench measured</th><th id="thA">Unit A</th><th id="thB">Unit B</th></tr></thead>
<tbody id="cmpBody"></tbody>
</table>
</div>
<div class="verdict-box" id="verdict" aria-live="polite"></div>
</div>
</div>
</section>
<!-- ============ 04 · FIELD MANUALS ============ -->
<section id="guides">
<div class="wrap">
<div class="guides-grid">
<div class="guides-sticky rv">
<p class="kicker">SEC.04 — Field Manuals</p>
<h2>Runbooks for real hardware</h2>
<p>Not listicles — runbooks. Every field manual is written against physical machines, tested on at least three of them, and versioned in the open. If a step breaks after an OS update, we ship a correction within 48 hours and log it in the changelog at the bottom of the page.</p>
<p>Difficulty ratings come from the number of steps where you can lose data. Read them before you start. Backups are step zero, every time.</p>
<div class="runbook-stat">
<div><b>118</b>Live guides</div>
<div><b>48h</b>Fix SLA</div>
<div><b>v3.2</b>Avg. revision</div>
</div>
<a class="btn btn-ghost" href="#guides">▶ Watch tutorial: bench setup</a>
</div>
<div class="guide-list">
<article class="guide card rv">
<div class="kb"><img src="https://picsum.photos/seed/kernel-panic-screen/520/380" alt="Screen showing kernel log output during debugging"></div>
<div class="guide-body">
<div class="guide-meta"><span class="chip amb">Advanced</span><span class="chip">25 min</span><span class="chip">9 steps</span></div>
<h3><a href="#guides">Debugging a kernel panic without losing your morning</a></h3>
<p>Read the oops like a stack trace: capture it over netconsole before the reboot wipes it, bisect the offending module with a known-good kernel, and reproduce on a clean image before you blame the hardware. Includes our exact netconsole pairing config.</p>
<a class="guide-cta" href="#guides">▶ Watch tutorial · 12:04 →</a>
</div>
</article>
<article class="guide card rv" style="--d:.08s">
<div class="kb"><img src="https://picsum.photos/seed/pc-case-airflow/520/380" alt="PC case interior with organized cables and fans"></div>
<div class="guide-body">
<div class="guide-meta"><span class="chip">Intermediate</span><span class="chip">40 min</span><span class="chip">12 steps</span></div>
<h3><a href="#guides">Case airflow masterclass: positive pressure on a budget</a></h3>
<p>Three intake fans, one exhaust, and a smoke-pencil test will beat any RGB fan kit. We chart pressure differentials across five cases and show exactly where the dust actually settles — spoiler: it's not where the manual says.</p>
<a class="guide-cta" href="#guides">▶ Watch tutorial · 18:31 →</a>
</div>
</article>
<article class="guide card rv" style="--d:.16s">
<div class="kb"><img src="https://picsum.photos/seed/homelab-server-rack/520/380" alt="Small home server with network cables"></div>
<div class="guide-body">
<div class="guide-meta"><span class="chip acc">Beginner</span><span class="chip">60 min</span><span class="chip">14 steps</span></div>
<h3><a href="#guides">Homelab 101: a $120 self-hosted starter stack</a></h3>
<p>One used mini PC, one Docker compose file, and a Tailscale mesh later you have DNS filtering, backups, and a media host — with a nightly snapshot policy that will actually survive a failed drive. Copy-paste configs included, tested on Debian 12 and Ubuntu 24.04.</p>
<a class="guide-cta" href="#guides">▶ Watch tutorial · 22:10 →</a>
</div>
</article>
<article class="guide card rv" style="--d:.24s">
<div class="kb"><img src="https://picsum.photos/seed/wifi-mesh-home/520/380" alt="Mesh Wi-Fi node placed on a shelf"></div>
<div class="guide-body">
<div class="guide-meta"><span class="chip">Intermediate</span><span class="chip">30 min</span><span class="chip">8 steps</span></div>
<h3><a href="#guides">Fix Wi-Fi dead zones with a proper mesh handoff</a></h3>
<p>Dead zones are usually sticky clients, not weak signal. Enable 802.11r/k/v, set RSS kick thresholds deliberately, and verify with a walking speed test. Includes the exact roaming report we capture to prove the handoff happened.</p>
<a class="guide-cta" href="#guides">▶ Watch tutorial · 14:52 →</a>
</div>
</article>
</div>
</div>
</div>
</section>
<!-- ============ 05 · OPEN STACK ============ -->
<section id="stack">
<div class="wrap">
<div class="sec-head rv">
<span class="sec-no">SEC.05</span>
<div>
<h2>The Open Stack</h2>
<p>The software that runs our own machines — audited, patched where needed, mirrored for speed. All of it open source, all of it earning its keep on the bench. We file upstream issues when we find them, and 96 of our fixes have been merged to date.</p>
</div>
<a class="sec-link" href="#stack">Browse the stack →</a>
</div>
<div class="stack-grid">
<article class="tool card rv"><div class="tool-top"><span class="tool-glyph">⌬</span><span class="chip">MIT</span></div><h3>Hexdiff</h3><p>Visual diffing for binary firmware images. Highlighted entropy maps make padded regions obvious at a glance — we use it in every firmware-change review.</p><div class="tool-foot"><span>★ 12.4k</span><b>Editor's pick</b></div></article>
<article class="tool card rv" style="--d:.07s"><div class="tool-top"><span class="tool-glyph">◉</span><span class="chip">AGPL-3.0</span></div><h3>Pulseboard</h3><p>Self-hosted uptime and latency dashboard with a single binary and zero build step. Powers our status page and three readers' homelabs per support ticket we get.</p><div class="tool-foot"><span>★ 21.0k</span><b>Most installed</b></div></article>
<article class="tool card rv" style="--d:.14s"><div class="tool-top"><span class="tool-glyph">▤</span><span class="chip">MIT</span></div><h3>Ferrous Notes</h3><p>Local-first markdown notes with end-to-end encrypted sync. No account required, no lock-in: your vault is a folder of plain text files, full stop.</p><div class="tool-foot"><span>★ 8.7k</span><span>v2.3 stable</span></div></article>
<article class="tool card rv" style="--d:.21s"><div class="tool-top"><span class="tool-glyph">⊞</span><span class="chip">Apache-2.0</span></div><h3>Gridsnap</h3><p>Screenshot regression testing for CI. Point it at a URL list, get pixel-diff reports on every deploy. Caught our own nav regression in March before readers did.</p><div class="tool-foot"><span>★ 5.2k</span><span>v1.9 stable</span></div></article>
<article class="tool card rv" style="--d:.28s"><div class="tool-top"><span class="tool-glyph">⚡︎</span><span class="chip">GPL-3.0</span></div><h3>Voltra</h3><p>Battery telemetry CLI that logs charge cycles, wear level, and discharge curves to CSV. The source of every battery claim in our laptop reviews.</p><div class="tool-foot"><span>★ 3.1k</span><span>Used on bench</span></div></article>
<article class="tool card rv" style="--d:.35s"><div class="tool-top"><span class="tool-glyph">◫</span><span class="chip">BSD-2</span></div><h3>Patchwork</h3><p>Tracks distro release schedules, EOL dates, and kernel versions in one terminal table. The table in our compatibility matrix is generated from it.</p><div class="tool-foot"><span>★ 2.8k</span><span>v0.9 beta</span></div></article>
</div>
<div class="stack-more rv"><a class="btn btn-dim" href="#stack">Submit your tool for review</a></div>
</div>
</section>
<!-- ============ 06 · SHOP ============ -->
<section id="shop">
<div class="wrap">
<div class="sec-head rv">
<span class="sec-no">SEC.06</span>
<div>
<h2>The Shop</h2>
<p>A short shelf, tested on camera. If a product stops earning its place in the kit, it's gone by next quarter. Everything ships from Portland within 48 hours, and returns are honored for 60 days — no restocking games.</p>
</div>
<a class="sec-link" href="#shop">Full catalogue →</a>
</div>
<div class="shop-grid">
<article class="prod card rv">
<figure><img src="https://picsum.photos/seed/usbc-cable-coil/520/400" alt="Braided USB-C cable coiled on a bench"></figure>
<div class="prod-b"><span class="chip acc">Bench-tested</span><h3>The Current Cable</h3><p>2 m braided USB-C, full 40 Gbps, EPR 240W-rated. Survived our 10,000-bend rig.</p>
<div class="prod-f"><strong>$19</strong><button class="add-cart" data-name="The Current Cable">Add to cart</button></div></div>
</article>
<article class="prod card rv" style="--d:.08s">
<figure><img src="https://picsum.photos/seed/nvme-enclosure-alu/520/400" alt="Aluminum NVMe SSD enclosure"></figure>
<div class="prod-b"><span class="chip acc">Bench-tested</span><h3>Pocket NVMe Enclosure</h3><p>USB4, tool-free, aluminum shell that doubles as the heatsink. Hit 3.1 GB/s sustained.</p>
<div class="prod-f"><strong>$49</strong><button class="add-cart" data-name="Pocket NVMe Enclosure">Add to cart</button></div></div>
</article>
<article class="prod card rv" style="--d:.16s">
<figure><img src="https://picsum.photos/seed/black-tshirt-flat/520/400" alt="Black t-shirt laid flat"></figure>
<div class="prod-b"><span class="chip">Merch</span><h3>Bench Tee 04</h3><p>Heavyweight 220 gsm cotton, single run. The only merch we print, once a year.</p>
<div class="prod-f"><strong>$24</strong><button class="add-cart" data-name="Bench Tee 04">Add to cart</button></div></div>
</article>
<article class="prod card rv" style="--d:.24s">
<figure><img src="https://picsum.photos/seed/digital-pass-card/520/400" alt="Membership pass design on dark background"></figure>
<div class="prod-b"><span class="chip amb">Popular</span><h3>Annual Digital Pass</h3><p>Ad-free reading, early lab data drops, and the quarterly print edition as PDF + epub.</p>
<div class="prod-f"><strong>$39</strong><button class="add-cart" data-name="Annual Digital Pass">Add to cart</button></div></div>
</article>
</div>
</div>
</section>
<!-- ============ 07 · SIGNAL REPORT ============ -->
<section id="signal">
<div class="wrap">
<div class="sec-head rv">
<span class="sec-no">SEC.07</span>
<div>
<h2>Signal Report</h2>
<p>The lab report goes out; the field reports come back. These are the people running our recommendations in server rooms, game builds, and lecture halls — lightly edited, always verified against a real order or ticket thread.</p>
</div>
<a class="sec-link" href="#signal">Submit a field report →</a>
</div>
<div class="quotes">
<article class="quote card rv" style="--r:-1.4deg">
<q>Your compatibility matrix saved my team a full week. We were about to order forty Intel GPUs for a Linux render farm — one look at the Q1 table and we pivoted before the PO went out. That one page pays for the subscription ten times over.</q>
<div class="quote-who"><img src="https://i.pravatar.cc/96?u=maya-okafor-sre" alt="Portrait of Maya Okafor"><span><b>Maya Okafor</b><span>Site Reliability Engineer · fintech</span></span></div>
</article>
<article class="quote card rv" style="--d:.1s;--r:1.2deg">
<q>I cross-checked your Time Spy and frame-pacing numbers against my own rig before I trusted them. They matched within two percent, which no other publication has ever managed. Your raw CSV policy is the whole reason I keep coming back.</q>
<div class="quote-who"><img src="https://i.pravatar.cc/96?u=dev-r-indie" alt="Portrait of Dev R."><span><b>Dev R.</b><span>Indie game developer</span></span></div>
</article>
<article class="quote card rv" style="--d:.2s;--r:-0.8deg">
<q>The mesh handoff guide is now linked directly in our IT helpdesk responses. Ticket volume on "Wi-Fi drops when I walk to the meeting rooms" fell by about half within a month of us applying the 802.11r settings exactly as written.</q>
<div class="quote-who"><img src="https://i.pravatar.cc/96?u=priya-s-itdir" alt="Portrait of Priya S."><span><b>Priya S.</b><span>IT Director · 400-seat campus</span></span></div>
</article>
<article class="quote card rv" style="--d:.3s;--r:1.6deg">
<q>Bought the Corsa Book 13 after reading the budget-pick comparison — the verdict's "80% of the experience for a third of the price" is genuinely accurate. The kernel panic runbook then got me through my OS course assignments. Genuinely useful site.</q>
<div class="quote-who"><img src="https://i.pravatar.cc/96?u=tomas-l-cs" alt="Portrait of Tomás L."><span><b>Tomás L.</b><span>Computer science student</span></span></div>
</article>
</div>
</div>
</section>
<!-- ============ 08 · SUPPORT DESK ============ -->
<section id="support">
<div class="wrap">
<div class="sec-head rv">
<span class="sec-no">SEC.08</span>
<div>
<h2>Support Desk</h2>
<p>Questions about our methods, your order, or a guide that misbehaved in the field — all answered by the same engineers who write the reviews. No ticket-bot loops, no offshore scripts.</p>
</div>
<a class="sec-link" href="#support">Open a ticket →</a>
</div>
<div class="support-grid">
<div class="rv">
<div class="faq-item"><button class="faq-q" aria-expanded="false">Do you accept review samples from manufacturers?<span class="faq-ic">+</span></button><div class="faq-a"><div class="faq-a-in"><p>Wherever possible we buy at retail with our own budget. When a launch window makes that impossible, we accept loaner units — and every such review carries a visible "loaner" flag in the byline. Samples are returned or destroyed in teardown; scores are never negotiated, and PR contacts learn this exactly once.</p></div></div></div>
<div class="faq-item"><button class="faq-q" aria-expanded="false">How are review scores calculated?<span class="faq-ic">+</span></button><div class="faq-a"><div class="faq-a-in"><p>Scores come from a weighted rubric applied to logged benchmark data: 45% measured performance, 25% thermals and acoustics, 20% build and serviceability, 10% software experience. The rubric is published, the raw CSVs are downloadable from every review page, and a driver or firmware update that shifts results by more than 5% triggers a mandatory re-score.</p></div></div></div>
<div class="faq-item"><button class="faq-q" aria-expanded="false">Do you earn money from affiliate links?<span class="faq-ic">+</span></button><div class="faq-a"><div class="faq-a-in"><p>Yes, and it's disclosed on every page that contains such links. Affiliate revenue has never influenced a ranking — our scoring pipeline is data-driven and published precisely so that claim is verifiable. Shop revenue and Digital Passes are what actually fund retail purchases of review units.</p></div></div></div>
<div class="faq-item"><button class="faq-q" aria-expanded="false">How do I pitch a story or send a tip?<span class="faq-ic">+</span></button><div class="faq-a"><div class="faq-a-in"><p>Email tips@kernelcurrent.dev — our PGP key is on the contact page for anything sensitive. We respond within two business days and never reveal sources, full stop. If your tip involves firmware or drivers, include reproduction steps; we bench-verify before we publish.</p></div></div></div>
<div class="faq-item"><button class="faq-q" aria-expanded="false">How do corrections work?<span class="faq-ic">+</span></button><div class="faq-a"><div class="faq-a-in"><p>Every article carries a dated changelog at the bottom. Errors are corrected within 48 hours of confirmation, the original wording is preserved with strikethrough, and the full correction history lives in a public repository. Quiet edits don't happen here.</p></div></div></div>
</div>
<div class="help-card rv" style="--d:.12s">
<p class="kicker">// Staffed by engineers</p>
<h3>Talk to a human</h3>
<p>The support desk is run by the same team that writes the guides and logs the benchmarks. Median first reply last month: <b style="color:var(--acc)">3h 12m</b>, Monday to Saturday, 08:00–20:00 PT.</p>
<a class="btn btn-solid" href="mailto:desk@kernelcurrent.dev">Contact Support</a>
<a class="btn btn-ghost" href="#support">Get Support</a>
<p class="status-line"><i>●</i> All systems nominal — status.kernelcurrent.dev</p>
</div>
</div>
</div>
</section>
</main>
<!-- ============ FOOTER ============ -->
<footer class="site">
<div class="wrap">
<div class="foot-grid">
<div class="foot-about">
<a class="brand" href="#top">
<img src="https://placehold.co/96x96/0d1218/b6f04a?text=K%2FC&font=oswald" alt="Kernel Current logo" width="42" height="42">
<span><span class="brand-name">KERNEL<span>/</span>CURRENT</span><span class="brand-tag">The signal in the silicon</span></span>
</a>
<p>An independent technology lab and newsroom in Portland, Oregon. Since 2019: retail-bought reviews, open benchmark data, and guides that survive contact with real hardware.</p>
<div class="socials">
<a href="#" aria-label="Kernel Current on X"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4l16 16M20 4L4 20"/></svg></a>
<a href="#" aria-label="Kernel Current code on GitHub"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="6" cy="6" r="2.5"/><circle cx="6" cy="18" r="2.5"/><circle cx="18" cy="9" r="2.5"/><path d="M6 8.5v7M8.5 6.5c5 0 7 1 9.5 2.5"/></svg></a>
<a href="#" aria-label="Kernel Current videos"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="6" width="18" height="12" rx="3"/><path d="M10 9.5l5 2.5-5 2.5z" fill="currentColor" stroke="none"/></svg></a>
<a href="#" aria-label="RSS feed"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 19a1 1 0 1 0 0-.01M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16"/></svg></a>
</div>
</div>
<div>
<h5>Sections</h5>
<ul class="foot-list">
<li><a href="#news">Dispatches / News</a></li>
<li><a href="#reviews">The Test Bench</a></li>
<li><a href="#compare">Compare Lab</a></li>
<li><a href="#guides">Field Manuals</a></li>
<li><a href="#shop">The Shop</a></li>
<li><a href="#support">Support Desk</a></li>
</ul>
</div>
<div>
<h5>Resources</h5>
<ul class="foot-list">
<li><a href="#reviews">Benchmark archive (CSV)</a></li>
<li><a href="#reviews">Compatibility matrix</a></li>
<li><a href="#stack">Open-source policy</a></li>
<li><a href="#support">Corrections log</a></li>
<li><a href="#top">Press kit</a></li>
</ul>
</div>
<div class="foot-contact">
<h5>Contact & the Morning Packet</h5>
<p>Unit 7 · 42 Ferrite Lane<br>Portland, OR 97209 · USA<br>+1 (503) 555-0184<br>desk@kernelcurrent.dev</p>
<p style="color:var(--dim)">One email, 07:00 PT, weekdays. Signal only.</p>
<form class="news-form" id="newsForm">
<input type="email" placeholder="you@example.com" aria-label="Email address" required>
<button type="submit">Subscribe</button>
</form>
<p class="news-ok" id="newsOk">✓ Subscribed — first packet ships at 07:00.</p>
</div>
</div>
</div>
<div class="foot-word" aria-hidden="true">KERNELCURRENT</div>
<div class="legal">
<span>© <span id="yr">2025</span> Kernel Current Media Ltd. — printed on recycled electrons.</span>
<span class="links"><a href="#">Privacy</a><a href="#">Terms</a><a href="#">Cookies</a><a href="#">Disclosures</a></span>
</div>
</footer>
<script>
(function(){
'use strict';
var REDUCED = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
/* ---------- header shadow + mobile nav ---------- */
var header = document.getElementById('siteHeader');
window.addEventListener('scroll', function(){ header.classList.toggle('scrolled', window.scrollY > 8); }, {passive:true});
var burger = document.getElementById('burger');
burger.addEventListener('click', function(){
var open = document.body.classList.toggle('nav-open');
burger.setAttribute('aria-expanded', open);
});
document.querySelectorAll('#primaryNav a').forEach(function(a){
a.addEventListener('click', function(){ document.body.classList.remove('nav-open'); burger.setAttribute('aria-expanded','false'); });
});
/* ---------- sys clock ---------- */
var clock = document.getElementById('sysclock');
function tickClock(){ var d=new Date(); clock.textContent = d.toLocaleTimeString('en-GB'); }
tickClock(); setInterval(tickClock, 1000);
/* ---------- scramble decode ---------- */
var GLYPHS = '01<>/{}[]#*+=~%$&';
function scramble(el){
var text = el.getAttribute('data-text');
if (REDUCED){ el.textContent = text; return; }
var len = text.length, start = performance.now(), dur = 850;
(function frame(now){
var p = Math.min(1, (now - start) / dur);
var reveal = Math.floor(p * len), out = '';
for (var i = 0; i < len; i++){
out += i < reveal ? text[i] : (text[i] === ' ' ? ' ' : GLYPHS[(Math.random()*GLYPHS.length)|0]);
}
el.textContent = out;
if (p < 1) requestAnimationFrame(frame); else el.textContent = text;
})(start);
}
document.querySelectorAll('.decode').forEach(function(el, i){
setTimeout(function(){ scramble(el); }, 150 + i * 320);
});
/* ---------- boot log typing ---------- */
var bootLines = [
'[ 0.000000] KC-BIOS 12.4 · POST .......... ok',
'[ 0.000142] bench0: sensors calibrated',
'[ 0.811305] net: fetching driver_stack.tar.zst',
'[ 1.046622] sha256 verified · unpacking',
'[ 1.310904] kc-bench ready — 247 reviews indexed'
];
var bootEl = document.getElementById('bootlog');
if (REDUCED){ bootEl.textContent = bootLines.join('\n'); }
else {
var li = 0, ci = 0;
(function type(){
if (li >= bootLines.length) return;
if (ci <= bootLines[li].length){
bootEl.textContent = bootLines.slice(0, li).join('\n') + (li ? '\n' : '') + bootLines[li].slice(0, ci);
ci++; setTimeout(type, 6);
} else { li++; ci = 0; setTimeout(type, 140); }
})();
}
/* ---------- telemetry ---------- */
var upBase = 126*86400 + 7*3600 + 42*60, upStart = Date.now(), readers = 4182;
var tGpu=document.getElementById('tGpu'), tLoad=document.getElementById('tLoad'),
tRead=document.getElementById('tRead'), tUp=document.getElementById('tUp');
if (!REDUCED){
setInterval(function(){
var s = upBase + Math.floor((Date.now()-upStart)/1000);
var d = Math.floor(s/86400), h = Math.floor(s%86400/3600), m = Math.floor(s%3600/60);
tUp.textContent = d+'d '+('0'+h).slice(-2)+':'+('0'+m).slice(-2);
tGpu.textContent = (59 + Math.sin(Date.now()/9000)*2.5 + Math.random()*1.4).toFixed(1)+'°C';
tLoad.textContent = Math.round(34 + Math.sin(Date.now()/6000)*9 + Math.random()*4)+'%';
readers += Math.round((Math.random()-0.45)*7);
tRead.textContent = readers.toLocaleString();
}, 2000);
}
/* ---------- reveal + counters + bars ---------- */
function runCount(el){
var target = +el.getAttribute('data-count');
if (REDUCED){ el.textContent = target.toLocaleString(); return; }
var st = performance.now(), dur = 1500;
(function f(n){
var p = Math.min(1,(n-st)/dur), e = 1 - Math.pow(1-p,3);
el.textContent = Math.round(target*e).toLocaleString();
if (p < 1) requestAnimationFrame(f);
})(st);
}
var io = new IntersectionObserver(function(entries){
entries.forEach(function(en){
if (!en.isIntersecting) return;
en.target.classList.add('in');
en.target.querySelectorAll('[data-count]').forEach(runCount);
io.unobserve(en.target);
});
},{threshold:.18});
document.querySelectorAll('.rv').forEach(function(el){ io.observe(el); });
if (REDUCED) document.querySelectorAll('.rv').forEach(function(el){
el.classList.add('in'); el.querySelectorAll('[data-count]').forEach(runCount);
});
/* ---------- compare lab ---------- */
var DEVICES = {
apex15:{name:'Vantar Apex 15', role:'Creator flagship', price:2149, cpu:28450, gpu:13200, ram:32, storage:7100, hz:120, panel:'2.8K OLED, 120Hz', weight:1.86, battery:9.2, ports:5, os:'Win 11 · Linux certified', strength:'the balanced pick for editing and rendering workloads'},
nimbus14:{name:'Halcyon Nimbus 14', role:'Arm ultraportable', price:1399, cpu:14900, gpu:3900, ram:32, storage:5900, hz:90, panel:'2.8K IPS, 90Hz', weight:0.99, battery:18.7, ports:3, os:'Windows 11 on Arm', strength:'the endurance king — best battery-per-watt on the bench'},
orbital17:{name:'Orbital S17-X', role:'Desktop replacement', price:2899, cpu:31200, gpu:19800, ram:64, storage:12400, hz:240, panel:'QHD+ Mini-LED, 240Hz', weight:3.10, battery:3.8, ports:7, os:'Win 11 · Ubuntu OEM', strength:'raw frames per second; nothing else here comes close in GPU'},
corsa13:{name:'Corsa Book 13', role:'Budget everyday', price:849, cpu:9800, gpu:1600, ram:16, storage:4900, hz:60, panel:'FHD+ IPS, 60Hz', weight:1.29, battery:13.5, ports:4, os:'Win 11 · ChromeOS Flex tested', strength:'the value call — 80% of the experience for a third of the price'},
monolith16:{name:'Monolith 16 Studio', role:'Mobile workstation', price:3450, cpu:34800, gpu:16400, ram:96, storage:14100, hz:120, panel:'4K Mini-LED, 120Hz', weight:2.40, battery:6.5, ports:6, os:'Win 11 · Fedora 41 verified', strength:'the no-compromise workstation, if you can carry it'}
};
var ROWS = [
{k:'price', label:'Street price', better:'low', fmt:function(v){return '$'+v.toLocaleString();}},
{k:'cpu', label:'CPU — Cinebench 2024 multi', better:'high', fmt:function(v){return v.toLocaleString();}},
{k:'gpu', label:'GPU — 3DMark Time Spy', better:'high', fmt:function(v){return v.toLocaleString();}},
{k:'ram', label:'Memory', better:'high', fmt:function(v){return v+' GB DDR5';}},
{k:'storage',label:'Storage — seq. read', better:'high', fmt:function(v){return v.toLocaleString()+' MB/s';}},
{k:'hz', label:'Display refresh', better:'high', fmt:function(v){return v+' Hz';}},
{k:'weight', label:'Weight', better:'low', fmt:function(v){return v.toFixed(2)+' kg';}},
{k:'battery',label:'Battery — measured runtime', better:'high', fmt:function(v){return v.toFixed(1)+' h';}},
{k:'ports', label:'Full-size ports', better:'high', fmt:function(v){return v;}}
];
var selA=document.getElementById('devA'), selB=document.getElementById('devB'),
cmpBody=document.getElementById('cmpBody'), verdictEl=document.getElementById('verdict'),
labBox=document.getElementById('labBox');
Object.keys(DEVICES).forEach(function(k){
[selA, selB].forEach(function(sel){
var o=document.createElement('option'); o.value=k; o.textContent=DEVICES[k].name; sel.appendChild(o);
});
});
selA.value='apex15'; selB.value='nimbus14';
function renderCompare(){
var a=DEVICES[selA.value], b=DEVICES[selB.value];
document.getElementById('thA').textContent = a.name;
document.getElementById('thB').textContent = b.name;
document.getElementById('roleA').textContent = '» ' + a.role;
document.getElementById('roleB').textContent = '» ' + b.role;
var html='', winsA=0, winsB=0, bWins=[];
ROWS.forEach(function(r){
var va=a[r.k], vb=b[r.k], ca='', cb='';
if (va !== vb){
var aBetter = r.better==='high' ? va>vb : va<vb;
if (aBetter){ ca=' class="win"'; winsA++; } else { cb=' class="win"'; winsB++; bWins.push(r.label.split(' — ')[0].toLowerCase()); }
}
html += '<tr><td>'+r.label+'</td><td'+ca+'>'+r.fmt(va)+'</td><td'+cb+'>'+r.fmt(vb)+'</td></tr>';
});
html += '<tr><td>Panel</td><td class="info">'+a.panel+'</td><td class="info">'+b.panel+'</td></tr>';
html += '<tr><td>OS coverage</td><td class="info">'+a.os+'</td><td class="info">'+b.os+'</td></tr>';
cmpBody.innerHTML = html;
var v;
if (selA.value === selB.value){
v = '<b>Verdict ▸ Perfect tie — same unit loaded twice.</b><p>Pick two different machines, or load a preset below the selectors to see a real head-to-head.</p>';
} else if (winsA === winsB){
v = '<b>Verdict ▸ Dead heat, '+winsA+'–'+winsB+'.</b><p><strong>'+a.name+'</strong> and <strong>'+b.name+'</strong> split the measurable rows evenly — '+a.strength+', while '+b.strength+'. Let your budget decide.</p>';
} else {
var lead = winsA>winsB ? a : b, trail = winsA>winsB ? b : a,
hi = Math.max(winsA,winsB), lo = Math.min(winsA,winsB),
note = (winsA>winsB) ? (trail.strength+', so pick it if ' + bWins.slice(0,2).join(' and ') + ' matter more.') : ('Meanwhile <strong>'+a.name+'</strong> is '+a.strength+'.');
v = '<b>Verdict ▸ '+lead.name+' leads '+hi+'–'+lo+'.</b><p>Across our nine bench-measured rows, <strong>'+lead.name+'</strong> takes the win — it is '+lead.strength+'. '+note+'</p>';
}
verdictEl.innerHTML = v;
if (!REDUCED){ labBox.classList.remove('flash'); void labBox.offsetWidth; labBox.classList.add('flash'); }
}
selA.addEventListener('change', renderCompare);
selB.addEventListener('change', renderCompare);
document.getElementById('swapBtn').addEventListener('click', function(){
var t = selA.value; selA.value = selB.value; selB.value = t;
this.classList.toggle('spun'); renderCompare();
});
document.querySelectorAll('.presets button').forEach(function(btn){
btn.addEventListener('click', function(){
selA.value = btn.getAttribute('data-a'); selB.value = btn.getAttribute('data-b'); renderCompare();
});
});
renderCompare();
/* ---------- cart ---------- */
var cartN = 0, cartBadge = document.getElementById('cartCount');
document.querySelectorAll('.add-cart').forEach(function(btn){
btn.addEventListener('click', function(){
cartN++; cartBadge.textContent = cartN;
cartBadge.classList.remove('bump'); void cartBadge.offsetWidth; cartBadge.classList.add('bump');
var orig = btn.textContent; btn.textContent = 'Added ✓'; btn.classList.add('added');
setTimeout(function(){ btn.textContent = orig; btn.classList.remove('added'); }, 1300);
});
});
/* ---------- FAQ accordion ---------- */
document.querySelectorAll('.faq-q').forEach(function(q){
q.addEventListener('click', function(){
var item = q.parentElement, open = item.classList.contains('open');
document.querySelectorAll('.faq-item.open').forEach(function(o){
o.classList.remove('open'); o.querySelector('.faq-q').setAttribute('aria-expanded','false');
});
if (!open){ item.classList.add('open'); q.setAttribute('aria-expanded','true'); }
});
});
/* ---------- newsletter ---------- */
document.getElementById('newsForm').addEventListener('submit', function(e){
e.preventDefault();
this.style.display = 'none';
document.getElementById('newsOk').style.display = 'block';
});
/* ---------- year ---------- */
document.getElementById('yr').textContent = new Date().getFullYear();
})();
</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-12T10:01:39.674Z",
"url": "https://benchmark.aimac.invalid/a8767c000e83b9f7f967a27c6aaea00209d0c96fa1463ee4ff2a7e8da1d068fd.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-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": []
},
{
"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-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": []
},
{
"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-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": []
},
{
"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": "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": []
},
{
"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": "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": []
},
{
"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": "<div class=\"ticker\" aria-label=\"Latest headlines\">",
"target": [
".ticker"
]
}
]
},
{
"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": "<div class=\"ticker\" aria-label=\"Latest headlines\">",
"target": [
".ticker"
]
}
]
},
{
"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-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": [
{
"any": [],
"all": [
{
"id": "focusable-modal-open",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements while a modal is open"
},
{
"id": "focusable-disabled",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
},
{
"id": "focusable-not-tabbable",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
}
],
"none": [],
"impact": null,
"html": "<div class=\"noise\" aria-hidden=\"true\"></div>",
"target": [
".noise"
]
}
]
},
{
"id": "aria-prohibited-attr",
"impact": "serious",
"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 class=\"brand\" href=\"#top\" aria-label=\"Kernel Current home\">",
"target": [
"a[aria-label=\"Kernel Current home\"]"
]
}
]
},
{
"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": "<div class=\"ticker\" aria-label=\"Latest headlines\">",
"target": [
".ticker"
]
}
]
},
{
"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": "<div class=\"ticker\" aria-label=\"Latest headlines\">",
"target": [
".ticker"
]
}
]
},
{
"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": "<div class=\"term rv in\" style=\"--d:.15s\">",
"target": [
".term"
]
}
]
},
{
"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"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute exists and is not empty"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button class=\"cart-btn\" id=\"cartBtn\" aria-label=\"Cart, item count shown on badge\">",
"target": [
"#cartBtn"
]
}
]
},
{
"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 class=\"mast-h1\">",
"target": [
"h1"
]
},
{
"html": "<h2>Dispatches</h2>",
"target": [
"#news > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3><a href=\"#news\">Inside the new open-source GPU driver stack: 14 months, 41 contributors, and one very stubborn DMA bug</a></h3>",
"target": [
".feature-body > h3"
]
},
{
"html": "<h3><a href=\"#news\">Linux 6.12 LTS lands: scheduler rewrite, saner hybrid-core handling, and what it means for your desktop</a></h3>",
"target": [
".news-item:nth-child(2) > div:nth-child(2) > h3"
]
},
{
"html": "<h3><a href=\"#news\">Mesh handoff, explained: why your Wi-Fi roams badly and how 802.11r actually fixes it</a></h3>",
"target": [
".news-item:nth-child(3) > div:nth-child(2) > h3"
]
},
{
"html": "<h3><a href=\"#news\">Handhelds grow up: OLED panels hit the $300 tier, and the thermal designs finally keep pace</a></h3>",
"target": [
".news-item:nth-child(4) > div:nth-child(2) > h3"
]
},
{
"html": "<h3><a href=\"#news\">EU charger rules reach laptops \u2014 what USB-C PD 3.2 compliance actually requires from OEMs</a></h3>",
"target": [
".news-item:nth-child(5) > div:nth-child(2) > h3"
]
},
{
"html": "<h4>Trending now</h4>",
"target": [
".side-box.rv:nth-child(1) > h4"
]
},
{
"html": "<h4>Hot deals</h4>",
"target": [
".side-box.rv:nth-child(2) > h4"
]
},
{
"html": "<h4>Latest tutorials</h4>",
"target": [
".side-box.rv:nth-child(3) > h4"
]
},
{
"html": "<h2>The Test Bench</h2>",
"target": [
"#reviews > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3><a href=\"#reviews\">Nexa RTX-class 5070 review: efficiency finally has a face</a></h3>",
"target": [
".review-card.card:nth-child(1) > .review-body > h3"
]
},
{
"html": "<h3><a href=\"#reviews\">Monolith Mini Pro: a homelab in your palm</a></h3>",
"target": [
".review-card.card:nth-child(2) > .review-body > h3"
]
},
{
"html": "<h3><a href=\"#reviews\">A pixel-free week with the LedgerTab Air e-ink tablet</a></h3>",
"target": [
".review-card.card:nth-child(3) > .review-body > h3"
]
},
{
"html": "<h4>\u25ae This week on the bench</h4>",
"target": [
".panel-box.rv:nth-child(1) > h4"
]
},
{
"html": "<h4>\u25ae Driver compatibility matrix</h4>",
"target": [
".panel-box.rv:nth-child(2) > h4"
]
},
{
"html": "<h2>Compare Lab</h2>",
"target": [
"#compare > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h2>Runbooks for real hardware</h2>",
"target": [
".guides-sticky > h2"
]
},
{
"html": "<h3><a href=\"#guides\">Debugging a kernel panic without losing your morning</a></h3>",
"target": [
".guide.card:nth-child(1) > .guide-body > h3"
]
},
{
"html": "<h3><a href=\"#guides\">Case airflow masterclass: positive pressure on a budget</a></h3>",
"target": [
".guide.card:nth-child(2) > .guide-body > h3"
]
},
{
"html": "<h3><a href=\"#guides\">Homelab 101: a $120 self-hosted starter stack</a></h3>",
"target": [
".guide.card:nth-child(3) > .guide-body > h3"
]
},
{
"html": "<h3><a href=\"#guides\">Fix Wi-Fi dead zones with a proper mesh handoff</a></h3>",
"target": [
".guide.card:nth-child(4) > .guide-body > h3"
]
},
{
"html": "<h2>The Open Stack</h2>",
"target": [
"#stack > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3>Hexdiff</h3>",
"target": [
".tool.card:nth-child(1) > h3"
]
},
{
"html": "<h3>Pulseboard</h3>",
"target": [
".tool.card:nth-child(2) > h3"
]
},
{
"html": "<h3>Ferrous Notes</h3>",
"target": [
".tool.card:nth-child(3) > h3"
]
},
{
"html": "<h3>Gridsnap</h3>",
"target": [
".tool.card:nth-child(4) > h3"
]
},
{
"html": "<h3>Voltra</h3>",
"target": [
".tool.card:nth-child(5) > h3"
]
},
{
"html": "<h3>Patchwork</h3>",
"target": [
".tool.card:nth-child(6) > h3"
]
},
{
"html": "<h2>The Shop</h2>",
"target": [
"#shop > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3>The Current Cable</h3>",
"target": [
".prod.card:nth-child(1) > .prod-b > h3"
]
},
{
"html": "<h3>Pocket NVMe Enclosure</h3>",
"target": [
".prod.card:nth-child(2) > .prod-b > h3"
]
},
{
"html": "<h3>Bench Tee 04</h3>",
"target": [
".prod.card:nth-child(3) > .prod-b > h3"
]
},
{
"html": "<h3>Annual Digital Pass</h3>",
"target": [
".prod.card:nth-child(4) > .prod-b > h3"
]
},
{
"html": "<h2>Signal Report</h2>",
"target": [
"#signal > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h2>Support Desk</h2>",
"target": [
"#support > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3>Talk to a human</h3>",
"target": [
".help-card > h3"
]
},
{
"html": "<h5>Sections</h5>",
"target": [
"div:nth-child(2) > h5"
]
},
{
"html": "<h5>Resources</h5>",
"target": [
"div:nth-child(3) > h5"
]
},
{
"html": "<h5>Contact & the Morning Packet</h5>",
"target": [
".foot-contact > h5"
]
}
],
"impact": "serious",
"message": "Page has a heading"
},
{
"id": "landmark",
"data": null,
"relatedNodes": [
{
"html": "<main id=\"main\">",
"target": [
"#main"
]
}
],
"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": "#dbe7f1",
"bgColor": "#07090c",
"contrastRatio": 15.86,
"fontSize": "13.4pt (17.92px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 15.86"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<span class=\"brand-name\">KERNEL<span>/</span>CURRENT</span>",
"target": [
"a[aria-label=\"Kernel Current home\"] > span > .brand-name"
]
}
]
},
{
"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": "primaryNav",
"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=\"main\" id=\"primaryNav\" aria-label=\"Primary\">\n <a href=\"#news\">News</a>\n <a href=\"#reviews\">Reviews</a>\n <a href=\"#compare\" class=\"hot\">Compare</a>\n <a href=\"#guides\">Guides</a>\n <a href=\"#shop\">Shop</a>\n <a href=\"#support\">Support</a>\n </nav>",
"target": [
"#primaryNav"
]
}
]
},
{
"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=\"devA\">Unit A</label>",
"target": [
"label[for=\"devA\"]"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<select id=\"devA\"><option value=\"apex15\">Vantar Apex 15</option><option value=\"nimbus14\">Halcyon Nimbus 14</option><option value=\"orbital17\">Orbital S17-X</option><option value=\"corsa13\">Corsa Book 13</option><option value=\"monolith16\">Monolith 16 Studio</option></select>",
"target": [
"#devA"
]
}
]
},
{
"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/0d1218/b6f04a?text=K%2FC&font=oswald\" alt=\"Kernel Current logo\" width=\"42\" height=\"42\">",
"target": [
"a[aria-label=\"Kernel Current home\"] > img[alt=\"Kernel Current logo\"][width=\"42\"][height=\"42\"]"
]
}
]
},
{
"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\" placeholder=\"you@example.com\" aria-label=\"Email address\" required=\"\">",
"target": [
"input"
]
}
]
},
{
"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"
}
],
"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 class=\"skip\" href=\"#main\">Skip to content</a>",
"target": [
".skip"
]
}
]
},
{
"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": "<ol class=\"trend\">",
"target": [
"ol"
]
}
]
},
{
"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=\"#compare\">Compare Lab: five laptops, one spreadsheet</a></li>",
"target": [
"ol > 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.0\">",
"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/0d1218/b6f04a?text=K%2FC&font=oswald\" alt=\"Kernel Current logo\" width=\"42\" height=\"42\">",
"target": [
"a[aria-label=\"Kernel Current home\"] > img[alt=\"Kernel Current logo\"][width=\"42\"][height=\"42\"]"
]
}
]
},
{
"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": null,
"relatedNodes": [
{
"html": "<label for=\"devA\">Unit A</label>",
"target": [
"label[for=\"devA\"]"
]
}
],
"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=\"devA\"><option value=\"apex15\">Vantar Apex 15</option><option value=\"nimbus14\">Halcyon Nimbus 14</option><option value=\"orbital17\">Orbital S17-X</option><option value=\"corsa13\">Corsa Book 13</option><option value=\"monolith16\">Monolith 16 Studio</option></select>",
"target": [
"#devA"
]
}
]
},
{
"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": 180,
"height": 46.4
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (180px by 46.4px, 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 class=\"skip\" href=\"#main\">Skip to content</a>",
"target": [
".skip"
]
}
]
},
{
"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 class=\"matrix\" aria-label=\"Driver compatibility matrix\">",
"target": [
".matrix"
]
}
]
},
{
"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 class=\"matrix\" aria-label=\"Driver compatibility matrix\">",
"target": [
".matrix"
]
}
]
}
],
"incomplete": [
{
"id": "aria-prohibited-attr",
"impact": "serious",
"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": {
"role": null,
"nodeName": "div",
"messageKey": "noRoleSingular",
"prohibited": [
"aria-label"
]
},
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute is not well supported on a div with no valid role attribute."
}
],
"impact": "serious",
"html": "<div class=\"ticker\" aria-label=\"Latest headlines\">",
"target": [
".ticker"
],
"failureSummary": "Fix all of the following:\n aria-label attribute is not well supported on a div with no valid role attribute."
}
]
},
{
"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": {
"messageKey": "nonBmp"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element content contains only non-text characters"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<em>\u25c6</em>",
"target": [
"span:nth-child(1) > em:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element content contains only non-text characters"
}
]
}
],
"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": "#54687a",
"bgColor": "#0a0e13",
"contrastRatio": 3.35,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"term rv in\" style=\"--d:.15s\">",
"target": [
".term"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"mono\">bench-04 \u2014 kernelcurrent</span>",
"target": [
".term-bar > .mono"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0a0e13",
"contrastRatio": 3.35,
"fontSize": "6.7pt (8.96px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"term rv in\" style=\"--d:.15s\">",
"target": [
".term"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 6.7pt (8.96px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>GPU temp</span>",
"target": [
".tele > div:nth-child(1) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 6.7pt (8.96px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0a0e13",
"contrastRatio": 3.35,
"fontSize": "6.7pt (8.96px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"term rv in\" style=\"--d:.15s\">",
"target": [
".term"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 6.7pt (8.96px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Bench load</span>",
"target": [
".tele > div:nth-child(2) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 6.7pt (8.96px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0a0e13",
"contrastRatio": 3.35,
"fontSize": "6.7pt (8.96px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"term rv in\" style=\"--d:.15s\">",
"target": [
".term"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 6.7pt (8.96px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Readers</span>",
"target": [
".tele > div:nth-child(3) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 6.7pt (8.96px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0a0e13",
"contrastRatio": 3.35,
"fontSize": "6.7pt (8.96px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"term rv in\" style=\"--d:.15s\">",
"target": [
".term"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 6.7pt (8.96px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Uptime</span>",
"target": [
".tele > div:nth-child(4) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 6.7pt (8.96px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#05070a",
"contrastRatio": 3.49,
"fontSize": "9.4pt (12.48px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 9.4pt (12.48px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p style=\"color:var(--dim)\">One email, 07:00 PT, weekdays. Signal only.</p>",
"target": [
".foot-contact > p:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 9.4pt (12.48px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#05070a",
"contrastRatio": 3.49,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>\u00a9 <span id=\"yr\">2026</span> Kernel Current Media Ltd. \u2014 printed on recycled electrons.</span>",
"target": [
".legal > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#05070a",
"contrastRatio": 3.49,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span id=\"yr\">2026</span>",
"target": [
"#yr"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#05070a",
"contrastRatio": 3.49,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\">Privacy</a>",
"target": [
".links > a[href=\"#\"]:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#05070a",
"contrastRatio": 3.49,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\">Terms</a>",
"target": [
".links > a[href=\"#\"]:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#05070a",
"contrastRatio": 3.49,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\">Cookies</a>",
"target": [
".links > a[href=\"#\"]:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#05070a",
"contrastRatio": 3.49,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\">Disclosures</a>",
"target": [
".links > a[href=\"#\"]:nth-child(4)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.49 (foreground color: #54687a, background color: #05070a, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.4pt (12.48px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-box rv in\" style=\"--d:.1s\">",
"target": [
".side-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.4pt (12.48px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"old\">$189</span>",
"target": [
".deal:nth-child(2) > span:nth-child(2) > .old"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.4pt (12.48px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.4pt (12.48px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-box rv in\" style=\"--d:.1s\">",
"target": [
".side-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.4pt (12.48px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"old\">$329</span>",
"target": [
".deal:nth-child(3) > span:nth-child(2) > .old"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.4pt (12.48px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.4pt (12.48px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-box rv in\" style=\"--d:.1s\">",
"target": [
".side-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.4pt (12.48px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"old\">$54</span>",
"target": [
".deal:nth-child(4) > span:nth-child(2) > .old"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.4pt (12.48px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-box rv in\" style=\"--d:.2s\">",
"target": [
".side-box.in.rv:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>08:24</span>",
"target": [
".tut:nth-child(2) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-box rv in\" style=\"--d:.2s\">",
"target": [
".side-box.in.rv:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>12:03</span>",
"target": [
".tut:nth-child(3) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-box rv in\" style=\"--d:.2s\">",
"target": [
".side-box.in.rv:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>17:45</span>",
"target": [
".tut:nth-child(4) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.8pt (13.12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\">",
"target": [
".panel-box.in.rv"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"sub\">NVMe sequential read, MB/s \u2014 four drives, one queue depth.</p>",
"target": [
".panel-box.in.rv > .sub"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.8pt (13.12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\">",
"target": [
".panel-box.in.rv:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"sub\">NVMe sequential read, MB/s \u2014 four drives, one queue depth.</p>",
"target": [
".panel-box.in.rv:nth-child(1) > .sub"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.8pt (13.12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"sub\">Q2 2025 \u00b7 verified on bench-04, updated fortnightly.</p>",
"target": [
".panel-box.in.rv:nth-child(2) > .sub"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.0pt (9.28px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th>Linux 6.12</th>",
"target": [
"tbody > tr:nth-child(1) > th:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.0pt (9.28px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th>Win 11 24H2</th>",
"target": [
"tbody > tr:nth-child(1) > th:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.0pt (9.28px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th>macOS eGPU</th>",
"target": [
"th:nth-child(4)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"no\">\u2715 none</td>",
"target": [
"tr:nth-child(2) > .no"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"no\">\u2715 none</td>",
"target": [
"tr:nth-child(4) > .no"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"no\">\u2715 n/a</td>",
"target": [
".no:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"no\">\u2715 n/a</td>",
"target": [
".no:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.4pt (9.92px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.in.rv:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"legend\">\u2713 full acceleration & display out \u00b7 \u25d0 works with quirks \u2014 see footnotes \u00b7 \u2715 unsupported</p>",
"target": [
".legend"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"lab rv flash in\" id=\"labBox\">",
"target": [
"#labBox"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<small id=\"roleA\">\u00bb Creator flagship</small>",
"target": [
"#roleA"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"lab rv flash in\" id=\"labBox\">",
"target": [
"#labBox"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<small id=\"roleB\">\u00bb Arm ultraportable</small>",
"target": [
"#roleB"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.4pt (9.92px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"lab rv flash in\" id=\"labBox\">",
"target": [
"#labBox"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"presets mono\">",
"target": [
".presets"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0a0e13",
"contrastRatio": 3.35,
"fontSize": "7.4pt (9.92px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<th>Metric \u2014 bench measured</th>",
"target": [
"thead > tr > th:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 7.4pt (9.92px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th>Metric \u2014 bench measured</th>",
"target": [
"thead > tr > th:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 7.4pt (9.92px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0a0e13",
"contrastRatio": 3.35,
"fontSize": "9.8pt (13.12px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<th id=\"thA\">Vantar Apex 15</th>",
"target": [
"#thA"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th id=\"thA\">Vantar Apex 15</th>",
"target": [
"#thA"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0a0e13",
"contrastRatio": 3.35,
"fontSize": "9.8pt (13.12px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<th id=\"thB\">Halcyon Nimbus 14</th>",
"target": [
"#thB"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th id=\"thB\">Halcyon Nimbus 14</th>",
"target": [
"#thB"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.35 (foreground color: #54687a, background color: #0a0e13, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.1pt (12.16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"lab rv flash in\" id=\"labBox\">",
"target": [
"#labBox"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.1pt (12.16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"info\">2.8K OLED, 120Hz</td>",
"target": [
"tr:nth-child(10) > .info:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.1pt (12.16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.1pt (12.16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"lab rv flash in\" id=\"labBox\">",
"target": [
"#labBox"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.1pt (12.16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"info\">2.8K IPS, 90Hz</td>",
"target": [
"tr:nth-child(10) > .info:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.1pt (12.16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.1pt (12.16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"lab rv flash in\" id=\"labBox\">",
"target": [
"#labBox"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.1pt (12.16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"info\">Win 11 \u00b7 Linux certified</td>",
"target": [
"tr:nth-child(11) > .info:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.1pt (12.16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.1pt (12.16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"lab rv flash in\" id=\"labBox\">",
"target": [
"#labBox"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.1pt (12.16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<td class=\"info\">Windows 11 on Arm</td>",
"target": [
"tr:nth-child(11) > .info:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.1pt (12.16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#07090c",
"contrastRatio": 3.45,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.45 (foreground color: #54687a, background color: #07090c, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div><b>118</b>Live guides</div>",
"target": [
".runbook-stat > div:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.45 (foreground color: #54687a, background color: #07090c, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#07090c",
"contrastRatio": 3.45,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.45 (foreground color: #54687a, background color: #07090c, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div><b>48h</b>Fix SLA</div>",
"target": [
".runbook-stat > div:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.45 (foreground color: #54687a, background color: #07090c, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#07090c",
"contrastRatio": 3.45,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.45 (foreground color: #54687a, background color: #07090c, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div><b>v3.2</b>Avg. revision</div>",
"target": [
".runbook-stat > div:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.45 (foreground color: #54687a, background color: #07090c, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\">",
"target": [
".tool.card:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>\u2605 12.4k</span>",
"target": [
".tool.card:nth-child(1) > .tool-foot > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\" style=\"--d:.07s\">",
"target": [
".tool.card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>\u2605 21.0k</span>",
"target": [
".tool.card:nth-child(2) > .tool-foot > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\" style=\"--d:.14s\">",
"target": [
".tool.card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>\u2605 8.7k</span>",
"target": [
".tool.card:nth-child(3) > .tool-foot > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\" style=\"--d:.14s\">",
"target": [
".tool.card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>v2.3 stable</span>",
"target": [
".tool.card:nth-child(3) > .tool-foot > span:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\" style=\"--d:.21s\">",
"target": [
".tool.card:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>\u2605 5.2k</span>",
"target": [
".tool.card:nth-child(4) > .tool-foot > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\" style=\"--d:.21s\">",
"target": [
".tool.card:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>v1.9 stable</span>",
"target": [
".tool.card:nth-child(4) > .tool-foot > span:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\" style=\"--d:.28s\">",
"target": [
".tool.card:nth-child(5)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>\u2605 3.1k</span>",
"target": [
".tool.card:nth-child(5) > .tool-foot > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\" style=\"--d:.28s\">",
"target": [
".tool.card:nth-child(5)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Used on bench</span>",
"target": [
".tool.card:nth-child(5) > .tool-foot > span:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\" style=\"--d:.35s\">",
"target": [
".tool.card:nth-child(6)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>\u2605 2.8k</span>",
"target": [
".tool.card:nth-child(6) > .tool-foot > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"tool card rv in\" style=\"--d:.35s\">",
"target": [
".tool.card:nth-child(6)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>v0.9 beta</span>",
"target": [
".tool.card:nth-child(6) > .tool-foot > span:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote card rv in\" style=\"--r:-1.4deg\">",
"target": [
".quote.card:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>Maya Okafor</b>",
"target": [
".quote.card:nth-child(1) > .quote-who > span > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote card rv in\" style=\"--r:-1.4deg\">",
"target": [
".quote.card:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Site Reliability Engineer \u00b7 fintech</span>",
"target": [
".quote.card:nth-child(1) > .quote-who > span > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote card rv in\" style=\"--d:.1s;--r:1.2deg\">",
"target": [
".quote.card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>Dev R.</b>",
"target": [
".quote.card:nth-child(2) > .quote-who > span > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote card rv in\" style=\"--d:.1s;--r:1.2deg\">",
"target": [
".quote.card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Indie game developer</span>",
"target": [
".quote.card:nth-child(2) > .quote-who > span > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote card rv in\" style=\"--d:.2s;--r:-0.8deg\">",
"target": [
".quote.card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>Priya S.</b>",
"target": [
".quote.card:nth-child(3) > .quote-who > span > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote card rv in\" style=\"--d:.2s;--r:-0.8deg\">",
"target": [
".quote.card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>IT Director \u00b7 400-seat campus</span>",
"target": [
".quote.card:nth-child(3) > .quote-who > span > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote card rv in\" style=\"--d:.3s;--r:1.6deg\">",
"target": [
".quote.card:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>Tom\u00e1s L.</b>",
"target": [
".quote.card:nth-child(4) > .quote-who > span > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote card rv in\" style=\"--d:.3s;--r:1.6deg\">",
"target": [
".quote.card:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Computer science student</span>",
"target": [
".quote.card:nth-child(4) > .quote-who > span > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.8pt (13.12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\">",
"target": [
".panel-box.rv.in:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"sub\">NVMe sequential read, MB/s \u2014 four drives, one queue depth.</p>",
"target": [
".panel-box.rv.in:nth-child(1) > .sub"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#54687a",
"bgColor": "#0d1218",
"contrastRatio": 3.25,
"fontSize": "9.8pt (13.12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"panel-box rv in\" style=\"--d:.12s\">",
"target": [
".panel-box.rv.in:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"sub\">Q2 2025 \u00b7 verified on bench-04, updated fortnightly.</p>",
"target": [
".panel-box.rv.in:nth-child(2) > .sub"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.25 (foreground color: #54687a, background color: #0d1218, font size: 9.8pt (13.12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 10829
},
{
"y": 576,
"height": 10829
},
{
"y": 1152,
"height": 10829
},
{
"y": 1728,
"height": 10829
},
{
"y": 2304,
"height": 10829
},
{
"y": 2880,
"height": 10829
},
{
"y": 3456,
"height": 10829
},
{
"y": 4032,
"height": 10829
},
{
"y": 4608,
"height": 10829
},
{
"y": 5184,
"height": 10829
},
{
"y": 5760,
"height": 10829
},
{
"y": 6336,
"height": 10829
},
{
"y": 6912,
"height": 10829
},
{
"y": 7488,
"height": 10829
},
{
"y": 8064,
"height": 10829
},
{
"y": 8640,
"height": 10829
},
{
"y": 9216,
"height": 10829
},
{
"y": 9792,
"height": 10829
},
{
"y": 10109,
"height": 10829
}
],
"scans": 20,
"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: "Shop", "News", "Compare".
- **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: "How-To Guides", "Comparison Guides", "Industry Trends".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "open source", "debugging", "compatibility matrix".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Contact Support", "Get Support", "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: "troubleshooter".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "tech tutorials", "trending topics", "hot deals".
- **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.