Meta Muse Spark Open – News Weather Information

via Modal · Generated

  • AIMAC Debt 29.09
  • Cost $0.05
  • Total Violations 29
  • HTML Size 37 KB
  • Em Dashes 23

Screenshot

View Meta Muse Spark Open News Weather Information page View Live Page

Accessibility Issues Found

16 Critical 13 Serious

  • color-contrast serious 13 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <span class="bg-accent px-3 py-2.5 font-bold shrink-0">Live Briefing</span>
  • image-alt critical 15 instances

    Images must have alternative text

    Example HTML <img src="https://i.pravatar.cc/40?u=sarah" class="w-8 h-8 rounded-full">
  • label critical 1 instance

    Form elements must have labels

    Example HTML <input type="range" min="0" max="100" value="34" class="flex-1 range-thumb accent-white">

Artifacts

View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>The Meridian Ledger — Clarity in Every Forecast. Truth in Every Story.</title>
<script src="https://cdn.tailwindcss.com"></script>
<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,ital,wght@9..144,0,700;9..144,1,700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet">
<script>tailwind.config={
  theme:{extend:{
    fontFamily:{serif:['Fraunces','serif'], sans:['Inter','sans-serif'], mono:['JetBrains Mono','monospace']},
    colors:{
      ink:'#0F172A',
      paper:'#FFFBF5',
      line:'#E7E0D6',
      accent:'#FF3B30',
      teal:'#0E7490',
      mustard:'#F59E0B',
    }
  }}
}</script>
<style>
*{scroll-behavior:smooth}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:99px}
.ticker-track{animation:ticker 40s linear infinite}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.range-thumb::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:999px;background:#0F172A;border:2px solid white;box-shadow:0 1px 4px rgba(0,0,0,.2);cursor:pointer}
</style>
</head>
<body class="bg-paper text-ink font-sans antialiased selection:bg-accent selection:text-white">
<!-- Breaking Ticker -->
<div class="bg-ink text-white text-[12px] font-mono uppercase tracking-widest overflow-hidden whitespace-nowrap border-b border-black">
  <div class="flex items-center">
    <span class="bg-accent px-3 py-2.5 font-bold shrink-0">Live Briefing</span>
    <div class="flex-1 overflow-hidden relative py-2.5">
      <div class="ticker-track flex gap-12 w-max">
        <span>● Severe thunderstorm watch issued for tri-state until 9PM ET — <a href="#" class="underline decoration-accent underline-offset-4">View Forecast</a></span>
        <span>● Markets close higher as Fed holds rates — Dow +212</span>
        <span>● Senate passes infrastructure oversight bill 68-31</span>
        <span>● NASA confirms Artemis III window for November</span>
        <span>● Severe thunderstorm watch issued for tri-state until 9PM ET — View Forecast</span>
        <span>● Markets close higher as Fed holds rates — Dow +212</span>
      </div>
    </div>
    <div class="hidden lg:flex items-center gap-3 px-4 text-[11px] opacity-80">
      <span>NYC 72°F • Partly Cloudy</span><span class="opacity-30">|</span><span id="clock">10:42 AM ET</span>
    </div>
  </div>
</div>

<!-- Header -->
<header class="sticky top-0 z-40 bg-paper/95 backdrop-blur border-b border-line">
  <div class="max-w-[1440px] mx-auto px-4 lg:px-6">
    <!-- Top row -->
    <div class="flex items-center justify-between py-4 gap-4">
      <div class="flex items-center gap-4">
        <button id="menuBtn" class="lg:hidden w-10 h-10 grid place-items-center border border-line rounded-full">≡</button>
        <a href="#" class="flex items-center gap-3">
          <img src="https://placehold.co/44x44/0F172A/FFFFFF?text=M&font=playfair%20display" alt="logo" class="w-11 h-11 rounded-full object-cover">
          <div>
            <h1 class="font-serif text-[22px] lg:text-[26px] leading-none tracking-tight">The Meridian Ledger</h1>
            <p class="text-[11px] font-mono uppercase tracking-[0.16em] text-slate-500 -mt-0.5">Clarity in Every Forecast. Truth in Every Story.</p>
          </div>
        </a>
      </div>
      <div class="hidden lg:flex items-center gap-3">
        <div class="relative">
          <input placeholder="Search headlines, cities, topics..." class="w-[360px] pl-9 pr-4 py-2.5 rounded-full border border-line bg-white text-sm focus:outline-none focus:border-ink">
          <span class="absolute left-3 top-2.5 text-slate-400">⌕</span>
        </div>
        <a href="#newsletter" class="px-5 py-2.5 rounded-full bg-ink text-white text-sm font-semibold hover:bg-black transition">Sign Up Free</a>
        <a href="#" class="px-5 py-2.5 rounded-full bg-accent text-white text-sm font-semibold hover:bg-red-600 transition">Subscribe</a>
      </div>
      <button class="lg:hidden px-4 py-2 rounded-full bg-ink text-white text-xs font-bold">Subscribe</button>
    </div>
    <!-- Nav -->
    <nav id="mainNav" class="hidden lg:flex items-center justify-between border-t border-line text-[13px] font-semibold">
      <div class="flex items-center gap-6">
        <a href="#" class="py-3 border-b-2 border-ink">Home</a>
        <a href="#national" class="py-3 border-b-2 border-transparent hover:border-ink/30">National</a>
        <a href="#world" class="py-3 border-b-2 border-transparent hover:border-ink/30">World</a>
        <a href="#weather" class="py-3 border-b-2 border-transparent hover:border-ink/30 flex items-center gap-1">Weather <span class="w-1.5 h-1.5 bg-teal rounded-full animate-pulse"></span></a>
        <a href="#business" class="py-3 border-b-2 border-transparent hover:border-ink/30">Business</a>
        <a href="#opinion" class="py-3 border-b-2 border-transparent hover:border-ink/30">Opinion</a>
        <a href="#about" class="py-3 border-b-2 border-transparent hover:border-ink/30">About</a>
      </div>
      <div class="flex items-center gap-4 text-xs font-mono uppercase tracking-widest text-slate-500">
        <span>Today: October 14, 2026</span>
        <a href="#" class="text-ink underline decoration-line underline-offset-4">Today's Paper →</a>
      </div>
    </nav>
    <!-- Mobile nav -->
    <div id="mobileNav" class="hidden lg:hidden pb-4 flex flex-col gap-2 text-sm font-semibold">
      <a href="#national" class="py-2 border-b border-line">National</a>
      <a href="#world" class="py-2 border-b border-line">World</a>
      <a href="#weather" class="py-2 border-b border-line">Weather</a>
      <a href="#business" class="py-2 border-b border-line">Business</a>
      <a href="#opinion" class="py-2 border-b border-line">Opinion</a>
      <a href="#about" class="py-2">About</a>
    </div>
  </div>
</header>

<!-- Hero Grid -->
<main class="max-w-[1440px] mx-auto px-4 lg:px-6 py-6">
  <div class="grid grid-cols-12 gap-6">
    <!-- Left Main -->
    <div class="col-span-12 xl:col-span-8">
      <!-- Featured -->
      <article class="grid md:grid-cols-[1.45fr_1fr] gap-6 bg-white border border-line rounded-[18px] overflow-hidden p-4 lg:p-6">
        <div class="relative">
          <span class="absolute top-3 left-3 bg-accent text-white text-[11px] font-mono font-bold tracking-widest px-2.5 py-1 rounded-full">BREAKING • DEVELOPING</span>
          <img src="https://picsum.photos/800/600?random=10" alt="feature" class="w-full h-[380px] object-cover rounded-xl">
          <div class="absolute bottom-3 left-3 right-3 bg-white/95 backdrop-blur rounded-xl px-3 py-2 flex items-center justify-between text-xs">
            <span class="font-mono uppercase tracking-widest">Live Update • 4 min ago</span>
            <span class="flex items-center gap-2"><span class="w-2 h-2 bg-red-500 rounded-full animate-pulse"></span> 2,481 watching</span>
          </div>
        </div>
        <div class="flex flex-col">
          <div class="flex items-center gap-2 text-[11px] font-mono uppercase tracking-widest text-teal font-bold">
            <span>Source Confirmed</span><span class="w-1 h-1 bg-slate-300 rounded-full"></span><span>Washington Bureau</span>
          </div>
          <h2 class="font-serif text-[30px] lg:text-[38px] leading-[0.95] mt-2">Storm, Shutdown, and Scrutiny: How a Weather System Collided With Capitol Hill</h2>
          <p class="text-[14px] leading-6 text-slate-600 mt-3">As a slow-moving low pressure system threatened the Eastern Seaboard, lawmakers faced a parallel tempest in negotiations over emergency funding. Our editorial team traces the timeline, fact-checking every claim as relief packages stall and governors activate National Guard units.</p>
          <div class="flex items-center gap-3 mt-4">
            <img src="https://i.pravatar.cc/40?u=sarah" class="w-8 h-8 rounded-full">
            <div class="text-xs"><p class="font-semibold">By Sarah Chen, Senior National Correspondent</p><p class="text-slate-500">2 sources on record • Fact-checking verified • Updated 11:04 AM ET</p></div>
          </div>
          <div class="flex gap-2 mt-5">
            <a href="#" class="flex-1 text-center py-2.5 rounded-full bg-ink text-white text-sm font-semibold">Read Full Report →</a>
            <a href="#" class="px-4 py-2.5 rounded-full border border-line bg-white text-sm font-semibold">Save</a>
          </div>
          <div class="mt-4 grid grid-cols-3 divide-x divide-line border border-line rounded-xl overflow-hidden text-center">
            <div class="py-2"><p class="text-[10px] font-mono uppercase tracking-widest text-slate-500">Trust Score</p><p class="font-bold text-teal">A • Verified</p></div>
            <div class="py-2"><p class="text-[10px] font-mono uppercase tracking-widest text-slate-500">Sources</p><p class="font-bold">7 On Record</p></div>
            <div class="py-2"><p class="text-[10px] font-mono uppercase tracking-widest text-slate-500">Reading Time</p><p class="font-bold">6 min</p></div>
          </div>
        </div>
      </article>

      <!-- Secondary headlines -->
      <div id="national" class="grid md:grid-cols-3 gap-4 mt-6">
        <article class="bg-white border border-line rounded-2xl p-4">
          <span class="text-[11px] font-mono uppercase tracking-widest text-accent font-bold">National • Analysis</span>
          <h3 class="font-serif text-[18px] leading-tight mt-1">The Data Behind Drought: Reservoirs at 40-Year Lows</h3>
          <p class="text-sm text-slate-600 mt-2 line-clamp-3">Our data journalism unit mapped 1,200 reservoir levels against historic baselines. The Southwest is not just dry — it's restructuring agriculture, insurance and migration. See the interactive charts.</p>
          <img src="https://picsum.photos/400/240?random=11" class="w-full h-36 object-cover rounded-xl mt-3">
          <a href="#" class="inline-flex mt-3 text-xs font-bold underline">Explore Data Journalism →</a>
        </article>
        <article class="bg-white border border-line rounded-2xl p-4">
          <span class="text-[11px] font-mono uppercase tracking-widest text-ink font-bold">Investigation</span>
          <h3 class="font-serif text-[18px] leading-tight mt-1">City Hall's Shadow Budget: Where the Snow Plow Money Went</h3>
          <p class="text-sm text-slate-600 mt-2">A six-month Ledger investigation found $14.3M in unaccounted winter operations funds. Every document was obtained via FOIA, cross-referenced and independently fact-checked by two editors.</p>
          <img src="https://picsum.photos/400/240?random=12" class="w-full h-36 object-cover rounded-xl mt-3">
          <div class="flex items-center gap-2 mt-3 text-[11px] font-mono"><span class="px-2 py-1 bg-yellow-100 rounded-full">Editorial Review</span><span class="text-slate-500">12 sources</span></div>
        </article>
        <article class="bg-white border border-line rounded-2xl p-4" id="world">
          <span class="text-[11px] font-mono uppercase tracking-widest text-teal font-bold">World • Briefing</span>
          <h3 class="font-serif text-[18px] leading-tight mt-1">Atlantic Currents Slow: What It Means for U.S. Winters</h3>
          <p class="text-sm text-slate-600 mt-2">Climatologists warn AMOC weakening could add extremes, not just warming. We spoke to three lead authors of the latest Nature study to translate jargon into forecast impact.</p>
          <img src="https://picsum.photos/400/240?random=13" class="w-full h-36 object-cover rounded-xl mt-3">
          <a href="#" class="inline-flex mt-3 text-xs font-bold">View Forecast →</a>
        </article>
      </div>
    </div>

    <!-- Right Sidebar - Weather + Live -->
    <aside class="col-span-12 xl:col-span-4 space-y-5">
      <!-- Weather Outlook Card -->
      <div id="weather" class="bg-white border border-line rounded-[18px] overflow-hidden">
        <div class="px-5 py-4 flex items-center justify-between border-b border-line">
          <h3 class="font-serif text-lg">7-Day Weather Outlook</h3>
          <button class="w-8 h-8 grid place-items-center border border-line rounded-full">◐</button>
        </div>
        <div class="px-5 pt-4">
          <div class="bg-[#FFF4D6] rounded-xl p-4 flex gap-4">
            <img src="https://placehold.co/80x80/FFB800/000000?text=☀&font=lora" class="w-20 h-20 rounded-xl object-cover">
            <div class="flex-1">
              <p class="text-xs font-mono uppercase tracking-widest">New York, NY • Now</p>
              <p class="font-serif text-4xl leading-none">72°<span class="text-lg align-super">F</span></p>
              <p class="text-xs text-slate-700">Partly Cloudy • H 78° L 62° • Air Quality: Moderate (67 AQI)</p>
            </div>
          </div>
          <!-- interactive days -->
          <div class="grid grid-cols-7 gap-1 mt-4 text-center" id="forecastDays">
            <!-- JS injected -->
          </div>
          <div class="mt-4 bg-slate-50 border border-line rounded-xl p-3 text-sm">
            <p class="font-semibold text-xs">Tomorrow's Detail: <span id="detailDay">Tuesday</span> — <span id="detailDesc">Scattered thunderstorms late afternoon. 70% chance. Winds SW 10-15 mph.</span></p>
            <div class="flex gap-2 mt-3">
              <a href="#" class="flex-1 text-center py-2 rounded-full bg-ink text-white text-xs font-bold">View Forecast →</a>
              <a href="#" class="flex-1 text-center py-2 rounded-full bg-white border border-line text-xs font-bold">Hourly</a>
            </div>
          </div>
          <div class="mt-3 rounded-xl overflow-hidden border border-line">
            <img src="https://picsum.photos/600/200?random=20" class="w-full h-28 object-cover">
            <div class="flex justify-between items-center px-3 py-2 text-[11px] font-mono uppercase bg-white"><span>Radar • Live Doppler</span><span class="text-teal">Play ▶</span></div>
          </div>
        </div>
        <div class="px-5 py-3 flex items-center justify-between text-[11px] font-mono uppercase tracking-widest text-slate-500 border-t border-line mt-4">
          <span>Powered by Meridian MetDesk</span><span>Updated 2m ago</span>
        </div>
      </div>

      <!-- Live Stream Player -->
      <div class="bg-ink text-white rounded-[18px] overflow-hidden">
        <div class="px-5 py-4 flex items-center justify-between">
          <h4 class="font-serif text-lg">Ledger Live: Morning Briefing</h4>
          <span class="px-2.5 py-1 rounded-full bg-accent text-[10px] font-mono font-bold tracking-widest">● LIVE 8:30 AM ET</span>
        </div>
        <div class="px-4">
          <div class="relative rounded-xl overflow-hidden bg-black">
            <img src="https://picsum.photos/600/340?random=21" class="w-full h-[200px] object-cover opacity-90">
            <button id="playBtn" class="absolute inset-0 grid place-items-center">
              <span class="w-14 h-14 bg-white text-ink rounded-full grid place-items-center text-xl shadow-lg">▶</span>
            </button>
            <div class="absolute bottom-0 left-0 right-0 h-1 bg-white/30"><div id="progress" class="h-1 bg-accent w-[34%]"></div></div>
          </div>
          <div class="flex items-center gap-3 py-3 text-xs">
            <button class="px-3 py-1.5 rounded-full bg-white text-ink font-bold">CC</button>
            <input type="range" min="0" max="100" value="34" class="flex-1 range-thumb accent-white">
            <span class="font-mono">12:04 / 34:00</span>
            <span>🔊</span>
          </div>
        </div>
        <div class="px-5 pb-5">
          <p class="text-sm text-white/80">Start your day with verified headlines, weather and market context in 20 minutes. Hosted by Amara Okafor & Daniel Price.</p>
          <div class="flex gap-2 mt-3">
            <a href="#" class="px-4 py-2 rounded-full bg-white text-ink text-xs font-bold">Listen Live</a>
            <a href="#" class="px-4 py-2 rounded-full border border-white/30 text-xs font-bold">Set Reminder</a>
          </div>
        </div>
      </div>

      <!-- Trending -->
      <div class="bg-white border border-line rounded-[18px] p-5">
        <h4 class="font-serif text-lg">Trending Stories</h4>
        <ol class="mt-3 space-y-3">
          <li class="flex gap-3"><span class="font-serif text-2xl text-slate-300">01</span><div><a href="#" class="text-sm font-semibold leading-tight hover:underline">Power grid operators brace for solar flare after-effects</a><p class="text-xs text-slate-500">1.2k shares • Weather Desk</p></div></li>
          <li class="flex gap-3"><span class="font-serif text-2xl text-slate-300">02</span><div><a href="#" class="text-sm font-semibold leading-tight hover:underline">Supreme Court hears arguments on digital privacy shield</a><p class="text-xs text-slate-500">National</p></div></li>
          <li class="flex gap-3"><span class="font-serif text-2xl text-slate-300">03</span><div><a href="#" class="text-sm font-semibold leading-tight hover:underline">Why emergency alerts failed in three counties — mapped</a><p class="text-xs text-slate-500">Data • Fact-checking inside</p></div></li>
        </ol>
        <a href="#" class="mt-4 inline-flex text-xs font-bold underline">View all trending →</a>
      </div>
    </aside>
  </div>

  <!-- Data Journalism Section -->
  <section id="business" class="mt-8 bg-white border border-line rounded-[18px] overflow-hidden">
    <div class="grid lg:grid-cols-[1.2fr_0.8fr]">
      <div class="p-6 lg:p-8">
        <span class="inline-flex px-3 py-1 rounded-full bg-teal text-white text-[11px] font-mono font-bold tracking-widest">DATA JOURNALISM • INTERACTIVE</span>
        <h3 class="font-serif text-[28px] lg:text-[34px] leading-none mt-3">The Cost of Waiting: Emergency Funds Delayed by 18 Days on Average</h3>
        <p class="text-sm leading-6 text-slate-600 mt-3">We analyzed 412 FEMA disaster declarations since 2015. Approvals are getting slower, not faster — even as billion-dollar events triple. Our reporting team matched payout timelines with congressional calendars, source interviews, and audit reports to find where bottlenecks live.</p>
        <div class="grid sm:grid-cols-3 gap-3 mt-5">
          <div class="border border-line rounded-xl p-3"><p class="text-[10px] font-mono uppercase tracking-widest text-slate-500">Avg Delay (2024)</p><p class="font-serif text-2xl">18.4 days</p><p class="text-xs text-red-600">+6.2 vs 2019</p></div>
          <div class="border border-line rounded-xl p-3"><p class="text-[10px] font-mono uppercase tracking-widest text-slate-500">Declarations Reviewed</p><p class="font-serif text-2xl">412</p><p class="text-xs text-slate-500">Source: FEMA + Ledger FOIA</p></div>
          <div class="border border-line rounded-xl p-3"><p class="text-[10px] font-mono uppercase tracking-widest text-slate-500">Fact-checking</p><p class="font-serif text-lg">Triple-verified</p><p class="text-xs text-teal">Editorial methodology →</p></div>
        </div>
        <div class="mt-5">
          <div class="flex items-center justify-between text-xs font-mono uppercase tracking-widest text-slate-500"><span>Avg approval time (days)</span><span>2015 — 2024</span></div>
          <div class="mt-2 h-28 flex items-end gap-1">
            <div class="flex-1 bg-yellow-200 rounded-t" style="height:40%"></div>
            <div class="flex-1 bg-yellow-300 rounded-t" style="height:45%"></div>
            <div class="flex-1 bg-yellow-400 rounded-t" style="height:48%"></div>
            <div class="flex-1 bg-orange-300 rounded-t" style="height:55%"></div>
            <div class="flex-1 bg-orange-400 rounded-t" style="height:62%"></div>
            <div class="flex-1 bg-red-300 rounded-t" style="height:70%"></div>
            <div class="flex-1 bg-red-400 rounded-t" style="height:78%"></div>
            <div class="flex-1 bg-red-500 rounded-t" style="height:85%"></div>
            <div class="flex-1 bg-ink rounded-t" style="height:92%"></div>
          </div>
          <div class="flex justify-between text-[10px] font-mono text-slate-500 mt-1"><span>2015</span><span>2018</span><span>2021</span><span>2024</span></div>
        </div>
        <div class="flex gap-2 mt-5">
          <a href="#" class="px-5 py-2.5 rounded-full bg-ink text-white text-sm font-bold">Explore Interactive Map</a>
          <a href="#" class="px-5 py-2.5 rounded-full border border-line bg-white text-sm font-bold">Download Dataset (CSV)</a>
        </div>
      </div>
      <div class="bg-[#F8F5EE] border-t lg:border-t-0 lg:border-l border-line p-6">
        <h4 class="font-serif text-lg">How We Reported This</h4>
        <p class="text-sm text-slate-600 mt-2">Every number has a name. Our editorial standard requires two independent sources for any budget figure and primary-document sourcing for government data.</p>
        <ul class="mt-4 space-y-3 text-sm">
          <li class="flex gap-3"><span class="w-6 h-6 rounded-full bg-white border border-line grid place-items-center text-xs">1</span><p><b>FOIA & Audit Trail:</b> 87 records requests, cross-checked with GAO reports.</p></li>
          <li class="flex gap-3"><span class="w-6 h-6 rounded-full bg-white border border-line grid place-items-center text-xs">2</span><p><b>Source Interviews:</b> 14 former FEMA officials, on and off record.</p></li>
          <li class="flex gap-3"><span class="w-6 h-6 rounded-full bg-white border border-line grid place-items-center text-xs">3</span><p><b>Fact-checking Layer:</b> Independent editor review + external statistician.</p></li>
        </ul>
        <div class="mt-5 bg-white border border-line rounded-xl p-4">
          <p class="text-xs font-mono uppercase tracking-widest text-slate-500">From the Editor</p>
          <p class="text-sm mt-1">“We don’t publish until the math survives hostile review. That’s our promise.” — Maya Ellison, Executive Editor</p>
          <div class="flex items-center gap-2 mt-3">
            <img src="https://i.pravatar.cc/40?u=maya" class="w-8 h-8 rounded-full"><span class="text-xs font-semibold">Maya Ellison</span><span class="text-xs text-slate-500">• 18 yrs at Ledger</span>
          </div>
        </div>
        <a href="#" class="mt-4 inline-flex w-full justify-center py-2.5 rounded-full bg-mustard text-ink text-sm font-bold">Submit Tip (Anonymous) →</a>
      </div>
    </div>
  </section>

  <!-- Feature Articles + Opinion -->
  <section class="grid lg:grid-cols-12 gap-6 mt-8">
    <div class="lg:col-span-8">
      <div class="flex items-center justify-between">
        <h3 class="font-serif text-2xl">Feature Articles</h3>
        <a href="#" class="text-xs font-bold underline">View All Features →</a>
      </div>
      <div class="grid md:grid-cols-3 gap-4 mt-4">
        <article class="bg-white border border-line rounded-2xl overflow-hidden">
          <img src="https://picsum.photos/500/340?random=30" class="w-full h-40 object-cover">
          <div class="p-4">
            <span class="text-[11px] font-mono uppercase tracking-widest text-teal font-bold">Weather Desk</span>
            <h4 class="font-serif text-[18px] leading-tight mt-1">Inside the Forecast Lab at 3 A.M.</h4>
            <p class="text-sm text-slate-600 mt-2">A night shift with meteorologists balancing models, radar and public trust. When to warn, when to wait — the editorial call that saves lives.</p>
            <a href="#" class="inline-block mt-3 text-xs font-bold border border-line rounded-full px-3 py-1.5">View Forecast</a>
          </div>
        </article>
        <article class="bg-white border border-line rounded-2xl overflow-hidden">
          <img src="https://picsum.photos/500/340?random=31" class="w-full h-40 object-cover">
          <div class="p-4">
            <span class="text-[11px] font-mono uppercase tracking-widest text-mustard font-bold">Business</span>
            <h4 class="font-serif text-[18px] leading-tight mt-1">Insurance After the Storm</h4>
            <p class="text-sm text-slate-600 mt-2">Premiums up 34% in coastal ZIPs. We explain actuarial tables, reinsurance, and what regulators aren’t saying — with plain-English fact sheets.</p>
            <a href="#" class="inline-block mt-3 text-xs font-bold border border-line rounded-full px-3 py-1.5">Read Analysis</a>
          </div>
        </article>
        <article class="bg-white border border-line rounded-2xl overflow-hidden">
          <img src="https://picsum.photos/500/340?random=32" class="w-full h-40 object-cover">
          <div class="p-4">
            <span class="text-[11px] font-mono uppercase tracking-widest text-slate-600 font-bold">Community</span>
            <h4 class="font-serif text-[18px] leading-tight mt-1">The Volunteer Dispatchers of Red Hook</h4>
            <p class="text-sm text-slate-600 mt-2">When official channels jammed, a co-op radio network kept a neighborhood informed. An oral history, sourced and verified.</p>
            <a href="#" class="inline-block mt-3 text-xs font-bold border border-line rounded-full px-3 py-1.5">Read Story</a>
          </div>
        </article>
      </div>
      <!-- FAQ -->
      <div class="mt-6 bg-white border border-line rounded-2xl p-6">
        <h4 class="font-serif text-xl">Information You Can Use</h4>
        <div class="mt-4 divide-y divide-line" id="faq">
          <button class="w-full flex items-center justify-between py-3 text-left faq-btn"><span class="font-semibold text-sm">How does the Ledger handle corrections and fact-checking?</span><span>+</span></button>
          <div class="hidden pb-3 text-sm text-slate-600 faq-panel">We publish corrections at the top of the article, timestamped. Every political or scientific claim passes a two-editor fact-check and source audit. Anonymous sources must be approved by the Executive Editor and corroborated.</div>
          <button class="w-full flex items-center justify-between py-3 text-left faq-btn"><span class="font-semibold text-sm">Can I submit a tip or weather photo?</span><span>+</span></button>
          <div class="hidden pb-3 text-sm text-slate-600 faq-panel">Yes — use “Submit Tip” anywhere on the site. You can stay anonymous, attach files, and choose whether to be contacted. Our engagement team reviews within 24 hours.</div>
          <button class="w-full flex items-center justify-between py-3 text-left faq-btn"><span class="font-semibold text-sm">How is your weather different from apps?</span><span>+</span></button>
          <div class="hidden pb-3 text-sm text-slate-600 faq-panel">We employ degreed meteorologists who add human judgment to model data, with editorial explainer context and impact guidance — not just numbers.</div>
        </div>
      </div>
    </div>

    <aside id="opinion" class="lg:col-span-4">
      <div class="bg-[#0E7490] text-white rounded-[18px] p-6">
        <span class="text-[11px] font-mono uppercase tracking-widest bg-white/15 px-2.5 py-1 rounded-full">Opinion & Editorial</span>
        <h3 class="font-serif text-[26px] leading-none mt-3">The Forecast Is Political. The Truth Isn’t.</h3>
        <p class="text-sm text-white/80 mt-3 leading-6">When disaster relief becomes a bargaining chip, the public pays in inches of floodwater and hours without power. The Ledger’s editorial board argues for automatic triggers, transparent audit trails, and an end to brinkmanship. Every assertion links to primary documents.</p>
        <div class="mt-4 flex items-center gap-3">
          <img src="https://i.pravatar.cc/40?u=editorial" class="w-8 h-8 rounded-full border-2 border-white/30">
          <p class="text-xs"><span class="font-bold">The Editorial Board</span> • 6 members • <a href="#" class="underline">Meet the board</a></p>
        </div>
        <a href="#" class="mt-5 inline-flex px-5 py-2.5 rounded-full bg-white text-ink text-sm font-bold">Read Editorial →</a>
        <div class="mt-6 bg-white text-ink rounded-xl p-4">
          <p class="text-xs font-mono uppercase tracking-widest text-slate-500">Reader Letters</p>
          <p class="text-sm mt-2">“Finally, a newsroom that shows its work — sources, datasets, and corrections.” — <b>Priya R., Brooklyn</b></p>
          <div class="flex gap-1 mt-2 text-yellow-500">★★★★★ <span class="text-xs text-slate-500">4.9/5 trust rating (8,421 reviews)</span></div>
        </div>
      </div>

      <!-- Testimonials -->
      <div class="mt-6 bg-white border border-line rounded-[18px] p-5">
        <h4 class="font-serif">What Readers Say</h4>
        <div class="grid gap-3 mt-3">
          <div class="border border-line rounded-xl p-3 flex gap-3"><img src="https://i.pravatar.cc/40?u=a1" class="w-9 h-9 rounded-full"><p class="text-sm">“The 7-day outlook actually helps me plan my commute. Human-written, not auto-generated.”<br><span class="text-xs text-slate-500">— Marcus T., Queens</span></p></div>
          <div class="border border-line rounded-xl p-3 flex gap-3"><img src="https://i.pravatar.cc/40?u=a2" class="w-9 h-9 rounded-full"><p class="text-sm">“Data visuals are clear, sources linked. My students use Ledger in civics class.”<br><span class="text-xs text-slate-500">— Elena V., Teacher</span></p></div>
        </div>
      </div>
    </aside>
  </section>

  <!-- Newsletter / About -->
  <section id="about" class="grid lg:grid-cols-12 gap-6 mt-8">
    <div id="newsletter" class="lg:col-span-7 bg-ink text-white rounded-[18px] p-6 lg:p-8 relative overflow-hidden">
      <div class="absolute -right-10 -top-10 w-64 h-64 bg-white/5 rounded-full blur-2xl"></div>
      <span class="text-[11px] font-mono uppercase tracking-widest bg-white text-ink px-2.5 py-1 rounded-full font-bold">Newsletter</span>
      <h3 class="font-serif text-[30px] leading-none mt-4">Get the Morning Ledger in your inbox</h3>
      <p class="text-sm text-white/70 mt-3 max-w-xl">A 5-minute brief at 6AM ET: top national headlines, your local weather forecast, and one data insight you can quote at work. No spam, unsubscribe anytime. Editorial independence guaranteed.</p>
      <form class="mt-6 flex flex-col sm:flex-row gap-3" onsubmit="event.preventDefault();alert('Welcome to the Ledger — check your email!')">
        <input required placeholder="Enter your email" class="flex-1 px-4 py-3 rounded-full text-ink text-sm">
        <button class="px-6 py-3 rounded-full bg-mustard text-ink font-bold text-sm">Sign Up Free →</button>
      </form>
      <p class="text-[11px] text-white/50 mt-3">By signing up you agree to our Terms. We never sell your data. 142k readers and counting.</p>
    </div>
    <div class="lg:col-span-5 bg-white border border-line rounded-[18px] p-6">
      <h3 class="font-serif text-xl">About The Meridian Ledger</h3>
      <p class="text-sm text-slate-600 mt-3 leading-6">Founded in 2018, the Ledger is an independent newsroom covering national affairs and weather with equal rigor. We combine field reporting, FOIA-driven investigation, and human meteorology — every story anchored by on-the-record sources, transparent editorial standards, and open corrections.</p>
      <ul class="mt-4 space-y-2 text-sm">
        <li class="flex gap-2"><span class="text-teal">✓</span> Independent, member-supported — no billionaire owner</li>
        <li class="flex gap-2"><span class="text-teal">✓</span> Two-editor fact-checking workflow</li>
        <li class="flex gap-2"><span class="text-teal">✓</span> StormReady-certified weather team</li>
      </ul>
      <div class="grid grid-cols-3 gap-3 mt-5 text-center">
        <div class="border border-line rounded-xl py-3"><p class="font-serif text-xl">47</p><p class="text-[11px] font-mono uppercase">Awards</p></div>
        <div class="border border-line rounded-xl py-3"><p class="font-serif text-xl">142k</p><p class="text-[11px] font-mono uppercase">Subscribers</p></div>
        <div class="border border-line rounded-xl py-3"><p class="font-serif text-xl">2018</p><p class="text-[11px] font-mono uppercase">Founded</p></div>
      </div>
      <a href="#" class="mt-5 inline-flex w-full justify-center py-2.5 rounded-full border border-line font-bold text-sm">Learn More About Us</a>
    </div>
  </section>
</main>

<!-- Footer -->
<footer class="mt-10 bg-ink text-white">
  <div class="max-w-[1440px] mx-auto px-4 lg:px-6 py-10">
    <div class="grid lg:grid-cols-12 gap-8">
      <div class="lg:col-span-4">
        <div class="flex items-center gap-3">
          <img src="https://placehold.co/40x40/FFFFFF/0F172A?text=M&font=playfair%20display" class="w-10 h-10 rounded-full">
          <div>
            <p class="font-serif text-lg leading-none">The Meridian Ledger</p>
            <p class="text-[11px] font-mono uppercase tracking-widest text-white/60">Clarity in Every Forecast.</p>
          </div>
        </div>
        <p class="text-sm text-white/70 mt-4 max-w-sm">Independent national news, weather and information. Editorial standards published and practiced.</p>
        <div class="flex gap-2 mt-4">
          <a href="#" class="w-9 h-9 grid place-items-center rounded-full bg-white/10">𝕏</a>
          <a href="#" class="w-9 h-9 grid place-items-center rounded-full bg-white/10">◎</a>
          <a href="#" class="w-9 h-9 grid place-items-center rounded-full bg-white/10">▶</a>
          <a href="#" class="w-9 h-9 grid place-items-center rounded-full bg-white/10">in</a>
        </div>
      </div>
      <div class="lg:col-span-2">
        <p class="text-xs font-mono uppercase tracking-widest text-white/60">Sections</p>
        <ul class="mt-3 space-y-2 text-sm text-white/80">
          <li><a href="#" class="hover:text-white">National</a></li>
          <li><a href="#" class="hover:text-white">World</a></li>
          <li><a href="#" class="hover:text-white">Weather</a></li>
          <li><a href="#" class="hover:text-white">Business</a></li>
          <li><a href="#" class="hover:text-white">Opinion</a></li>
        </ul>
      </div>
      <div class="lg:col-span-2">
        <p class="text-xs font-mono uppercase tracking-widest text-white/60">Company</p>
        <ul class="mt-3 space-y-2 text-sm text-white/80">
          <li><a href="#" class="hover:text-white">About</a></li>
          <li><a href="#" class="hover:text-white">Careers</a></li>
          <li><a href="#" class="hover:text-white">Contact</a></li>
          <li><a href="#" class="hover:text-white">Privacy</a></li>
          <li><a href="#" class="hover:text-white">Terms</a></li>
        </ul>
      </div>
      <div class="lg:col-span-4">
        <p class="text-xs font-mono uppercase tracking-widest text-white/60">Contact</p>
        <p class="text-sm text-white/80 mt-3 leading-6">88 Meridian Plaza, 12th Floor<br>New York, NY 10018<br>news@meridianledger.com • (212) 555-0147<br>Tips: tips@meridianledger.com (SecureDrop available)</p>
        <a href="#" class="mt-4 inline-flex px-4 py-2 rounded-full bg-white text-ink text-xs font-bold">Submit Tip →</a>
      </div>
    </div>
    <div class="mt-8 pt-6 border-t border-white/10 flex flex-col md:flex-row justify-between gap-3 text-xs text-white/60">
      <p>© 2026 The Meridian Ledger, LLC. All rights reserved. Weather data via National Weather Service • Editorial independence policy.</p>
      <p>Built for truth • <a href="#" class="underline">Privacy</a> • <a href="#" class="underline">Terms</a> • <a href="#" class="underline">Do Not Sell My Info</a></p>
    </div>
  </div>
</footer>

<script>
// clock
setInterval(()=>{document.getElementById('clock').textContent=new Date().toLocaleTimeString('en-US',{hour:'numeric',minute:'2-digit',timeZone:'America/New_York'})+' ET'},1000);
// forecast
const days=[{d:'Mon',t:72,icon:'☀',desc:'Sunny, light winds.'},{d:'Tue',t:68,icon:'⛈',desc:'Scattered thunderstorms late afternoon. 70% chance.'},{d:'Wed',t:66,icon:'🌧',desc:'Steady rain, cool.'},{d:'Thu',t:70,icon:'⛅',desc:'Partly cloudy, pleasant.'},{d:'Fri',t:74,icon:'☀',desc:'Sunny and warm.'},{d:'Sat',t:76,icon:'☀',desc:'Hot, humid.'},{d:'Sun',t:73,icon:'⛅',desc:'Mix of sun and clouds.'}];
let sel=1;
function renderDays(){
  const c=document.getElementById('forecastDays');c.innerHTML='';
  days.forEach((x,i)=>{
    const b=document.createElement('button');
    b.className=`rounded-xl py-2 border ${i===sel?'bg-ink text-white border-ink':'bg-white border-line'}`;
    b.innerHTML=`<div class="text-[11px] font-mono">${x.d}</div><div class="text-lg">${x.icon}</div><div class="text-sm font-bold">${x.t}°</div>`;
    b.onclick=()=>{sel=i;document.getElementById('detailDay').textContent=x.d;document.getElementById('detailDesc').textContent=x.desc;renderDays()};
    c.appendChild(b);
  })
}
renderDays();
// live play toggle
let playing=false;
document.getElementById('playBtn').onclick=function(){
  playing=!playing;
  this.querySelector('span').textContent=playing?'❚❚':'▶';
  document.getElementById('progress').style.width=playing?'78%':'34%';
}
// faq
document.querySelectorAll('.faq-btn').forEach(btn=>{
  btn.addEventListener('click',()=>{
    const panel=btn.nextElementSibling;
    panel.classList.toggle('hidden');
    btn.querySelector('span:last-child').textContent=panel.classList.contains('hidden')?'+':'—';
  })
});
// mobile menu
document.getElementById('menuBtn').onclick=()=>document.getElementById('mobileNav').classList.toggle('hidden');
</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:09:33.844Z",
  "url": "https://benchmark.aimac.invalid/c3721c88aeb1d10ebef8a4f292d113170444e1ba7d3907770cb713151d69f6fb.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-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": []
    },
    {
      "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-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": []
    },
    {
      "id": "aria-deprecated-role",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-hidden-focus",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-input-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-meter-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-progressbar-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-prohibited-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-children",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-parent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-roles",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-toggle-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-tooltip-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "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": []
    },
    {
      "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": []
    },
    {
      "id": "autocomplete-valid",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "nodes": []
    },
    {
      "id": "blink",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "nodes": []
    },
    {
      "id": "definition-list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "nodes": []
    },
    {
      "id": "dlitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "nodes": []
    },
    {
      "id": "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": []
    },
    {
      "id": "frame-focusable-content",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title-unique",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "nodes": []
    },
    {
      "id": "html-xml-lang-mismatch",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <input type=\"image\"> elements have alternative text",
      "help": "Image buttons must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "marquee",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "nodes": []
    },
    {
      "id": "meta-refresh",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "nodes": []
    },
    {
      "id": "object-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure <object> elements have alternative text",
      "help": "<object> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "role-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure [role=\"img\"] elements have alternative text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": []
    },
    {
      "id": "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": "summary-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "svg-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "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-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 class=\"bg-paper text-ink font-sans antialiased selection:bg-accent selection:text-white\">",
          "target": [
            "body"
          ]
        }
      ]
    },
    {
      "id": "avoid-inline-spacing",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag21aa",
        "wcag1412",
        "EN-301-549",
        "EN-9.1.4.12",
        "ACT"
      ],
      "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
      "help": "Inline text spacing must be adjustable with custom stylesheets",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "important-letter-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-word-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-line-height",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "line-height in the style attribute is not set to !important, or meets the minimum"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<div class=\"flex-1 bg-yellow-200 rounded-t\" style=\"height:40%\"></div>",
          "target": [
            ".bg-yellow-200"
          ]
        }
      ]
    },
    {
      "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=\"w-8 h-8 grid place-items-center border border-line rounded-full\">\u25d0</button>",
          "target": [
            ".w-8.h-8.place-items-center"
          ]
        }
      ]
    },
    {
      "id": "bypass",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag241",
        "section508",
        "section508.22.o",
        "TTv5",
        "TT9.a",
        "EN-301-549",
        "EN-9.2.4.1"
      ],
      "description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
      "help": "Page must have means to bypass repeated blocks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "internal-link-present",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Valid skip link found"
            },
            {
              "id": "header-present",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1 class=\"font-serif text-[22px] lg:text-[26px] leading-none tracking-tight\">The Meridian Ledger</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h2 class=\"font-serif text-[30px] lg:text-[38px] leading-[0.95] mt-2\">Storm, Shutdown, and Scrutiny: How a Weather System Collided With Capitol Hill</h2>",
                  "target": [
                    "h2"
                  ]
                },
                {
                  "html": "<h3 class=\"font-serif text-[18px] leading-tight mt-1\">The Data Behind Drought: Reservoirs at 40-Year Lows</h3>",
                  "target": [
                    "article:nth-child(1) > .text-\\[18px\\].mt-1"
                  ]
                },
                {
                  "html": "<h3 class=\"font-serif text-[18px] leading-tight mt-1\">City Hall's Shadow Budget: Where the Snow Plow Money Went</h3>",
                  "target": [
                    "article:nth-child(2) > .text-\\[18px\\].mt-1"
                  ]
                },
                {
                  "html": "<h3 class=\"font-serif text-[18px] leading-tight mt-1\">Atlantic Currents Slow: What It Means for U.S. Winters</h3>",
                  "target": [
                    "#world > .text-\\[18px\\].mt-1"
                  ]
                },
                {
                  "html": "<h3 class=\"font-serif text-lg\">7-Day Weather Outlook</h3>",
                  "target": [
                    ".py-4.border-b.px-5 > h3"
                  ]
                },
                {
                  "html": "<h4 class=\"font-serif text-lg\">Ledger Live: Morning Briefing</h4>",
                  "target": [
                    ".py-4.px-5.justify-between > h4"
                  ]
                },
                {
                  "html": "<h4 class=\"font-serif text-lg\">Trending Stories</h4>",
                  "target": [
                    ".xl\\:col-span-4 > .p-5.rounded-\\[18px\\].bg-white > h4"
                  ]
                },
                {
                  "html": "<h3 class=\"font-serif text-[28px] lg:text-[34px] leading-none mt-3\">The Cost of Waiting: Emergency Funds Delayed by 18 Days on Average</h3>",
                  "target": [
                    ".text-\\[28px\\]"
                  ]
                },
                {
                  "html": "<h4 class=\"font-serif text-lg\">How We Reported This</h4>",
                  "target": [
                    ".bg-\\[\\#F8F5EE\\] > h4"
                  ]
                },
                {
                  "html": "<h3 class=\"font-serif text-2xl\">Feature Articles</h3>",
                  "target": [
                    ".justify-between.items-center.flex > .text-2xl"
                  ]
                },
                {
                  "html": "<h4 class=\"font-serif text-[18px] leading-tight mt-1\">Inside the Forecast Lab at 3 A.M.</h4>",
                  "target": [
                    "article:nth-child(1) > .p-4 > .text-\\[18px\\]"
                  ]
                },
                {
                  "html": "<h4 class=\"font-serif text-[18px] leading-tight mt-1\">Insurance After the Storm</h4>",
                  "target": [
                    "article:nth-child(2) > .p-4 > .text-\\[18px\\]"
                  ]
                },
                {
                  "html": "<h4 class=\"font-serif text-[18px] leading-tight mt-1\">The Volunteer Dispatchers of Red Hook</h4>",
                  "target": [
                    "article:nth-child(3) > .p-4 > .text-\\[18px\\]"
                  ]
                },
                {
                  "html": "<h4 class=\"font-serif text-xl\">Information You Can Use</h4>",
                  "target": [
                    ".mt-6.p-6.rounded-2xl > .text-xl"
                  ]
                },
                {
                  "html": "<h3 class=\"font-serif text-[26px] leading-none mt-3\">The Forecast Is Political. The Truth Isn\u2019t.</h3>",
                  "target": [
                    ".text-\\[26px\\]"
                  ]
                },
                {
                  "html": "<h4 class=\"font-serif\">What Readers Say</h4>",
                  "target": [
                    ".p-5.mt-6.rounded-\\[18px\\] > h4"
                  ]
                },
                {
                  "html": "<h3 class=\"font-serif text-[30px] leading-none mt-4\">Get the Morning Ledger in your inbox</h3>",
                  "target": [
                    ".text-\\[30px\\].leading-none"
                  ]
                },
                {
                  "html": "<h3 class=\"font-serif text-xl\">About The Meridian Ledger</h3>",
                  "target": [
                    ".lg\\:col-span-5 > .text-xl"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            },
            {
              "id": "landmark",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<main class=\"max-w-[1440px] mx-auto px-4 lg:px-6 py-6\">",
                  "target": [
                    "main"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a landmark region"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#0f172a",
                "contrastRatio": 17.85,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 17.85"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<span>\u25cf Severe thunderstorm watch issued for tri-state until 9PM ET \u2014 <a href=\"#\" class=\"underline decoration-accent underline-offset-4\">View Forecast</a></span>",
          "target": [
            ".ticker-track > span:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "document-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "doc-has-title",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Document has a non-empty <title> element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "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": [],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<input placeholder=\"Search headlines, cities, topics...\" class=\"w-[360px] pl-9 pr-4 py-2.5 rounded-full border border-line bg-white text-sm focus:outline-none focus:border-ink\">",
          "target": [
            ".w-\\[360px\\]"
          ]
        }
      ]
    },
    {
      "id": "html-has-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "The <html> element has a lang attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "html-lang-valid",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages"
            }
          ],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "image-alt",
      "impact": "critical",
      "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/44x44/0F172A/FFFFFF?text=M&amp;font=playfair%20display\" alt=\"logo\" class=\"w-11 h-11 rounded-full object-cover\">",
          "target": [
            ".w-11"
          ]
        }
      ]
    },
    {
      "id": "label",
      "impact": "critical",
      "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": "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 placeholder=\"Search headlines, cities, topics...\" class=\"w-[360px] pl-9 pr-4 py-2.5 rounded-full border border-line bg-white text-sm focus:outline-none focus:border-ink\">",
          "target": [
            ".w-\\[360px\\]"
          ]
        }
      ]
    },
    {
      "id": "link-in-text-block",
      "impact": null,
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "link-in-text-block",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<span>\u25cf Severe thunderstorm watch issued for tri-state until 9PM ET \u2014 <a href=\"#\" class=\"underline decoration-accent underline-offset-4\">View Forecast</a></span>",
                  "target": [
                    ".ticker-track > span:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text in some way other than by color"
            },
            {
              "id": "link-in-text-block-style",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<span>\u25cf Severe thunderstorm watch issued for tri-state until 9PM ET \u2014 <a href=\"#\" class=\"underline decoration-accent underline-offset-4\">View Forecast</a></span>",
                  "target": [
                    ".ticker-track > span:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" class=\"underline decoration-accent underline-offset-4\">View Forecast</a>",
          "target": [
            ".decoration-accent"
          ]
        }
      ]
    },
    {
      "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=\"#\" class=\"underline decoration-accent underline-offset-4\">View Forecast</a>",
          "target": [
            ".decoration-accent"
          ]
        }
      ]
    },
    {
      "id": "list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "only-listitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List element only has direct children that are allowed inside <li> elements"
            }
          ],
          "impact": null,
          "html": "<ol class=\"mt-3 space-y-3\">",
          "target": [
            "ol"
          ]
        }
      ]
    },
    {
      "id": "listitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "listitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List item has a <ul>, <ol> or role=\"list\" parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<li class=\"flex gap-3\"><span class=\"font-serif text-2xl text-slate-300\">01</span><div><a href=\"#\" class=\"text-sm font-semibold leading-tight hover:underline\">Power grid operators brace for solar flare after-effects</a><p class=\"text-xs text-slate-500\">1.2k shares \u2022 Weather Desk</p></div></li>",
          "target": [
            "ol > li:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "meta-viewport",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "meta-viewport",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "<meta> tag does not disable zooming on mobile devices"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
          "target": [
            "meta[name=\"viewport\"]"
          ]
        }
      ]
    },
    {
      "id": "nested-interactive",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "no-focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element does not have focusable descendants"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<img src=\"https://placehold.co/44x44/0F172A/FFFFFF?text=M&amp;font=playfair%20display\" alt=\"logo\" class=\"w-11 h-11 rounded-full object-cover\">",
          "target": [
            ".w-11"
          ]
        }
      ]
    },
    {
      "id": "target-size",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag22aa",
        "wcag258"
      ],
      "description": "Ensure touch targets have sufficient size and space",
      "help": "All touch targets must be 24px large, or leave sufficient space",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "target-size",
              "data": {
                "minSize": 24,
                "width": 457.3,
                "height": 44
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Control has sufficient size (457.3px by 44px, should be at least 24px by 24px)"
            },
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 24,
                "minOffset": 24
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" class=\"flex items-center gap-3\">",
          "target": [
            ".gap-3.items-center[href=\"#\"]"
          ]
        }
      ]
    }
  ],
  "incomplete": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "messageKey": "nonBmp"
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element content contains only non-text characters"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"absolute left-3 top-2.5 text-slate-400\">\u2315</span>",
          "target": [
            ".top-2\\.5"
          ],
          "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
        }
      ]
    }
  ],
  "violations": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#ff3b30",
                "contrastRatio": 3.54,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"bg-accent px-3 py-2.5 font-bold shrink-0\">Live Briefing</span>",
                  "target": [
                    ".shrink-0"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #ffffff, background color: #ff3b30, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"bg-accent px-3 py-2.5 font-bold shrink-0\">Live Briefing</span>",
          "target": [
            ".shrink-0"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #ffffff, background color: #ff3b30, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#ff3b30",
                "contrastRatio": 3.54,
                "fontSize": "10.5pt (14px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#\" class=\"px-5 py-2.5 rounded-full bg-accent text-white text-sm font-semibold hover:bg-red-600 transition\">Subscribe</a>",
                  "target": [
                    ".hover\\:bg-red-600"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #ffffff, background color: #ff3b30, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"px-5 py-2.5 rounded-full bg-accent text-white text-sm font-semibold hover:bg-red-600 transition\">Subscribe</a>",
          "target": [
            ".hover\\:bg-red-600"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #ffffff, background color: #ff3b30, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#ff3b30",
                "contrastRatio": 3.54,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"absolute top-3 left-3 bg-accent text-white text-[11px] font-mono font-bold tracking-widest px-2.5 py-1 rounded-full\">BREAKING \u2022 DEVELOPING</span>",
                  "target": [
                    ".top-3"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #ffffff, background color: #ff3b30, font size: 8.3pt (11px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"absolute top-3 left-3 bg-accent text-white text-[11px] font-mono font-bold tracking-widest px-2.5 py-1 rounded-full\">BREAKING \u2022 DEVELOPING</span>",
          "target": [
            ".top-3"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #ffffff, background color: #ff3b30, font size: 8.3pt (11px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ff3b30",
                "bgColor": "#ffffff",
                "contrastRatio": 3.54,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"bg-white border border-line rounded-2xl p-4\">",
                  "target": [
                    "#national > article:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #ff3b30, background color: #ffffff, font size: 8.3pt (11px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"text-[11px] font-mono uppercase tracking-widest text-accent font-bold\">National \u2022 Analysis</span>",
          "target": [
            ".text-accent"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #ff3b30, background color: #ffffff, font size: 8.3pt (11px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#ff3b30",
                "contrastRatio": 3.54,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"px-2.5 py-1 rounded-full bg-accent text-[10px] font-mono font-bold tracking-widest\">\u25cf LIVE 8:30 AM ET</span>",
                  "target": [
                    ".py-4.px-5.justify-between > .px-2\\.5.bg-accent.py-1"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #ffffff, background color: #ff3b30, font size: 7.5pt (10px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"px-2.5 py-1 rounded-full bg-accent text-[10px] font-mono font-bold tracking-widest\">\u25cf LIVE 8:30 AM ET</span>",
          "target": [
            ".py-4.px-5.justify-between > .px-2\\.5.bg-accent.py-1"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #ffffff, background color: #ff3b30, font size: 7.5pt (10px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#cbd5e1",
                "bgColor": "#ffffff",
                "contrastRatio": 1.48,
                "fontSize": "18.0pt (24px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"bg-white border border-line rounded-[18px] p-5\">",
                  "target": [
                    ".xl\\:col-span-4 > .p-5.rounded-\\[18px\\].bg-white"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 1.48 (foreground color: #cbd5e1, background color: #ffffff, font size: 18.0pt (24px), font weight: normal). Expected contrast ratio of 3:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"font-serif text-2xl text-slate-300\">01</span>",
          "target": [
            "li:nth-child(1) > .text-slate-300.text-2xl.font-serif"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 1.48 (foreground color: #cbd5e1, background color: #ffffff, font size: 18.0pt (24px), font weight: normal). Expected contrast ratio of 3:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#cbd5e1",
                "bgColor": "#ffffff",
                "contrastRatio": 1.48,
                "fontSize": "18.0pt (24px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"bg-white border border-line rounded-[18px] p-5\">",
                  "target": [
                    ".xl\\:col-span-4 > .p-5.rounded-\\[18px\\].bg-white"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 1.48 (foreground color: #cbd5e1, background color: #ffffff, font size: 18.0pt (24px), font weight: normal). Expected contrast ratio of 3:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"font-serif text-2xl text-slate-300\">02</span>",
          "target": [
            "li:nth-child(2) > .text-slate-300.text-2xl.font-serif"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 1.48 (foreground color: #cbd5e1, background color: #ffffff, font size: 18.0pt (24px), font weight: normal). Expected contrast ratio of 3:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#cbd5e1",
                "bgColor": "#ffffff",
                "contrastRatio": 1.48,
                "fontSize": "18.0pt (24px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"bg-white border border-line rounded-[18px] p-5\">",
                  "target": [
                    ".xl\\:col-span-4 > .p-5.rounded-\\[18px\\].bg-white"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 1.48 (foreground color: #cbd5e1, background color: #ffffff, font size: 18.0pt (24px), font weight: normal). Expected contrast ratio of 3:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"font-serif text-2xl text-slate-300\">03</span>",
          "target": [
            "li:nth-child(3) > .text-slate-300.text-2xl.font-serif"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 1.48 (foreground color: #cbd5e1, background color: #ffffff, font size: 18.0pt (24px), font weight: normal). Expected contrast ratio of 3:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#f59e0b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.14,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"bg-white border border-line rounded-2xl overflow-hidden\">",
                  "target": [
                    ".md\\:grid-cols-3.gap-4.mt-4 > article:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.14 (foreground color: #f59e0b, background color: #ffffff, font size: 8.3pt (11px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"text-[11px] font-mono uppercase tracking-widest text-mustard font-bold\">Business</span>",
          "target": [
            ".text-mustard"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.14 (foreground color: #f59e0b, background color: #ffffff, font size: 8.3pt (11px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#3289a1",
                "contrastRatio": 4.01,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"text-[11px] font-mono uppercase tracking-widest bg-white/15 px-2.5 py-1 rounded-full\">Opinion &amp; Editorial</span>",
                  "target": [
                    ".bg-white\\/15"
                  ]
                },
                {
                  "html": "<div class=\"bg-[#0E7490] text-white rounded-[18px] p-6\">",
                  "target": [
                    ".bg-\\[\\#0E7490\\]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.01 (foreground color: #ffffff, background color: #3289a1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"text-[11px] font-mono uppercase tracking-widest bg-white/15 px-2.5 py-1 rounded-full\">Opinion &amp; Editorial</span>",
          "target": [
            ".bg-white\\/15"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.01 (foreground color: #ffffff, background color: #3289a1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#cfe3e9",
                "bgColor": "#0e7490",
                "contrastRatio": 4.03,
                "fontSize": "10.5pt (14px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"bg-[#0E7490] text-white rounded-[18px] p-6\">",
                  "target": [
                    ".bg-\\[\\#0E7490\\]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.03 (foreground color: #cfe3e9, background color: #0e7490, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"text-sm text-white/80 mt-3 leading-6\">",
          "target": [
            ".bg-\\[\\#0E7490\\] > .text-white\\/80.leading-6.mt-3"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.03 (foreground color: #cfe3e9, background color: #0e7490, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f3f0eb",
                "contrastRatio": 4.18,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header class=\"sticky top-0 z-40 bg-paper/95 backdrop-blur border-b border-line\">",
                  "target": [
                    "header"
                  ]
                },
                {
                  "html": "<div class=\"bg-ink text-white rounded-[18px] overflow-hidden\">",
                  "target": [
                    ".xl\\:col-span-4 > .rounded-\\[18px\\].bg-ink.overflow-hidden"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.18 (foreground color: #64748b, background color: #f3f0eb, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Today: October 14, 2026</span>",
          "target": [
            ".gap-4.text-slate-500.items-center > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.18 (foreground color: #64748b, background color: #f3f0eb, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f3f0eb",
                "contrastRatio": 4.18,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header class=\"sticky top-0 z-40 bg-paper/95 backdrop-blur border-b border-line\">",
                  "target": [
                    "header"
                  ]
                },
                {
                  "html": "<div id=\"newsletter\" class=\"lg:col-span-7 bg-ink text-white rounded-[18px] p-6 lg:p-8 relative overflow-hidden\">",
                  "target": [
                    "#newsletter"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.18 (foreground color: #64748b, background color: #f3f0eb, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"text-[11px] font-mono uppercase tracking-[0.16em] text-slate-500 -mt-0.5\">Clarity in Every Forecast. Truth in Every Story.</p>",
          "target": [
            ".tracking-\\[0\\.16em\\]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.18 (foreground color: #64748b, background color: #f3f0eb, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        }
      ]
    },
    {
      "id": "image-alt",
      "impact": "critical",
      "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 does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://i.pravatar.cc/40?u=sarah\" class=\"w-8 h-8 rounded-full\">",
          "target": [
            ".flex-col.flex > .mt-4.gap-3.items-center > .w-8.h-8"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://picsum.photos/400/240?random=11\" class=\"w-full h-36 object-cover rounded-xl mt-3\">",
          "target": [
            "article:nth-child(1) > .h-36.object-cover.w-full"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://picsum.photos/400/240?random=12\" class=\"w-full h-36 object-cover rounded-xl mt-3\">",
          "target": [
            "article:nth-child(2) > .h-36.object-cover.w-full"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://picsum.photos/400/240?random=13\" class=\"w-full h-36 object-cover rounded-xl mt-3\">",
          "target": [
            "#world > .h-36.object-cover.w-full"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://placehold.co/80x80/FFB800/000000?text=\u2600&amp;font=lora\" class=\"w-20 h-20 rounded-xl object-cover\">",
          "target": [
            ".w-20"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://picsum.photos/600/200?random=20\" class=\"w-full h-28 object-cover\">",
          "target": [
            ".h-28.object-cover.w-full"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://picsum.photos/600/340?random=21\" class=\"w-full h-[200px] object-cover opacity-90\">",
          "target": [
            ".h-\\[200px\\]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://i.pravatar.cc/40?u=maya\" class=\"w-8 h-8 rounded-full\">",
          "target": [
            ".gap-2.mt-3.items-center > .w-8.h-8"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://picsum.photos/500/340?random=30\" class=\"w-full h-40 object-cover\">",
          "target": [
            "article:nth-child(1) > .h-40.object-cover.w-full"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://picsum.photos/500/340?random=31\" class=\"w-full h-40 object-cover\">",
          "target": [
            "article:nth-child(2) > .h-40.object-cover.w-full"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://picsum.photos/500/340?random=32\" class=\"w-full h-40 object-cover\">",
          "target": [
            "article:nth-child(3) > .h-40.object-cover.w-full"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://i.pravatar.cc/40?u=editorial\" class=\"w-8 h-8 rounded-full border-2 border-white/30\">",
          "target": [
            ".border-2"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://i.pravatar.cc/40?u=a1\" class=\"w-9 h-9 rounded-full\">",
          "target": [
            "img[src=\"https://i.pravatar.cc/40?u=a1\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://i.pravatar.cc/40?u=a2\" class=\"w-9 h-9 rounded-full\">",
          "target": [
            "img[src=\"https://i.pravatar.cc/40?u=a2\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an alt attribute"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<img src=\"https://placehold.co/40x40/FFFFFF/0F172A?text=M&amp;font=playfair%20display\" class=\"w-10 h-10 rounded-full\">",
          "target": [
            ".gap-3.items-center.flex > .w-10.h-10"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ]
    },
    {
      "id": "label",
      "impact": "critical",
      "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": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "non-empty-placeholder",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no placeholder attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<input type=\"range\" min=\"0\" max=\"100\" value=\"34\" class=\"flex-1 range-thumb accent-white\">",
          "target": [
            ".range-thumb"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 4080
      },
      {
        "y": 576,
        "height": 4080
      },
      {
        "y": 1152,
        "height": 4080
      },
      {
        "y": 1728,
        "height": 4080
      },
      {
        "y": 2304,
        "height": 4080
      },
      {
        "y": 2880,
        "height": 4080
      },
      {
        "y": 3360,
        "height": 4080
      }
    ],
    "scans": 8,
    "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 "News/Weather/Information" 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: "News/Weather/Information"
- Description: News outlets, weather forecasts, breaking news, and general information resources.

**Your Creative Task:**
1.  **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "News/Weather/Information" 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: "National", "Opinion", "About".
-   **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
    -   Address key topics relevant to the "News/Weather/Information" category. Consider themes similar to: "Feature Articles", "Weather Forecasts", "Data Journalism".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "source", "editorial", "fact-checking".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "View Forecast", "Sign Up", "Submit Tip".
-   **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "News/Weather/Information" sector. Ideas similar but not limited to: "live stream player".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "weather outlook", "upcoming events", "trending stories".
-   **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.