DeepSeek DeepSeek V4.1 Flash 1017 – Science
via DeepInfra · Generated
- AIMAC Debt 3.53
- Cost $0.01
- Total Violations 5
- HTML Size 74 KB
- Em Dashes 19
Screenshot
View Live Page
Accessibility Issues Found
5 Serious
-
color-contrast serious 5 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<time>7 days</time>
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Helix & Horizon — Independent Science Institute & Review</title>
<meta name="description" content="Helix & Horizon is an independent research institute and open science review. Peer-validated publications, early-career funding, STEM education programmes and verified science news.">
<link rel="icon" href="https://placehold.co/64x64/0B3B3C/F4EFE6?text=HH&font=montserrat">
<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=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
/* ============================================================
TOKENS
============================================================ */
:root{
--ink:#0B1F2A;
--ink-2:#16323E;
--teal:#0E5C6B;
--teal-deep:#083D48;
--amber:#E9A03B;
--amber-soft:#F7E4C6;
--paper:#F7F4EE;
--paper-2:#F1EDE4;
--white:#FFFFFF;
--line:#DCD6CA;
--line-strong:#C9C1B1;
--muted:#5A6B72;
--body:#3A4E57;
--r:10px;
--shadow:0 1px 2px rgba(11,31,42,.05), 0 18px 40px -22px rgba(11,31,42,.42);
--shadow-sm:0 1px 2px rgba(11,31,42,.05), 0 8px 20px -14px rgba(11,31,42,.4);
--sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
--serif:'Fraunces',Georgia,'Times New Roman',serif;
--wrap:1220px;
}
/* ============================================================
BASE
============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
margin:0;
background:var(--paper);
color:var(--ink);
font-family:var(--sans);
font-size:16.5px;
line-height:1.68;
-webkit-font-smoothing:antialiased;
text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.12;letter-spacing:-.018em;margin:0}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
::selection{background:var(--amber-soft);color:var(--ink)}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.section{padding:92px 0;scroll-margin-top:96px}
.section--tight{padding:66px 0;scroll-margin-top:96px}
.section--alt{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
/* ============================================================
TYPOGRAPHY HELPERS
============================================================ */
.eyebrow{
display:inline-flex;align-items:center;gap:10px;
font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
color:var(--teal);margin:0 0 18px;
}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.65}
.eyebrow--light{color:var(--amber)}
.section-head{max-width:760px;margin-bottom:46px}
.section-head h2{font-size:clamp(1.95rem,3.4vw,2.9rem)}
.section-head p{color:var(--body);font-size:17px;margin-top:18px;max-width:66ch}
.section-head--light h2{color:#F2EEE6}
.section-head--light p{color:#A9BCC2}
/* ============================================================
BUTTONS
============================================================ */
.btn{
display:inline-flex;align-items:center;justify-content:center;gap:9px;
font-family:var(--sans);font-size:14.5px;font-weight:600;letter-spacing:.01em;
padding:14px 24px;border-radius:999px;border:1px solid transparent;cursor:pointer;
transition:transform .16s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
text-align:center;white-space:nowrap;
}
.btn:hover{transform:translateY(-1px)}
.btn--primary{background:var(--ink);color:#F7F4EE}
.btn--primary:hover{background:var(--teal-deep);box-shadow:var(--shadow-sm)}
.btn--ghost{background:transparent;border-color:var(--line-strong);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink);background:rgba(11,31,42,.04)}
.btn--amber{background:var(--amber);color:#2A1B05}
.btn--amber:hover{background:#F2B155}
.btn--light{background:#F7F4EE;color:var(--ink)}
.btn--light:hover{background:#fff}
.btn--sm{padding:10px 17px;font-size:13.5px}
.btn--outline-light{border-color:rgba(247,244,238,.35);color:#F2EEE6;background:transparent}
.btn--outline-light:hover{border-color:#F2EEE6;background:rgba(247,244,238,.08)}
.link-arrow{
display:inline-flex;align-items:center;gap:7px;font-size:14.5px;font-weight:600;
color:var(--teal-deep);border-bottom:1px solid rgba(14,92,107,.3);padding-bottom:2px;
transition:gap .18s ease,border-color .18s ease;
}
.link-arrow:hover{gap:12px;border-color:var(--teal-deep)}
/* ============================================================
UTILITY BAR
============================================================ */
.utility{background:var(--ink);color:#A9BCC2;font-size:12.5px;letter-spacing:.045em}
.utility .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:40px}
.utility strong{color:#F2EEE6;font-weight:600}
.utility-links{display:flex;gap:24px;align-items:center}
.utility-links a{transition:color .16s}
.utility-links a:hover{color:#fff}
@media (max-width:820px){.utility-links{display:none}.utility .wrap{justify-content:center}}
/* ============================================================
HEADER / NAV
============================================================ */
.site-header{
position:sticky;top:0;z-index:60;
background:rgba(247,244,238,.92);
backdrop-filter:blur(14px) saturate(150%);
-webkit-backdrop-filter:blur(14px) saturate(150%);
border-bottom:1px solid var(--line);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:82px}
.brand{display:flex;align-items:center;gap:14px;flex-shrink:0}
.brand img{width:46px;height:46px;border-radius:9px;box-shadow:0 2px 8px -4px rgba(11,31,42,.6)}
.brand-name{display:block;font-family:var(--serif);font-size:21px;font-weight:600;letter-spacing:-.012em;line-height:1.1}
.brand-tag{display:block;font-size:10.5px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.nav{display:flex;align-items:center;gap:2px}
.nav a{
font-size:14.5px;font-weight:500;color:var(--ink-2);
padding:9px 13px;border-radius:999px;
transition:background .18s,color .18s;
}
.nav a:hover{background:rgba(14,92,107,.09);color:var(--teal-deep)}
.header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.nav-toggle{
display:none;align-items:center;gap:9px;
background:transparent;border:1px solid var(--line-strong);border-radius:999px;
padding:9px 16px;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer;
}
.nav-toggle span{display:block;width:15px;height:1.5px;background:currentColor;position:relative}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:15px;height:1.5px;background:currentColor}
.nav-toggle span::before{top:-5px}
.nav-toggle span::after{top:5px}
@media (max-width:1080px){
.nav{
position:absolute;top:100%;left:0;right:0;
flex-direction:column;align-items:stretch;gap:2px;
background:var(--paper);border-bottom:1px solid var(--line);
padding:14px 22px 22px;display:none;box-shadow:var(--shadow);
}
.nav.is-open{display:flex}
.nav a{padding:12px 14px;border-radius:8px;font-size:15px}
.nav-toggle{display:inline-flex}
.header-actions .btn{display:none}
}
@media (max-width:520px){
.brand-tag{display:none}
.site-header .wrap{min-height:70px}
.brand img{width:40px;height:40px}
}
/* ============================================================
HERO
============================================================ */
.hero{position:relative;overflow:hidden;padding:76px 0 84px;border-bottom:1px solid var(--line)}
.hero::before{
content:"";position:absolute;inset:0;pointer-events:none;
background-image:
linear-gradient(to right, rgba(11,31,42,.055) 1px, transparent 1px),
linear-gradient(to bottom, rgba(11,31,42,.055) 1px, transparent 1px);
background-size:52px 52px;
-webkit-mask-image:radial-gradient(circle at 76% 14%, #000 0%, transparent 70%);
mask-image:radial-gradient(circle at 76% 14%, #000 0%, transparent 70%);
}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.04fr .96fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1.02;letter-spacing:-.03em}
.hero h1 em{font-style:normal;color:var(--teal);position:relative}
.hero-lede{font-size:18px;color:var(--body);max-width:56ch;margin-top:24px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero-stats{
display:flex;flex-wrap:wrap;gap:34px 44px;
margin:38px 0 0;padding:26px 0 0;border-top:1px solid var(--line);
}
.hero-stats div{display:flex;flex-direction:column-reverse;gap:3px}
.hero-stats dt{font-size:11.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.hero-stats dd{margin:0;font-family:var(--serif);font-size:29px;font-weight:600;letter-spacing:-.02em;line-height:1}
.hero-media{position:relative}
.hero-media img{
width:100%;aspect-ratio:5/6;object-fit:cover;border-radius:var(--r);
box-shadow:var(--shadow);
}
.hero-badge{
position:absolute;left:-22px;bottom:34px;
display:flex;align-items:center;gap:12px;
background:var(--white);border:1px solid var(--line);border-radius:999px;
padding:12px 20px 12px 16px;font-size:13.5px;font-weight:500;
box-shadow:var(--shadow-sm);transition:transform .18s ease;
}
.hero-badge:hover{transform:translateY(-2px)}
.hero-badge .pulse{
width:9px;height:9px;border-radius:50%;background:var(--amber);flex-shrink:0;
box-shadow:0 0 0 0 rgba(233,160,59,.7);animation:pulse 2.4s infinite;
}
@keyframes pulse{
0%{box-shadow:0 0 0 0 rgba(233,160,59,.65)}
70%{box-shadow:0 0 0 11px rgba(233,160,59,0)}
100%{box-shadow:0 0 0 0 rgba(233,160,59,0)}
}
.hero-badge b{font-weight:600}
@media (max-width:980px){
.hero .wrap{grid-template-columns:1fr;gap:44px}
.hero-media{order:-1}
.hero-media img{aspect-ratio:16/11}
.hero-badge{left:auto;right:16px;bottom:-18px}
.hero{padding-bottom:64px}
}
/* ============================================================
PARTNERS STRIP
============================================================ */
.partners{background:var(--paper-2);border-bottom:1px solid var(--line);padding:24px 0}
.partners .wrap{display:flex;align-items:center;gap:14px 40px;flex-wrap:wrap;justify-content:center}
.partners .label{
font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
}
.partners ul{display:flex;flex-wrap:wrap;gap:14px 38px;list-style:none;margin:0;padding:0;justify-content:center}
.partners li{font-family:var(--serif);font-size:15.5px;font-weight:500;color:#5D6C72;letter-spacing:-.005em}
/* ============================================================
PRINCIPLES (feature grid)
============================================================ */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.principle{
background:var(--white);border:1px solid var(--line);border-radius:var(--r);
padding:30px 28px 32px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.principle:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);border-color:var(--line-strong)}
.principle .num{
display:block;font-family:var(--serif);font-size:12.5px;font-weight:600;
letter-spacing:.18em;color:var(--teal);margin-bottom:16px;
}
.principle h3{font-size:20px;margin-bottom:10px;letter-spacing:-.01em}
.principle p{font-size:15px;color:var(--body);margin:0}
@media (max-width:900px){.principles{grid-template-columns:1fr}}
/* ============================================================
SPOTLIGHT
============================================================ */
.spotlight{display:grid;grid-template-columns:1.42fr 1fr;gap:44px;align-items:start}
.spotlight-main img{border-radius:var(--r);aspect-ratio:16/10;object-fit:cover;box-shadow:var(--shadow-sm)}
.meta-row{
display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;
margin:24px 0 14px;font-size:12.5px;color:var(--muted);letter-spacing:.03em;
}
.meta-row .tag{
background:rgba(14,92,107,.1);color:var(--teal-deep);
padding:5px 12px;border-radius:999px;font-weight:600;font-size:11.5px;
letter-spacing:.1em;text-transform:uppercase;
}
.spotlight-main h3{font-size:clamp(1.55rem,2.5vw,2.15rem);margin-bottom:16px;letter-spacing:-.02em}
.spotlight-main p{color:var(--body);font-size:16.5px}
.spotlight-main .actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.spotlight-side{display:flex;flex-direction:column;gap:22px}
.mini{
background:var(--white);border:1px solid var(--line);border-radius:var(--r);
padding:24px 24px 26px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.mini:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--line-strong)}
.mini img{border-radius:7px;aspect-ratio:16/9;object-fit:cover;margin-bottom:18px}
.mini h4{font-size:18px;margin-bottom:10px;letter-spacing:-.01em}
.mini p{font-size:14.5px;color:var(--body);margin-bottom:16px}
.mini .kicker{
display:block;font-size:11px;font-weight:600;letter-spacing:.16em;
text-transform:uppercase;color:var(--teal);margin-bottom:10px;
}
@media (max-width:980px){
.spotlight{grid-template-columns:1fr;gap:36px}
.spotlight-side{flex-direction:row;flex-wrap:wrap}
.mini{flex:1 1 300px}
}
/* ============================================================
FUNDING TRACKER (interactive)
============================================================ */
.funding{
position:relative;overflow:hidden;
background:var(--ink);color:#EDE9E1;padding:92px 0;scroll-margin-top:96px;
}
.funding::before{
content:"";position:absolute;inset:0;pointer-events:none;
background:
radial-gradient(circle at 12% 0%, rgba(14,92,107,.55) 0%, transparent 52%),
radial-gradient(circle at 92% 92%, rgba(233,160,59,.16) 0%, transparent 46%);
}
.funding .wrap{position:relative}
.funding-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;margin-bottom:36px}
.funding-head .section-head{margin-bottom:0}
.funding-note{
font-size:13px;color:#93A8AF;max-width:250px;line-height:1.6;
border-left:2px solid rgba(233,160,59,.6);padding-left:16px;
}
.funding-note strong{color:#EDE9E1;display:block;font-weight:600;margin-bottom:2px}
.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:30px}
.filter{
background:transparent;border:1px solid rgba(247,244,238,.22);color:#C6D3D8;
padding:9px 17px;border-radius:999px;font-size:13.5px;font-weight:500;cursor:pointer;
transition:background .18s,color .18s,border-color .18s;
}
.filter:hover{border-color:rgba(247,244,238,.5);color:#fff}
.filter[aria-pressed="true"]{background:var(--amber);border-color:var(--amber);color:#2A1B05;font-weight:600}
.grant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.grant{
display:flex;flex-direction:column;gap:14px;
background:rgba(247,244,238,.05);border:1px solid rgba(247,244,238,.14);
border-radius:var(--r);padding:24px 22px;
transition:background .2s,border-color .2s,transform .2s;
}
.grant:hover{background:rgba(247,244,238,.085);border-color:rgba(247,244,238,.3);transform:translateY(-2px)}
.grant-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.grant .pill{
font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
color:#9FE0E8;background:rgba(14,92,107,.4);border:1px solid rgba(159,224,232,.25);
padding:4px 10px;border-radius:999px;
}
.grant .soon{
font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
color:var(--amber);
}
.grant h3{font-size:18px;line-height:1.28;letter-spacing:-.01em;color:#F6F2EA}
.grant .funder{font-size:13.5px;color:#93A8AF;margin:0}
.grant-figures{display:flex;gap:26px;padding:14px 0;border-top:1px solid rgba(247,244,238,.13);border-bottom:1px solid rgba(247,244,238,.13)}
.grant-figures span{display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8298A0;margin-bottom:4px}
.grant-figures strong{font-family:var(--serif);font-size:17px;font-weight:600;color:#F6F2EA;letter-spacing:-.01em}
.grant .elig{font-size:13px;color:#A9BCC2;margin:0;flex:1}
.grant .grant-link{font-size:13.5px;font-weight:600;color:var(--amber);display:inline-flex;gap:6px;transition:gap .18s}
.grant .grant-link:hover{gap:11px}
.grant-count{font-size:13px;color:#8298A0;margin-top:24px}
.grant-count strong{color:#EDE9E1}
/* ============================================================
PUBLICATIONS + SIDEBAR
============================================================ */
.pub-layout{display:grid;grid-template-columns:minmax(0,1fr) 344px;gap:60px;align-items:start}
.pub-list{border-bottom:1px solid var(--line)}
.pub{
display:grid;grid-template-columns:212px 1fr;gap:28px;
padding:30px 0;border-top:1px solid var(--line);
}
.pub:first-child{border-top:none;padding-top:0}
.pub img{border-radius:8px;aspect-ratio:4/3;object-fit:cover;width:100%}
.pub .kicker{font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--teal);margin-bottom:10px;display:block}
.pub h3{font-size:20px;line-height:1.28;margin-bottom:10px;letter-spacing:-.012em}
.pub h3 a:hover{color:var(--teal-deep)}
.pub p{font-size:15px;color:var(--body);margin-bottom:14px}
.pub-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--muted);margin-bottom:14px}
.pub-meta span{display:inline-flex;align-items:center;gap:6px}
.pub-meta span::before{content:"";width:3px;height:3px;border-radius:50%;background:var(--line-strong)}
.pub-meta span:first-child::before{display:none}
.sidebar{position:sticky;top:100px;display:flex;flex-direction:column;gap:20px}
.side-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:26px 24px}
.side-card h3{
font-size:15px;font-family:var(--sans);font-weight:600;letter-spacing:.13em;
text-transform:uppercase;color:var(--ink);margin-bottom:18px;
padding-bottom:14px;border-bottom:1px solid var(--line);
}
.breakthroughs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;counter-reset:bt}
.breakthroughs li{display:grid;grid-template-columns:24px 1fr;gap:12px;counter-increment:bt}
.breakthroughs li::before{
content:counter(bt,decimal-leading-zero);
font-family:var(--serif);font-size:12px;font-weight:600;color:var(--teal);
padding-top:3px;
}
.breakthroughs a{font-size:14.5px;font-weight:600;line-height:1.4;display:block;transition:color .16s}
.breakthroughs a:hover{color:var(--teal-deep)}
.breakthroughs em{display:block;font-style:normal;font-size:12.5px;color:var(--muted);margin-top:3px}
.deadlines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.deadlines li{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding-bottom:14px;border-bottom:1px dashed var(--line)}
.deadlines li:last-child{border-bottom:none;padding-bottom:0}
.deadlines a{font-size:14px;font-weight:500;line-height:1.4}
.deadlines a:hover{color:var(--teal-deep)}
.deadlines time{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--amber);white-space:nowrap}
.side-cta{background:var(--teal-deep);border-color:var(--teal-deep);color:#EAF2F3}
.side-cta h3{color:#fff;border-bottom-color:rgba(247,244,238,.22)}
.side-cta p{font-size:14px;color:#BFD5D9;margin-bottom:18px}
.side-form{display:flex;flex-direction:column;gap:10px}
.side-form input{
width:100%;padding:12px 15px;border-radius:8px;border:1px solid rgba(247,244,238,.3);
background:rgba(255,255,255,.07);color:#fff;font-family:var(--sans);font-size:14px;
}
.side-form input::placeholder{color:#9DB6BB}
.side-form input:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:transparent}
.form-note{font-size:11.5px;color:#8FAAB0;margin:0}
@media (max-width:1040px){
.pub-layout{grid-template-columns:1fr;gap:44px}
.sidebar{position:static;flex-direction:row;flex-wrap:wrap}
.side-card{flex:1 1 300px}
}
@media (max-width:640px){
.pub{grid-template-columns:1fr;gap:16px}
.pub img{aspect-ratio:16/9}
}
/* ============================================================
EDUCATION
============================================================ */
.edu-layout{display:grid;grid-template-columns:.92fr 1.08fr;gap:56px;align-items:start}
.edu-visual{position:relative}
.edu-visual img{border-radius:var(--r);aspect-ratio:4/5;object-fit:cover;box-shadow:var(--shadow-sm)}
.edu-caption{
position:absolute;left:18px;right:18px;bottom:18px;
background:rgba(11,31,42,.86);backdrop-filter:blur(6px);
color:#E9E5DD;border-radius:8px;padding:16px 18px;font-size:13px;line-height:1.5;
}
.edu-caption strong{display:block;font-family:var(--serif);font-size:15px;color:#fff;margin-bottom:3px;font-weight:600}
.edu-intro p{color:var(--body);font-size:16.5px}
.programs{display:flex;flex-direction:column;gap:16px;margin-top:30px}
.program{
display:grid;grid-template-columns:52px 1fr auto;gap:20px;align-items:start;
background:var(--white);border:1px solid var(--line);border-radius:var(--r);
padding:24px;transition:transform .2s,box-shadow .2s,border-color .2s;
}
.program:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--line-strong)}
.program .icon{
width:52px;height:52px;border-radius:10px;background:rgba(14,92,107,.09);
display:grid;place-items:center;color:var(--teal-deep);
}
.program .icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.program h3{font-size:18.5px;margin-bottom:8px;letter-spacing:-.01em}
.program p{font-size:14.5px;color:var(--body);margin:0}
.program .dur{font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);white-space:nowrap;padding-top:4px}
@media (max-width:980px){
.edu-layout{grid-template-columns:1fr;gap:38px}
.edu-visual img{aspect-ratio:16/10}
}
@media (max-width:560px){
.program{grid-template-columns:1fr;gap:14px}
.program .dur{padding-top:0}
}
/* ============================================================
NEWS
============================================================ */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.news-card{
display:flex;flex-direction:column;
background:var(--white);border:1px solid var(--line);border-radius:var(--r);
overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s;
}
.news-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.news-card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.news-body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.news-body .kicker{
display:flex;align-items:center;gap:10px;
font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);
}
.news-body .kicker::after{content:"";flex:1;height:1px;background:var(--line)}
.news-body h3{font-size:19px;line-height:1.3;letter-spacing:-.012em}
.news-body p{font-size:14.5px;color:var(--body);flex:1;margin:0}
.news-body .link-arrow{font-size:13.5px;align-self:flex-start}
@media (max-width:900px){.news-grid{grid-template-columns:1fr}}
/* ============================================================
TESTIMONIALS
============================================================ */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.quote{
margin:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r);
padding:30px 28px;display:flex;flex-direction:column;gap:22px;
}
.quote blockquote{
margin:0;font-family:var(--serif);font-size:17.5px;line-height:1.5;
letter-spacing:-.008em;color:var(--ink);flex:1;
}
.quote blockquote::before{content:"“";color:var(--amber);margin-right:2px}
.quote blockquote::after{content:"”";color:var(--amber);margin-left:2px}
.quote figcaption{display:flex;align-items:center;gap:13px;border-top:1px solid var(--line);padding-top:18px}
.quote figcaption img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0}
.quote figcaption strong{display:block;font-size:14.5px;font-weight:600;line-height:1.3}
.quote figcaption span{display:block;font-size:12.5px;color:var(--muted);line-height:1.4}
@media (max-width:900px){.quotes{grid-template-columns:1fr}}
/* ============================================================
FAQ
============================================================ */
.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:start}
.faq-layout .section-head{margin-bottom:0;position:sticky;top:110px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{
list-style:none;cursor:pointer;display:flex;justify-content:space-between;
align-items:center;gap:24px;padding:22px 0;font-size:16.5px;font-weight:600;
color:var(--ink);transition:color .16s;
}
.faq summary:hover{color:var(--teal-deep)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
content:"+";font-family:var(--serif);font-size:24px;line-height:1;color:var(--teal);
flex-shrink:0;transition:transform .22s ease;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .answer{padding:0 0 24px;color:var(--body);font-size:15.5px;max-width:68ch}
.faq .answer p{margin:0}
@media (max-width:900px){
.faq-layout{grid-template-columns:1fr;gap:30px}
.faq-layout .section-head{position:static}
}
/* ============================================================
CTA BAND
============================================================ */
.cta-band{
position:relative;overflow:hidden;background:var(--teal-deep);color:#EAF2F3;
padding:78px 0;border-top:1px solid rgba(255,255,255,.1);
}
.cta-band::before{
content:"";position:absolute;inset:0;pointer-events:none;
background:
radial-gradient(circle at 82% 18%, rgba(233,160,59,.22) 0%, transparent 48%),
radial-gradient(circle at 8% 90%, rgba(255,255,255,.08) 0%, transparent 42%);
}
.cta-band .wrap{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.cta-band h2{font-size:clamp(1.85rem,3.2vw,2.6rem);color:#fff;letter-spacing:-.022em}
.cta-band p{color:#BFD5D9;font-size:16.5px;margin-top:16px;max-width:52ch}
.cta-form{display:flex;gap:10px;flex-wrap:wrap}
.cta-form input{
flex:1 1 240px;min-width:0;padding:15px 20px;border-radius:999px;
border:1px solid rgba(247,244,238,.35);background:rgba(255,255,255,.09);
color:#fff;font-family:var(--sans);font-size:15px;
}
.cta-form input::placeholder{color:#A9C4C9}
.cta-form input:focus{outline:2px solid var(--amber);outline-offset:2px;border-color:transparent}
.cta-form .form-note{flex-basis:100%;font-size:12px;color:#93B2B8;margin-top:4px}
.form-success{
display:none;margin-top:14px;font-size:14px;color:#0B1F2A;
background:var(--amber);padding:12px 18px;border-radius:8px;font-weight:600;
}
.form-success.is-visible{display:block}
@media (max-width:900px){.cta-band .wrap{grid-template-columns:1fr;gap:30px}}
/* ============================================================
FOOTER
============================================================ */
.site-footer{background:var(--ink);color:#A9BCC2;padding:70px 0 0;font-size:14.5px}
.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.1fr;gap:48px;padding-bottom:54px}
.footer-brand{display:flex;align-items:center;gap:13px;margin-bottom:20px}
.footer-brand img{width:44px;height:44px;border-radius:8px}
.footer-brand .brand-name{color:#F4F0E8;font-size:19px}
.footer-brand .brand-tag{color:#7D939A}
.site-footer p{color:#93A8AF;font-size:14px;line-height:1.65;max-width:36ch}
.footer-contact{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14px}
.footer-contact li{display:flex;gap:10px;align-items:flex-start;color:#93A8AF}
.footer-contact a:hover{color:#fff}
.footer-contact .ico{color:var(--amber);flex-shrink:0;padding-top:2px}
.site-footer h4{
font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.18em;
text-transform:uppercase;color:#F4F0E8;margin-bottom:18px;
}
.footer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.footer-links a{font-size:14px;color:#93A8AF;transition:color .16s}
.footer-links a:hover{color:#fff}
.social{display:flex;gap:10px;margin-top:22px}
.social a{
width:38px;height:38px;border-radius:50%;border:1px solid rgba(247,244,238,.18);
display:grid;place-items:center;color:#C6D3D8;transition:background .18s,color .18s,border-color .18s;
}
.social a:hover{background:var(--amber);color:#2A1B05;border-color:var(--amber)}
.social svg{width:16px;height:16px;fill:currentColor}
.footer-bottom{
border-top:1px solid rgba(247,244,238,.13);
padding:24px 0 30px;display:flex;flex-wrap:wrap;gap:14px 30px;
justify-content:space-between;align-items:center;font-size:13px;color:#7D939A;
}
.footer-bottom ul{list-style:none;display:flex;flex-wrap:wrap;gap:22px;margin:0;padding:0}
.footer-bottom a:hover{color:#fff}
@media (max-width:980px){
.footer-grid{grid-template-columns:1fr 1fr;gap:40px}
}
@media (max-width:600px){
.footer-grid{grid-template-columns:1fr;gap:36px}
}
/* ============================================================
REVEAL ANIMATION
============================================================ */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .65s ease,transform .65s ease}
.js .reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
.js .reveal{opacity:1;transform:none;transition:none}
.btn:hover,.principle:hover,.mini:hover,.news-card:hover,.grant:hover,.program:hover{transform:none}
.hero-badge .pulse{animation:none}
}
</style>
</head>
<body>
<!-- ============================ UTILITY BAR ============================ -->
<div class="utility">
<div class="wrap">
<div><strong>Open access</strong> · Double-blind peer review · ISSN 2147-8831</div>
<div class="utility-links">
<a href="#publications">Institutional login</a>
<a href="#contact">Careers</a>
<a href="#updates">Newsletter</a>
</div>
</div>
</div>
<!-- ============================ HEADER ============================ -->
<header class="site-header">
<div class="wrap">
<a class="brand" href="#top" aria-label="Helix and Horizon — home">
<img src="https://placehold.co/96x96/0B3B3C/F4EFE6?text=HH&font=montserrat" alt="Helix & Horizon logo" width="96" height="96">
<span>
<span class="brand-name">Helix & Horizon</span>
<span class="brand-tag">Peer-validated science, openly shared</span>
</span>
</a>
<nav class="nav" id="primary-nav" aria-label="Primary">
<a href="#research">Research</a>
<a href="#publications">Publications</a>
<a href="#education">Education</a>
<a href="#funding">Funding</a>
<a href="#news">News</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</nav>
<div class="header-actions">
<a class="btn btn--primary btn--sm" href="#updates">Get Updates</a>
<button class="nav-toggle" id="navToggle" aria-expanded="false" aria-controls="primary-nav">
<span aria-hidden="true"></span> Menu
</button>
</div>
</div>
</header>
<main id="top">
<!-- ============================ HERO ============================ -->
<section class="hero">
<div class="wrap">
<div class="hero-copy">
<p class="eyebrow">Independent institute & review · Est. 1998</p>
<h1>Evidence, examined. <em>Discovery,</em> distributed.</h1>
<p class="hero-lede">
Helix & Horizon funds early-career investigators, publishes peer-validated findings
without a paywall, and translates new science into classroom-ready material. Every claim
we print is traceable to a dataset, a method, and a reviewer who signed their name to it.
</p>
<div class="hero-actions">
<a class="btn btn--primary" href="#publications">Read the Latest Research</a>
<a class="btn btn--ghost" href="#education">Attend a Lecture</a>
</div>
<dl class="hero-stats">
<div><dt>Active research programmes</dt><dd>142</dd></div>
<div><dt>Open datasets published</dt><dd>9,400+</dd></div>
<div><dt>Partner laboratories</dt><dd>38</dd></div>
<div><dt>Educators trained yearly</dt><dd>2,100</dd></div>
</dl>
</div>
<div class="hero-media">
<img src="https://picsum.photos/900/1080" alt="Researchers reviewing structural data on a laboratory display" width="900" height="1080">
<a class="hero-badge" href="#funding">
<span class="pulse" aria-hidden="true"></span>
<span><b>14 open calls</b> closing this month</span>
</a>
</div>
</div>
</section>
<!-- ============================ PARTNERS ============================ -->
<div class="partners">
<div class="wrap">
<span class="label">Working alongside</span>
<ul>
<li>Northfield University</li>
<li>Bracken Institute of Technology</li>
<li>Pacific Marine Observatory</li>
<li>Halden Centre for Medical Research</li>
<li>The Ledger Foundation</li>
</ul>
</div>
</div>
<!-- ============================ ABOUT / PRINCIPLES ============================ -->
<section class="section" id="about">
<div class="wrap">
<div class="section-head reveal">
<p class="eyebrow">About the institute</p>
<h2>An institute built around verification, not press releases.</h2>
<p>
We were founded by a group of journal editors and field researchers who had grown tired of
watching promising results collapse under replication. Three decades later the method has not
changed: we fund the work, we check the work, and then — and only then — we publish it in full.
</p>
</div>
<div class="principles">
<article class="principle reveal">
<span class="num">01</span>
<h3>Open by default</h3>
<p>
Raw data, analysis notebooks, reviewer reports and negative results are published alongside
every paper. No embargoes for institutional subscribers, no supplementary files hidden behind
a request form. If a reader cannot audit the evidence, the claim is not finished.
</p>
</article>
<article class="principle reveal">
<span class="num">02</span>
<h3>Reproduced before published</h3>
<p>
Each manuscript is independently re-run by a laboratory that did not author the work. Roughly
a third of submissions fail that check on the first pass — and are returned with the
replication notes attached, not quietly discarded.
</p>
</article>
<article class="principle reveal">
<span class="num">03</span>
<h3>Written for the people who use it</h3>
<p>
Clinicians, teachers, policy analysts and engineers are part of our review panel. Findings are
summarised in plain language and paired with a data visualisation that a non-specialist can
interrogate without a statistics background.
</p>
</article>
</div>
</div>
</section>
<!-- ============================ INNOVATION SPOTLIGHT ============================ -->
<section class="section section--alt" id="research">
<div class="wrap">
<div class="section-head reveal">
<p class="eyebrow">Innovation Spotlight</p>
<h2>The methods work that quietly changes what the field can attempt next.</h2>
<p>
Every quarter our editors select one result that removes a bottleneck rather than simply
adding a data point. This quarter's selection comes from the Horizon Structural Group.
</p>
</div>
<div class="spotlight">
<article class="spotlight-main reveal">
<img src="https://picsum.photos/1200/800" alt="Cryo-electron microscopy workflow visualised on a large screen" width="1200" height="800">
<div class="meta-row">
<span class="tag">Structural Biology</span>
<span>Published in the Journal of Molecular Methods</span>
<span>·</span>
<span>14 November</span>
<span>·</span>
<span>Replication verified by Northfield University</span>
</div>
<h3>A cryo-EM pipeline that cuts structural biology's bottleneck from months to days</h3>
<p>
Cryo-electron microscopy has transformed structural biology over the past decade — and quietly
created a new constraint. A single high-resolution reconstruction can generate several terabytes
of raw micrograph data, and the segmentation, alignment and validation steps that follow remain
stubbornly manual. The pipeline published this month, after eighteen months of multi-site
replication, automates those steps end to end.
</p>
<p>
Across 214 benchmark datasets the method recovered 96.4% of expert-annotated particle
coordinates while reducing hands-on analysis time from an average of 31 days to under four.
Critically, the team released every intermediate output — including the 12,000 failed alignments
that shaped the final model — alongside an interactive data visualisation that lets reviewers
audit the decision path themselves rather than trusting a reported accuracy figure.
</p>
<p>
Two independent laboratories have since reproduced the results on their own instruments, and the
pipeline is now in routine use in four partner facilities. The empirical evidence for the method
is strong; the more interesting question is what becomes tractable once turnaround drops by an
order of magnitude.
</p>
<div class="actions">
<a class="btn btn--primary" href="#publications">Read the Full Study</a>
<a class="btn btn--ghost" href="#funding">View the Open Dataset</a>
</div>
</article>
<div class="spotlight-side">
<article class="mini reveal">
<img src="https://picsum.photos/600/420" alt="A field-deployed water quality sensor in a coastal estuary" width="600" height="420">
<span class="kicker">Environmental Chemistry</span>
<h4>Low-cost nitrate sensors hold calibration in tidal water</h4>
<p>
A three-year field trial across eleven estuaries found that open-hardware sensors held
within ±0.4 mg/L of laboratory reference measurements — a cost reduction of roughly
ninety per cent per monitoring site.
</p>
<a class="link-arrow" href="#publications">Read Research <span aria-hidden="true">→</span></a>
</article>
<article class="mini reveal">
<img src="https://picsum.photos/600/421" alt="Statistical models plotted across multiple trial design scenarios" width="600" height="421">
<span class="kicker">Biostatistics</span>
<h4>Bayesian trial designs that stop earlier without losing power</h4>
<p>
Adaptive priors, pre-registered stopping rules and a public simulation suite: a template
for smaller clinical trials that still satisfy regulators — and that independent
statisticians can re-run in an afternoon.
</p>
<a class="link-arrow" href="#publications">Read Research <span aria-hidden="true">→</span></a>
</article>
</div>
</div>
</div>
</section>
<!-- ============================ FUNDING TRACKER (INTERACTIVE) ============================ -->
<section class="funding" id="funding">
<div class="wrap">
<div class="funding-head">
<div class="section-head section-head--light">
<p class="eyebrow eyebrow--light">Funding Opportunity Tracker</p>
<h2>Find the call that actually fits the work.</h2>
<p>
We index open calls from the Helix & Horizon endowment and more than forty partner
institutions. Deadlines are verified every Monday, and the eligibility notes are written by
the programme officers who will read your application.
</p>
</div>
<p class="funding-note">
<strong>Updated weekly</strong>
Filter by discipline to see award ceilings, closing dates and eligibility at a glance.
</p>
</div>
<div class="filters" role="group" aria-label="Filter funding calls by discipline">
<button class="filter" data-filter="all" aria-pressed="true">All open calls</button>
<button class="filter" data-filter="climate" aria-pressed="false">Climate & Earth</button>
<button class="filter" data-filter="biomedical" aria-pressed="false">Biomedical</button>
<button class="filter" data-filter="physics" aria-pressed="false">Physics & Materials</button>
<button class="filter" data-filter="computational" aria-pressed="false">Computational</button>
<button class="filter" data-filter="education" aria-pressed="false">Education</button>
</div>
<div class="grant-grid" id="grantGrid" aria-live="polite"></div>
<p class="grant-count" id="grantCount"></p>
<noscript>
<p style="color:#A9BCC2;margin-top:24px;">
The funding tracker requires JavaScript. Write to <a href="mailto:funding@helixandhorizon.org" style="color:#E9A03B;">funding@helixandhorizon.org</a>
for the current list of open calls.
</p>
</noscript>
</div>
</section>
<!-- ============================ PUBLICATIONS + SIDEBAR ============================ -->
<section class="section" id="publications">
<div class="wrap">
<div class="pub-layout">
<div>
<div class="section-head reveal">
<p class="eyebrow">Recent Publications</p>
<h2>Reviewed twice. Published once.</h2>
<p>
Peer validation here is not a formality. Every paper below passed double-blind review and an
independent reproducibility check by a laboratory that did not author the work. Raw data,
analysis notebooks and reviewer reports are linked in each entry.
</p>
</div>
<div class="pub-list">
<article class="pub reveal">
<img src="https://picsum.photos/720/480" alt="Kelp canopy photographed underwater in a coastal survey" width="720" height="480">
<div>
<span class="kicker">Marine Systems</span>
<h3><a href="#publications">Nonlinear damping in coastal kelp canopies buffers wave energy during storm events</a></h3>
<div class="pub-meta">
<span>Journal of Marine Systems</span>
<span>Vol. 44, pp. 118–137</span>
<span>DOI 10.4821/jms.2025.044</span>
</div>
<p>
Five years of wave-gauge data across twelve restored kelp beds suggest that canopy
structure dissipates significantly more storm energy than linear models predict. The
authors publish their full sensor array calibration, including the two winters of
anomalous readings that shaped the final damping function.
</p>
<a class="link-arrow" href="#publications">Read Research <span aria-hidden="true">→</span></a>
</div>
</article>
<article class="pub reveal">
<img src="https://picsum.photos/720/481" alt="Cortical layer segmentation overlaid on a microscopy image" width="720" height="481">
<div>
<span class="kicker">Neuroimaging</span>
<h3><a href="#publications">Reproducible segmentation of murine cortical layers across four imaging platforms</a></h3>
<div class="pub-meta">
<span>Methods in Neuroscience</span>
<span>Vol. 19, e0241</span>
<span>DOI 10.4821/mn.2025.019</span>
</div>
<p>
Cross-platform variability has long undermined comparisons between cortical imaging
studies. This consensus protocol, validated on four instruments across three countries,
reduces inter-laboratory variance by 71% — and ships with a reference dataset for
calibration before a single animal is imaged.
</p>
<a class="link-arrow" href="#publications">Read Research <span aria-hidden="true">→</span></a>
</div>
</article>
<article class="pub reveal">
<img src="https://picsum.photos/720/482" alt="Soil samples arranged in a field laboratory for microbial analysis" width="720" height="482">
<div>
<span class="kicker">Soil Ecology</span>
<h3><a href="#publications">A field-deployable assay for soil microbial respiration with a two-hour turnaround</a></h3>
<div class="pub-meta">
<span>Applied Soil Ecology</span>
<span>Vol. 88, pp. 42–59</span>
<span>DOI 10.4821/ase.2025.088</span>
</div>
<p>
Laboratory respiration assays typically take five to seven days, which makes them
impractical for adaptive land management. The assay described here returns comparable
results in under two hours, and the authors report its failure modes as carefully as
its successes.
</p>
<a class="link-arrow" href="#publications">Read Research <span aria-hidden="true">→</span></a>
</div>
</article>
</div>
</div>
<!-- SIDEBAR -->
<aside class="sidebar" aria-label="Institute highlights">
<div class="side-card">
<h3>This Week's Breakthroughs</h3>
<ol class="breakthroughs">
<li>
<div>
<a href="#research">Room-temperature phonon confinement observed in a layered nitride</a>
<em>Physics & Materials · 3 min read</em>
</div>
</li>
<li>
<div>
<a href="#research">Gut microbiome diversity recovers within 14 months of dietary change</a>
<em>Biomedical · 5 min read</em>
</div>
</li>
<li>
<div>
<a href="#research">Open satellite archive reveals a decade of unrecorded glacial retreat</a>
<em>Climate & Earth · 4 min read</em>
</div>
</li>
<li>
<div>
<a href="#research">A classroom-tested way to teach statistical uncertainty in year 9</a>
<em>Education · 6 min read</em>
</div>
</li>
</ol>
</div>
<div class="side-card">
<h3>Grant Deadlines</h3>
<ul class="deadlines">
<li><a href="#funding">Quantum Sensing Pilot Awards</a><time>7 days</time></li>
<li><a href="#funding">Coastal Resilience Accelerator</a><time>12 days</time></li>
<li><a href="#funding">Classroom Evidence Fellowships</a><time>19 days</time></li>
<li><a href="#funding">Metamaterial Fabrication Call</a><time>21 days</time></li>
</ul>
</div>
<div class="side-card side-cta">
<h3>The Weekly Digest</h3>
<p>Three verified findings, one methods note and every deadline worth knowing. Sent Thursday.</p>
<form class="side-form" data-newsletter>
<label for="side-email" class="visually-hidden" style="position:absolute;left:-9999px;">Email address</label>
<input id="side-email" type="email" name="email" placeholder="you@institution.org" required>
<button class="btn btn--amber btn--sm" type="submit">Get Updates</button>
<p class="form-note">No tracking pixels. Unsubscribe in one click.</p>
</form>
</div>
</aside>
</div>
</div>
</section>
<!-- ============================ EDUCATION & CAREERS ============================ -->
<section class="section section--alt" id="education">
<div class="wrap">
<div class="edu-layout">
<div class="edu-visual reveal">
<img src="https://picsum.photos/800/1000" alt="An educator and a researcher co-designing a classroom experiment" width="800" height="1000">
<div class="edu-caption">
<strong>Educator Residency, cohort 12</strong>
41 teachers from 28 schools spent six weeks in partner laboratories this summer.
</div>
</div>
<div class="edu-intro reveal">
<p class="eyebrow">Career Development</p>
<h2 style="font-size:clamp(1.9rem,3.2vw,2.7rem);">Training the next cohort of rigorous researchers.</h2>
<p style="margin-top:18px;">
Rigorous science needs rigorous teaching. Our programmes pair working researchers with
educators and early-career scientists, with a deliberate emphasis on statistical literacy,
data visualisation and the unglamorous craft of replication. Fellows leave with a publication
record, a teaching portfolio and a network that outlasts the funding.
</p>
<div class="programs">
<article class="program">
<span class="icon" aria-hidden="true">
<svg viewBox="0 0 24 24"><path d="M12 3 3 7.5 12 12l9-4.5L12 3Z"/><path d="M3 12l9 4.5L21 12"/><path d="M3 16.5 12 21l9-4.5"/></svg>
</span>
<div>
<h3>Postdoctoral Fellowship</h3>
<p>
Three years of fully funded independent research with a dedicated mentor, laboratory
access at a partner institution, and a guaranteed publication pathway regardless of
outcome. Open to researchers within four years of the doctorate.
</p>
</div>
<span class="dur">3 years</span>
</article>
<article class="program">
<span class="icon" aria-hidden="true">
<svg viewBox="0 0 24 24"><path d="M4 19V5"/><path d="M4 19h16"/><path d="M8 16V9"/><path d="M13 16V7"/><path d="M18 16v-4"/></svg>
</span>
<div>
<h3>Methods Intensive</h3>
<p>
A six-week summer programme in applied statistics, reproducible workflows and data
visualisation. Participants rebuild a published analysis from raw data and defend their
choices in front of the original authors.
</p>
</div>
<span class="dur">6 weeks</span>
</article>
<article class="program">
<span class="icon" aria-hidden="true">
<svg viewBox="0 0 24 24"><path d="M3 7h18v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z"/><path d="M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><path d="M3 12h18"/></svg>
</span>
<div>
<h3>Educator Residency</h3>
<p>
Classroom-ready curricula co-designed by teachers and researchers, complete with
low-cost experiment kits, assessment rubrics and a termly lecture series delivered in
school. Stipends cover release time.
</p>
</div>
<span class="dur">Rolling</span>
</article>
</div>
<div style="margin-top:30px;display:flex;gap:14px;flex-wrap:wrap;">
<a class="btn btn--primary" href="#updates">Apply for a Fellowship</a>
<a class="btn btn--ghost" href="#contact">Attend a Lecture</a>
</div>
</div>
</div>
</div>
</section>
<!-- ============================ COLLABORATION NEWS ============================ -->
<section class="section" id="news">
<div class="wrap">
<div class="section-head reveal">
<p class="eyebrow">Collaboration News</p>
<h2>Discovery is rarely solitary work.</h2>
<p>
These are the partnerships, consortiums and shared facilities currently moving work forward
across our network — including the ones that did not produce the result anyone expected.
</p>
</div>
<div class="news-grid">
<article class="news-card reveal">
<img src="https://picsum.photos/640/420" alt="Researchers from two institutions reviewing shared instrument data" width="640" height="420">
<div class="news-body">
<span class="kicker">Consortium</span>
<h3>Six laboratories agree a common calibration standard for benchtop spectrometers</h3>
<p>
After eighteen months of ring trials, the newly signed protocol reduces inter-laboratory
variance enough that results from different sites can finally be pooled. The reference
materials are distributed free to any non-commercial laboratory.
</p>
<a class="link-arrow" href="#contact">Read the announcement <span aria-hidden="true">→</span></a>
</div>
</article>
<article class="news-card reveal">
<img src="https://picsum.photos/641/420" alt="A shared open data platform displayed across multiple screens" width="641" height="420">
<div class="news-body">
<span class="kicker">Open Data</span>
<h3>Pacific Marine Observatory opens a decade of continuous sensor records</h3>
<p>
2.4 billion observations, including instrument faults and gap periods, are now queryable
without registration. Three research groups have already published reanalyses that
contradict the original 2019 seasonal model.
</p>
<a class="link-arrow" href="#publications">Read Research <span aria-hidden="true">→</span></a>
</div>
</article>
<article class="news-card reveal">
<img src="https://picsum.photos/642/420" alt="An early-career researcher presenting at a partner institution seminar" width="642" height="420">
<div class="news-body">
<span class="kicker">People</span>
<h3>Halden Centre joins the early-career exchange, adding clinical placements</h3>
<p>
From January, fellows will be able to spend a six-month placement inside a working clinical
research unit — an arrangement designed to close the gap between laboratory measurement and
patient-level evidence.
</p>
<a class="link-arrow" href="#education">Explore the programme <span aria-hidden="true">→</span></a>
</div>
</article>
</div>
</div>
</section>
<!-- ============================ TESTIMONIALS ============================ -->
<section class="section section--alt" aria-labelledby="voices-heading">
<div class="wrap">
<div class="section-head reveal">
<p class="eyebrow">From the network</p>
<h2 id="voices-heading">What the people doing the work say.</h2>
</div>
<div class="quotes">
<figure class="quote reveal">
<blockquote>
The reproducibility check was uncomfortable and it made the paper better. Two reviewers
rebuilt our alignment pipeline from scratch and found a rounding error we had carried for
months. That is the whole point.
</blockquote>
<figcaption>
<img src="https://i.pravatar.cc/120?u=amara-okonjo" alt="Portrait of Dr. Amara Okonjo" width="120" height="120">
<span>
<strong>Dr. Amara Okonjo</strong>
<span>Structural Biologist, Northfield University</span>
</span>
</figcaption>
</figure>
<figure class="quote reveal">
<blockquote>
Most funding panels ask what you will discover. This one asked how I would know if I was
wrong. It is the only application I have written where the methods section was the reason
I got the award.
</blockquote>
<figcaption>
<img src="https://i.pravatar.cc/120?u=felix-marchetti" alt="Portrait of Dr. Felix Marchetti" width="120" height="120">
<span>
<strong>Dr. Felix Marchetti</strong>
<span>Programme Director, Bracken Institute</span>
</span>
</figcaption>
</figure>
<figure class="quote reveal">
<blockquote>
I spent six weeks in a working lab and came back with three lessons I now teach every term.
My students plot uncertainty before they plot a result — that shift alone changed how they
read the news.
</blockquote>
<figcaption>
<img src="https://i.pravatar.cc/120?u=priya-raghunathan" alt="Portrait of Priya Raghunathan" width="120" height="120">
<span>
<strong>Priya Raghunathan</strong>
<span>Secondary Science Educator, Ledger Academy</span>
</span>
</figcaption>
</figure>
</div>
</div>
</section>
<!-- ============================ FAQ ============================ -->
<section class="section" aria-labelledby="faq-heading">
<div class="wrap">
<div class="faq-layout">
<div class="section-head reveal">
<p class="eyebrow">Questions</p>
<h2 id="faq-heading">How the institute actually works.</h2>
<p>
A short, honest account of our review process, our funding terms and what you may do with
the material we publish.
</p>
<p style="margin-top:22px;">
<a class="link-arrow" href="#contact">Ask something else <span aria-hidden="true">→</span></a>
</p>
</div>
<div class="faq reveal">
<details open>
<summary>How does peer validation work at Helix & Horizon?</summary>
<div class="answer">
<p>
Every submission goes through double-blind review by two external specialists, followed by
an independent replication attempt in a laboratory that did not author the work. Reviewer
reports and replication notes are published alongside the accepted paper. Where replication
is not feasible — field studies with unique sites, for instance — the authors must publish a
detailed protocol and a stated limitation, and the paper is labelled accordingly.
</p>
</div>
</details>
<details>
<summary>Is everything you publish open access?</summary>
<div class="answer">
<p>
Yes. All publications, datasets and analysis notebooks are released under a CC BY 4.0 licence
with no embargo period and no article processing charge. We are funded by endowment and
philanthropic grants rather than subscriptions, which is what allows us to keep it that way.
</p>
</div>
</details>
<details>
<summary>Who is eligible for the early-career grants?</summary>
<div class="answer">
<p>
Researchers within four years of completing a doctorate, or within six years of a first
academic appointment, at any institution worldwide. There is no citizenship requirement and
no minimum publication record. Applications are assessed on the clarity of the research
question and the strength of the proposed falsification test, not on prior output volume.
</p>
</div>
</details>
<details>
<summary>Can educators use your materials in the classroom?</summary>
<div class="answer">
<p>
Entirely. Curricula, slide decks, assessment rubrics and experiment kit specifications are
free to adapt, print and redistribute under the same open licence. We ask only that you keep
the attribution line intact and tell us what did not work — the feedback form takes about
ninety seconds and directly shapes the next revision.
</p>
</div>
</details>
<details>
<summary>How do I propose a collaboration or a shared facility?</summary>
<div class="answer">
<p>
Write to <a href="mailto:partnerships@helixandhorizon.org" style="color:var(--teal-deep);font-weight:600;">partnerships@helixandhorizon.org</a>
with a two-page outline: the question, the method, the data you can share and what each party
contributes. Partnership proposals are reviewed monthly by the research committee, and we
respond to every one — including the ones we decline, with reasons.
</p>
</div>
</details>
</div>
</div>
</div>
</section>
<!-- ============================ CTA BAND ============================ -->
<section class="cta-band" id="updates">
<div class="wrap">
<div>
<p class="eyebrow eyebrow--light">Stay current</p>
<h2>Get Updates from the bench, the field and the classroom.</h2>
<p>
The Weekly Digest delivers three verified findings, one methods note and every funding deadline
worth knowing. Written by our editors, not generated from a press release feed.
</p>
</div>
<div>
<form class="cta-form" data-newsletter>
<label for="cta-email" style="position:absolute;left:-9999px;">Email address</label>
<input id="cta-email" type="email" name="email" placeholder="Enter your email address" required>
<button class="btn btn--amber" type="submit">Get Updates</button>
<p class="form-note">One email each Thursday. No tracking pixels, no third-party sharing.</p>
</form>
<div class="form-success" role="status">Thank you — check your inbox to confirm your subscription.</div>
</div>
</div>
</section>
</main>
<!-- ============================ FOOTER ============================ -->
<footer class="site-footer" id="contact">
<div class="wrap">
<div class="footer-grid">
<div>
<div class="footer-brand">
<img src="https://placehold.co/96x96/0B3B3C/F4EFE6?text=HH&font=montserrat" alt="Helix & Horizon logo" width="96" height="96">
<span>
<span class="brand-name">Helix & Horizon</span>
<span class="brand-tag">Peer-validated science, openly shared</span>
</span>
</div>
<p>
An independent research institute and open science review. We fund early-career investigators,
publish without paywalls and put evidence in front of the people who use it.
</p>
<ul class="footer-contact">
<li>
<span class="ico" aria-hidden="true">◎</span>
<span>14 Kestrel Quay, Bristol BS1 4TR, United Kingdom</span>
</li>
<li>
<span class="ico" aria-hidden="true">✉</span>
<a href="mailto:hello@helixandhorizon.org">hello@helixandhorizon.org</a>
</li>
<li>
<span class="ico" aria-hidden="true">☏</span>
<a href="tel:+441174960288">+44 (0)117 496 0288</a>
</li>
</ul>
</div>
<div>
<h4>Research</h4>
<ul class="footer-links">
<li><a href="#research">Innovation Spotlight</a></li>
<li><a href="#publications">Publications</a></li>
<li><a href="#publications">Open datasets</a></li>
<li><a href="#funding">Funding tracker</a></li>
<li><a href="#news">Collaboration news</a></li>
</ul>
</div>
<div>
<h4>Institute</h4>
<ul class="footer-links">
<li><a href="#about">About us</a></li>
<li><a href="#education">Education & careers</a></li>
<li><a href="#education">Lecture series</a></li>
<li><a href="#contact">Careers</a></li>
<li><a href="#contact">Press enquiries</a></li>
</ul>
</div>
<div>
<h4>Stay in touch</h4>
<ul class="footer-links">
<li><a href="#updates">The Weekly Digest</a></li>
<li><a href="#contact">Partnership proposals</a></li>
<li><a href="#funding">Grant newsletter</a></li>
<li><a href="#contact">Media kit</a></li>
</ul>
<div class="social" aria-label="Social media">
<a href="#contact" aria-label="Helix and Horizon on X">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M17.5 3h3.2l-7 8 8.2 10h-6.4l-5-6.1L4.8 21H1.6l7.5-8.6L1.2 3h6.6l4.5 5.6L17.5 3Zm-1.1 16.1h1.8L7.7 4.8H5.8l10.6 14.3Z"/></svg>
</a>
<a href="#contact" aria-label="Helix and Horizon on LinkedIn">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM3 9h4v12H3V9Zm7 0h3.8v1.7h.05c.53-1 1.83-2.05 3.77-2.05C21.1 8.65 22 11 22 14.1V21h-4v-6.1c0-1.46-.03-3.34-2.03-3.34-2.03 0-2.34 1.59-2.34 3.24V21h-4V9Z"/></svg>
</a>
<a href="#contact" aria-label="Helix and Horizon on YouTube">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M23 12s0-3.4-.44-5.03a2.6 2.6 0 0 0-1.83-1.84C19.1 4.7 12 4.7 12 4.7s-7.1 0-8.73.43a2.6 2.6 0 0 0-1.83 1.84C1 8.6 1 12 1 12s0 3.4.44 5.03a2.6 2.6 0 0 0 1.83 1.84C4.9 19.3 12 19.3 12 19.3s7.1 0 8.73-.43a2.6 2.6 0 0 0 1.83-1.84C23 15.4 23 12 23 12ZM9.75 15.02V8.98L15.5 12l-5.75 3.02Z"/></svg>
</a>
<a href="#contact" aria-label="Helix and Horizon RSS feed">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 4h2.2a13.8 13.8 0 0 1 13.8 13.8V20h-3v-2.2A10.8 10.8 0 0 0 6.2 7H4V4Zm0 6h2.2A7.8 7.8 0 0 1 14 17.8V20h-3v-2.2A4.8 4.8 0 0 0 6.2 13H4v-3Zm2.5 6.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5Z"/></svg>
</a>
</div>
</div>
</div>
<div class="footer-bottom">
<span>© <span id="year">2025</span> Helix & Horizon Institute. All rights reserved. Registered charity no. 1094882.</span>
<ul>
<li><a href="#contact">Privacy</a></li>
<li><a href="#contact">Terms</a></li>
<li><a href="#contact">Accessibility</a></li>
<li><a href="#contact">Cookie preferences</a></li>
</ul>
</div>
</div>
</footer>
<script>
(function () {
'use strict';
/* ---------- current year ---------- */
var yearEl = document.getElementById('year');
if (yearEl) yearEl.textContent = new Date().getFullYear();
/* ---------- mobile navigation ---------- */
var toggle = document.getElementById('navToggle');
var nav = document.getElementById('primary-nav');
if (toggle && nav) {
toggle.addEventListener('click', function () {
var open = nav.classList.toggle('is-open');
toggle.setAttribute('aria-expanded', open ? 'true' : 'false');
});
nav.addEventListener('click', function (e) {
if (e.target.tagName === 'A') {
nav.classList.remove('is-open');
toggle.setAttribute('aria-expanded', 'false');
}
});
}
/* ---------- funding opportunity tracker ---------- */
var GRANTS = [
{
field: 'climate',
label: 'Climate & Earth',
title: 'Quantum Sensing Pilot Awards',
funder: 'Bracken Institute of Technology',
amount: '$150,000',
days: 7,
eligibility: 'Proof-of-concept stage; 18-month runway. Instrument access included.'
},
{
field: 'climate',
label: 'Climate & Earth',
title: 'Coastal Resilience Accelerator Grant',
funder: 'Pacific Marine Observatory',
amount: '$480,000',
days: 12,
eligibility: 'Early-career principal investigator; three-year term; field site required.'
},
{
field: 'education',
label: 'Education',
title: 'Classroom Evidence Fellowships',
funder: 'Helix & Horizon Education Trust',
amount: '$65,000',
days: 19,
eligibility: 'STEM educators in school or higher-education settings. Release time funded.'
},
{
field: 'physics',
label: 'Physics & Materials',
title: 'Metamaterial Fabrication Call',
funder: 'Helix & Horizon Endowment',
amount: '$185,000',
days: 21,
eligibility: 'Cleanroom and lithography access at partner facilities included in the award.'
},
{
field: 'biomedical',
label: 'Biomedical',
title: 'Open Methods Fund for Structural Biology',
funder: 'Helix & Horizon Endowment',
amount: '$220,000',
days: 26,
eligibility: 'Any career stage. Open-access and data-release mandate applies.'
},
{
field: 'biomedical',
label: 'Biomedical',
title: 'Neuroimaging Data Sharing Consortium',
funder: 'Halden Centre for Medical Research',
amount: '$275,000',
days: 33,
eligibility: 'Consortium applications welcome; contribution of a validated dataset required.'
},
{
field: 'computational',
label: 'Computational',
title: 'Reproducibility in Computational Biology',
funder: 'The Ledger Foundation',
amount: '$310,000',
days: 41,
eligibility: 'Software-heavy proposals encouraged. Independent replication plan mandatory.'
},
{
field: 'climate',
label: 'Climate & Earth',
title: 'Soil Carbon Measurement Initiative',
funder: 'Northfield University',
amount: '$395,000',
days: 54,
eligibility: 'Field sites in temperate or boreal zones; two-year measurement programme.'
}
];
var grid = document.getElementById('grantGrid');
var countEl = document.getElementById('grantCount');
var filters = document.querySelectorAll('[data-filter]');
var activeFilter = 'all';
function formatDeadline(days) {
var d = new Date();
d.setDate(d.getDate() + days);
return d.toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' });
}
function renderGrants() {
if (!grid) return;
var visible = GRANTS.filter(function (g) {
return activeFilter === 'all' || g.field === activeFilter;
}).sort(function (a, b) { return a.days - b.days; });
grid.innerHTML = visible.map(function (g) {
var soon = g.days <= 14;
return '' +
'<article class="grant">' +
'<div class="grant-top">' +
'<span class="pill">' + g.label.replace('&', '&') + '</span>' +
(soon ? '<span class="soon">Closing soon</span>' : '') +
'</div>' +
'<h3>' + g.title + '</h3>' +
'<p class="funder">' + g.funder + '</p>' +
'<div class="grant-figures">' +
'<div><span>Award</span><strong>' + g.amount + '</strong></div>' +
'<div><span>Closes</span><strong>' + formatDeadline(g.days) + '</strong></div>' +
'</div>' +
'<p class="elig">' + g.eligibility + '</p>' +
'<a class="grant-link" href="#contact">View call details <span aria-hidden="true">→</span></a>' +
'</article>';
}).join('');
if (countEl) {
countEl.innerHTML = 'Showing <strong>' + visible.length + '</strong> of <strong>' +
GRANTS.length + '</strong> open calls · deadlines verified weekly.';
}
}
Array.prototype.forEach.call(filters, function (btn) {
btn.addEventListener('click', function () {
activeFilter = btn.getAttribute('data-filter');
Array.prototype.forEach.call(filters, function (b) {
b.setAttribute('aria-pressed', b === btn ? 'true' : 'false');
});
renderGrants();
});
});
renderGrants();
/* ---------- newsletter forms ---------- */
var forms = document.querySelectorAll('[data-newsletter]');
Array.prototype.forEach.call(forms, function (form) {
form.addEventListener('submit', function (e) {
e.preventDefault();
var input = form.querySelector('input[type="email"]');
if (!input || !input.value) return;
var note = form.parentNode.querySelector('.form-success');
if (note) {
note.classList.add('is-visible');
note.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}
input.value = '';
var btn = form.querySelector('button[type="submit"]');
if (btn) {
var original = btn.textContent;
btn.textContent = 'Subscribed ✓';
btn.disabled = true;
setTimeout(function () {
btn.textContent = original;
btn.disabled = false;
}, 4000);
}
});
});
/* ---------- scroll reveal ---------- */
var reveals = document.querySelectorAll('.reveal');
if ('IntersectionObserver' in window) {
var io = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
entry.target.classList.add('is-in');
io.unobserve(entry.target);
}
});
}, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' });
Array.prototype.forEach.call(reveals, function (el) { io.observe(el); });
} else {
Array.prototype.forEach.call(reveals, function (el) { el.classList.add('is-in'); });
}
})();
</script>
<script>document.documentElement.classList.add('js');</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:08:50.434Z",
"url": "https://benchmark.aimac.invalid/8afab9aef4689035a132b44a14cde3eab43a11fc5da13b07efe749ac858ca28c.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-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "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": []
},
{
"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": "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": "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": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "svg-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
"help": "<svg> elements with an img role must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "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": []
},
{
"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": []
},
{
"id": "valid-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2aa",
"wcag312",
"TTv5",
"TT11.b",
"EN-301-549",
"EN-9.3.1.2",
"ACT"
],
"description": "Ensure lang attributes have valid values",
"help": "lang attribute must have a valid value",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
"nodes": []
},
{
"id": "video-caption",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag122",
"section508",
"section508.22.a",
"TTv5",
"TT17.a",
"EN-301-549",
"EN-9.1.2.2"
],
"description": "Ensure <video> elements have captions",
"help": "<video> elements must have captions",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
"nodes": []
},
{
"id": "no-autoplay-audio",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag142",
"TTv5",
"TT2.a",
"EN-301-549",
"EN-9.1.4.2",
"ACT"
],
"description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
"help": "<video> or <audio> elements must not play automatically",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
"nodes": []
}
],
"passes": [
{
"id": "aria-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-allowed-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attributes are used correctly for the defined role"
}
],
"none": [
{
"id": "aria-unsupported-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute is supported"
}
],
"impact": null,
"html": "<a class=\"brand\" href=\"#top\" aria-label=\"Helix and Horizon \u2014 home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-conditional-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"none": [],
"impact": null,
"html": "<a class=\"brand\" href=\"#top\" aria-label=\"Helix and Horizon \u2014 home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "deprecatedrole",
"data": null,
"relatedNodes": [],
"impact": "minor",
"message": "ARIA role is not deprecated"
}
],
"impact": null,
"html": "<div class=\"filters\" role=\"group\" aria-label=\"Filter funding calls by discipline\">",
"target": [
".filters"
]
}
]
},
{
"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": "<span aria-hidden=\"true\"></span>",
"target": [
"#navToggle > span[aria-hidden=\"true\"]"
]
}
]
},
{
"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=\"Helix and Horizon \u2014 home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-required-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "All required ARIA attributes are present"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<div class=\"filters\" role=\"group\" aria-label=\"Filter funding calls by discipline\">",
"target": [
".filters"
]
}
]
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "invalidrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is valid"
},
{
"id": "abstractrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Abstract roles are not used"
},
{
"id": "unsupportedrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is supported"
}
],
"impact": null,
"html": "<div class=\"filters\" role=\"group\" aria-label=\"Filter funding calls by discipline\">",
"target": [
".filters"
]
}
]
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-valid-attr-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute values are valid"
},
{
"id": "aria-errormessage",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
},
{
"id": "aria-level",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-level values are valid"
}
],
"none": [],
"impact": null,
"html": "<a class=\"brand\" href=\"#top\" aria-label=\"Helix and Horizon \u2014 home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-valid-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute name is valid"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a class=\"brand\" href=\"#top\" aria-label=\"Helix and Horizon \u2014 home\">",
"target": [
".brand"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button class=\"filter\" data-filter=\"all\" aria-pressed=\"true\">All open calls</button>",
"target": [
"button[data-filter=\"all\"]"
]
}
]
},
{
"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>Evidence, examined. <em>Discovery,</em> distributed.</h1>",
"target": [
"h1"
]
},
{
"html": "<h2>An institute built around verification, not press releases.</h2>",
"target": [
"#about > .wrap > .section-head.reveal > h2"
]
},
{
"html": "<h3>Open by default</h3>",
"target": [
".principle:nth-child(1) > h3"
]
},
{
"html": "<h3>Reproduced before published</h3>",
"target": [
".principle:nth-child(2) > h3"
]
},
{
"html": "<h3>Written for the people who use it</h3>",
"target": [
".principle:nth-child(3) > h3"
]
},
{
"html": "<h2>The methods work that quietly changes what the field can attempt next.</h2>",
"target": [
"#research > .wrap > .section-head.reveal > h2"
]
},
{
"html": "<h3>A cryo-EM pipeline that cuts structural biology's bottleneck from months to days</h3>",
"target": [
".spotlight-main > h3"
]
},
{
"html": "<h4>Low-cost nitrate sensors hold calibration in tidal water</h4>",
"target": [
".mini:nth-child(1) > h4"
]
},
{
"html": "<h4>Bayesian trial designs that stop earlier without losing power</h4>",
"target": [
".mini:nth-child(2) > h4"
]
},
{
"html": "<h2>Find the call that actually fits the work.</h2>",
"target": [
".section-head--light > h2"
]
},
{
"html": "<h3>Quantum Sensing Pilot Awards</h3>",
"target": [
".grant:nth-child(1) > h3"
]
},
{
"html": "<h3>Coastal Resilience Accelerator Grant</h3>",
"target": [
".grant:nth-child(2) > h3"
]
},
{
"html": "<h3>Classroom Evidence Fellowships</h3>",
"target": [
".grant:nth-child(3) > h3"
]
},
{
"html": "<h3>Metamaterial Fabrication Call</h3>",
"target": [
".grant:nth-child(4) > h3"
]
},
{
"html": "<h3>Open Methods Fund for Structural Biology</h3>",
"target": [
".grant:nth-child(5) > h3"
]
},
{
"html": "<h3>Neuroimaging Data Sharing Consortium</h3>",
"target": [
".grant:nth-child(6) > h3"
]
},
{
"html": "<h3>Reproducibility in Computational Biology</h3>",
"target": [
".grant:nth-child(7) > h3"
]
},
{
"html": "<h3>Soil Carbon Measurement Initiative</h3>",
"target": [
".grant:nth-child(8) > h3"
]
},
{
"html": "<h2>Reviewed twice. Published once.</h2>",
"target": [
".pub-layout > div > .section-head.reveal > h2"
]
},
{
"html": "<h3><a href=\"#publications\">Nonlinear damping in coastal kelp canopies buffers wave energy during storm events</a></h3>",
"target": [
".pub:nth-child(1) > div > h3"
]
},
{
"html": "<h3><a href=\"#publications\">Reproducible segmentation of murine cortical layers across four imaging platforms</a></h3>",
"target": [
".pub:nth-child(2) > div > h3"
]
},
{
"html": "<h3><a href=\"#publications\">A field-deployable assay for soil microbial respiration with a two-hour turnaround</a></h3>",
"target": [
".pub:nth-child(3) > div > h3"
]
},
{
"html": "<h3>This Week's Breakthroughs</h3>",
"target": [
".side-card:nth-child(1) > h3"
]
},
{
"html": "<h3>Grant Deadlines</h3>",
"target": [
".side-card:nth-child(2) > h3"
]
},
{
"html": "<h3>The Weekly Digest</h3>",
"target": [
".side-cta > h3"
]
},
{
"html": "<h2 style=\"font-size:clamp(1.9rem,3.2vw,2.7rem);\">Training the next cohort of rigorous researchers.</h2>",
"target": [
".edu-intro > h2"
]
},
{
"html": "<h3>Postdoctoral Fellowship</h3>",
"target": [
".program:nth-child(1) > div > h3"
]
},
{
"html": "<h3>Methods Intensive</h3>",
"target": [
".program:nth-child(2) > div > h3"
]
},
{
"html": "<h3>Educator Residency</h3>",
"target": [
".program:nth-child(3) > div > h3"
]
},
{
"html": "<h2>Discovery is rarely solitary work.</h2>",
"target": [
"#news > .wrap > .section-head.reveal > h2"
]
},
{
"html": "<h3>Six laboratories agree a common calibration standard for benchtop spectrometers</h3>",
"target": [
".news-card:nth-child(1) > .news-body > h3"
]
},
{
"html": "<h3>Pacific Marine Observatory opens a decade of continuous sensor records</h3>",
"target": [
".news-card:nth-child(2) > .news-body > h3"
]
},
{
"html": "<h3>Halden Centre joins the early-career exchange, adding clinical placements</h3>",
"target": [
".news-card:nth-child(3) > .news-body > h3"
]
},
{
"html": "<h2 id=\"voices-heading\">What the people doing the work say.</h2>",
"target": [
"#voices-heading"
]
},
{
"html": "<h2 id=\"faq-heading\">How the institute actually works.</h2>",
"target": [
"#faq-heading"
]
},
{
"html": "<h2>Get Updates from the bench, the field and the classroom.</h2>",
"target": [
"#updates > .wrap > div:nth-child(1) > h2"
]
},
{
"html": "<h4>Research</h4>",
"target": [
"div:nth-child(2) > h4"
]
},
{
"html": "<h4>Institute</h4>",
"target": [
"div:nth-child(3) > h4"
]
},
{
"html": "<h4>Stay in touch</h4>",
"target": [
"div:nth-child(4) > h4"
]
}
],
"impact": "serious",
"message": "Page has a heading"
},
{
"id": "landmark",
"data": null,
"relatedNodes": [
{
"html": "<main id=\"top\">",
"target": [
"#top"
]
}
],
"impact": "serious",
"message": "Page has a landmark region"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\" class=\"js\">",
"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": "#a9bcc2",
"bgColor": "#0b1f2a",
"contrastRatio": 8.57,
"fontSize": "9.4pt (12.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 8.57"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<div><strong>Open access</strong> \u00b7 Double-blind peer review \u00b7 ISSN 2147-8831</div>",
"target": [
".utility > .wrap > div:nth-child(1)"
]
}
]
},
{
"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": [
{
"any": [],
"all": [],
"none": [
{
"id": "structured-dlitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "When not empty, element has both <dt> and <dd> elements"
},
{
"id": "only-dlitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "dl element only has direct children that are allowed inside; <dt>, <dd>, or <div> elements"
}
],
"impact": null,
"html": "<dl class=\"hero-stats\">",
"target": [
"dl"
]
}
]
},
{
"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": [
{
"any": [
{
"id": "dlitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Description list item has a <dl> parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<dt>Active research programmes</dt>",
"target": [
"div:nth-child(1) > dt"
]
}
]
},
{
"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\" class=\"js\">",
"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": "primary-nav",
"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=\"nav\" id=\"primary-nav\" aria-label=\"Primary\">",
"target": [
"#primary-nav"
]
}
]
},
{
"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=\"side-email\" class=\"visually-hidden\" style=\"position:absolute;left:-9999px;\">Email address</label>",
"target": [
".visually-hidden"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<input id=\"side-email\" type=\"email\" name=\"email\" placeholder=\"you@institution.org\" required=\"\">",
"target": [
"#side-email"
]
}
]
},
{
"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\" class=\"js\">",
"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\" class=\"js\">",
"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/0B3B3C/F4EFE6?text=HH&font=montserrat\" alt=\"Helix & Horizon logo\" width=\"96\" height=\"96\">",
"target": [
".brand > img[alt=\"Helix & Horizon logo\"][width=\"96\"][height=\"96\"]"
]
}
]
},
{
"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": "explicit-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"side-email\" class=\"visually-hidden\" style=\"position:absolute;left:-9999px;\">Email address</label>",
"target": [
".visually-hidden"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
},
{
"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 id=\"side-email\" type=\"email\" name=\"email\" placeholder=\"you@institution.org\" required=\"\">",
"target": [
"#side-email"
]
}
]
},
{
"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 href=\"#publications\">Institutional login</a>",
"target": [
".utility-links > a[href$=\"#publications\"]"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul>\n <li>Northfield University</li>\n <li>Bracken Institute of Technology</li>\n <li>Pacific Marine Observatory</li>\n <li>Halden Centre for Medical Research</li>\n <li>The Ledger Foundation</li>\n </ul>",
"target": [
".wrap > ul"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li>Northfield University</li>",
"target": [
".wrap > ul > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://placehold.co/96x96/0B3B3C/F4EFE6?text=HH&font=montserrat\" alt=\"Helix & Horizon logo\" width=\"96\" height=\"96\">",
"target": [
".brand > img[alt=\"Helix & Horizon logo\"][width=\"96\"][height=\"96\"]"
]
}
]
},
{
"id": "summary-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure summary elements have discernible text",
"help": "Summary elements must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<summary>How does peer validation work at Helix & Horizon?</summary>",
"target": [
"details[open=\"\"] > summary"
]
}
]
},
{
"id": "target-size",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag22aa",
"wcag258"
],
"description": "Ensure touch targets have sufficient size and space",
"help": "All touch targets must be 24px large, or leave sufficient space",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#publications\">Institutional login</a>",
"target": [
".utility-links > a[href$=\"#publications\"]"
]
}
]
}
],
"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=\"social\" aria-label=\"Social media\">",
"target": [
".social"
],
"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": {
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": "pseudoContent",
"expectedContrastRatio": "4.5:1"
},
"relatedNodes": [
{
"html": "<section class=\"hero\">",
"target": [
".hero"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a pseudo element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"eyebrow\">Independent institute & review \u00b7 Est. 1998</p>",
"target": [
".hero-copy > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a pseudo element"
}
]
}
],
"violations": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e9a03b",
"bgColor": "#ffffff",
"contrastRatio": 2.19,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-card\">",
"target": [
".side-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.19 (foreground color: #e9a03b, background color: #ffffff, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<time>7 days</time>",
"target": [
"li:nth-child(1) > time"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.19 (foreground color: #e9a03b, background color: #ffffff, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e9a03b",
"bgColor": "#ffffff",
"contrastRatio": 2.19,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-card\">",
"target": [
".side-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.19 (foreground color: #e9a03b, background color: #ffffff, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<time>12 days</time>",
"target": [
"li:nth-child(2) > time"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.19 (foreground color: #e9a03b, background color: #ffffff, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e9a03b",
"bgColor": "#ffffff",
"contrastRatio": 2.19,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-card\">",
"target": [
".side-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.19 (foreground color: #e9a03b, background color: #ffffff, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<time>19 days</time>",
"target": [
"li:nth-child(3) > time"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.19 (foreground color: #e9a03b, background color: #ffffff, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e9a03b",
"bgColor": "#ffffff",
"contrastRatio": 2.19,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-card\">",
"target": [
".side-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.19 (foreground color: #e9a03b, background color: #ffffff, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<time>21 days</time>",
"target": [
"li:nth-child(4) > time"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.19 (foreground color: #e9a03b, background color: #ffffff, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#5a6b72",
"bgColor": "#e5e4df",
"contrastRatio": 4.36,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<header class=\"site-header\">",
"target": [
"header"
]
},
{
"html": "<article class=\"grant\">",
"target": [
".grant:nth-child(1)"
]
},
{
"html": "<section class=\"funding\" id=\"funding\">",
"target": [
"#funding"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.36 (foreground color: #5a6b72, background color: #e5e4df, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"brand-tag\">Peer-validated science, openly shared</span>",
"target": [
".brand > span > .brand-tag"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.36 (foreground color: #5a6b72, background color: #e5e4df, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 11227
},
{
"y": 576,
"height": 11227
},
{
"y": 1152,
"height": 11227
},
{
"y": 1728,
"height": 11227
},
{
"y": 2304,
"height": 11227
},
{
"y": 2880,
"height": 11227
},
{
"y": 3456,
"height": 11227
},
{
"y": 4032,
"height": 11227
},
{
"y": 4608,
"height": 11227
},
{
"y": 5184,
"height": 11227
},
{
"y": 5760,
"height": 11227
},
{
"y": 6336,
"height": 11227
},
{
"y": 6912,
"height": 11227
},
{
"y": 7488,
"height": 11227
},
{
"y": 8064,
"height": 11227
},
{
"y": 8640,
"height": 11227
},
{
"y": 9216,
"height": 11227
},
{
"y": 9792,
"height": 11227
},
{
"y": 10368,
"height": 11227
},
{
"y": 10507,
"height": 11227
}
],
"scans": 21,
"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 "Science" 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: "Science"
- Description: Scientific research, discoveries, STEM education, and science news.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Science" 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: "Publications", "About", "Contact".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Science" category. Consider themes similar to: "Innovation Spotlight", "Career Development", "Collaboration News".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "empirical evidence", "peer validation", "data visualization".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Get Updates", "Attend Lecture", "Read Research".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Science" sector. Ideas similar but not limited to: "funding opportunity tracker".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "publication highlights", "latest breakthroughs", "grant deadlines".
- **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.