Thinking Machines Inkling Small – Society
via DeepInfra · Generated
- AIMAC Debt 3.05
- Cost $0.013
- Total Violations 3
- HTML Size 31 KB
- Em Dashes 9
Screenshot
View Live Page
Accessibility Issues Found
3 Serious
-
color-contrast serious 3 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<span class="section-label">Advocacy Priorities</span>
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Meridian Society — Building Coalitions for Equitable Futures</title>
<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=Playfair+Display:ital,wght@0,600;0,800;1,600&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
<style>
:root{
--paper:#F7F5F0;
--ink:#1A1814;
--ink-secondary:#4A4540;
--forest:#2D4A3E;
--forest-deep:#1B3026;
--gold:#BFA15F;
--gold-soft:#F3E9C8;
--surface:#FFFFFF;
--border:#E3DFD6;
--shadow:0 1px 3px rgba(26,24,20,0.08), 0 6px 24px rgba(26,24,20,0.06);
--shadow-lg:0 12px 40px rgba(26,24,20,0.10);
--radius:16px;
--radius-sm:10px;
--font-heading:'Playfair Display', Georgia, 'Times New Roman', serif;
--font-body:'Inter', system-ui, -apple-system, Segoe UI, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-family:var(--font-body);line-height:1.55;font-size:16px;letter-spacing:-0.01em;background:var(--paper)}
img{display:block;max-width:100%;height:auto;border-radius:var(--radius-sm);object-fit:cover}
a{color:inherit;text-decoration:none;transition:color .2s ease}
::selection{background:var(--gold-soft);color:var(--ink)}
/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(247,245,240,0.92);backdrop-filter:saturate(120%) blur(14px);-webkit-backdrop-filter:saturate(120%) blur(14px);border-bottom:1px solid rgba(227,223,214,0.6)}
.header-inner{max-width:1280px;margin:0 auto;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo-group{display:flex;align-items:center;gap:14px;flex-shrink:0}
.logo-img{width:48px;height:48px;border-radius:50%;object-fit:cover;box-shadow:0 2px 6px rgba(0,0,0,0.08);border:2px solid var(--surface)}
.brand{display:flex;flex-direction:column;gap:2px}
.brand-title{font-family:var(--font-heading);font-weight:700;font-size:1.35rem;line-height:1.05;color:var(--ink);letter-spacing:-0.03em}
.brand-sub{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-secondary);font-weight:600}
.main-nav{display:flex;gap:28px;align-items:center;font-size:.92rem;font-weight:500;color:var(--ink-secondary)}
.main-nav a{position:relative;padding:2px 0}
.main-nav a::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .25s ease}
.main-nav a:hover{color:var(--ink)}
.main-nav a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{background:var(--forest);color:#fff;padding:9px 18px;border-radius:100px;font-size:.88rem;font-weight:600;transition:background .2s ease,transform .2s ease}
.nav-cta:hover{background:var(--forest-deep);transform:translateY(-1px);color:#fff}
@media(max-width:960px){
.main-nav{display:none}
.header-inner{padding:14px 24px}
}
/* Utilities */
.container{max-width:1280px;margin:0 auto;padding:0 32px}
.section{padding:120px 0}
.section-sm{padding:80px 0}
.section-header{max-width:840px;margin-bottom:56px}
.section-label{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--gold);margin-bottom:10px}
.section-title{font-family:var(--font-heading);font-size:3.2rem;line-height:.95;font-weight:800;letter-spacing:-0.035em;color:var(--ink);margin-bottom:18px}
.section-title em{font-style:italic;font-weight:600;color:var(--forest)}
.section-lead{font-size:1.15rem;color:var(--ink-secondary);line-height:1.65;max-width:640px}
@media(max-width:720px){
.section-title{font-size:2.4rem}
.section{padding:80px 0}
}
/* Hero */
.hero{position:relative;min-height:92vh;display:flex;align-items:center;overflow:hidden;background:var(--ink)}
.hero-media{position:absolute;inset:0;z-index:1}
.hero-media img{width:100%;height:100%;object-fit:cover;opacity:.55;filter:grayscale(30%) contrast(110%);border-radius:0}
.hero-overlay{position:absolute;inset:0;z-index:2;background:linear-gradient(160deg, rgba(26,24,20,0.72) 0%, rgba(26,24,20,0.45) 60%, rgba(26,24,20,0.65) 100%)}
.hero-inner{position:relative;z-index:3;max-width:1280px;margin:0 auto;padding:140px 32px 110px;width:100%}
.hero-inner h1{font-family:var(--font-heading);font-size:clamp(3.2rem,8vw,6.5rem);font-weight:800;line-height:.92;letter-spacing:-0.045em;color:#fff;margin-bottom:28px;max-width:940px}
.hero-inner h1 em{font-style:italic;font-weight:600;color:var(--gold)}
.hero-lead{font-size:1.25rem;color:#eae6dc;max-width:560px;line-height:1.65;margin-bottom:36px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-btn{display:inline-block;padding:14px 28px;border-radius:100px;font-weight:600;font-size:1rem;transition:all .2s ease}
.hero-btn-primary{background:var(--gold);color:var(--ink);box-shadow:0 4px 14px rgba(191,161,95,0.35)}
.hero-btn-primary:hover{background:#cfa03d;transform:translateY(-2px);box-shadow:0 8px 22px rgba(191,161,95,0.45)}
.hero-btn-secondary{background:rgba(255,255,255,0.08);color:#fff;border:1px solid rgba(255,255,255,0.35);backdrop-filter:blur(4px)}
.hero-btn-secondary:hover{background:rgba(255,255,255,0.14);border-color:rgba(255,255,255,0.55)}
@media(max-width:720px){
.hero-inner{padding:110px 24px 90px}
.hero-inner h1{font-size:2.8rem}
}
/* Feature grid */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media(max-width:980px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.grid-3{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:36px;box-shadow:var(--shadow);transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:24px}
.card h3{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;margin-bottom:10px;letter-spacing:-0.02em}
.card p{color:var(--ink-secondary);font-size:.95rem;line-height:1.65}
.card-cta{margin-top:auto;padding-top:20px}
.card-cta a{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;color:var(--forest);border-bottom:2px solid var(--gold-soft);padding-bottom:2px;transition:border-color .2s ease}
.card-cta a:hover{border-color:var(--gold)}
/* Split section with sidebar */
.split-section{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:start}
@media(max-width:1020px){.split-section{grid-template-columns:1fr}}
.story-body{font-size:1.05rem;color:var(--ink-secondary);line-height:1.75}
.story-body p{margin-bottom:1.2em}
.story-body p:first-child::first-letter{font-family:var(--font-heading);font-size:3.4rem;line-height:.8;float:left;margin-right:10px;margin-top:6px;color:var(--forest)}
.testimonial{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);margin-top:28px;position:relative}
.testimonial::before{content:'“';font-family:var(--font-heading);font-size:5rem;line-height:0;color:var(--gold-soft);position:absolute;top:10px;left:16px;pointer-events:none;opacity:.8}
.testimonial blockquote{font-family:var(--font-heading);font-style:italic;font-size:1.15rem;color:var(--ink);line-height:1.45;position:relative;z-index:2;padding-left:8px}
.testimonial .author{display:flex;align-items:center;gap:12px;margin-top:18px;border-top:1px solid var(--border);padding-top:14px}
.author img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--surface);box-shadow:0 2px 6px rgba(0,0,0,0.08)}
.author-info h4{font-size:.95rem;font-weight:600;color:var(--ink)}
.author-info span{font-size:.8rem;color:var(--ink-secondary)}
.sidebar{display:flex;flex-direction:column;gap:24px}
.side-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.side-panel h3{font-family:var(--font-heading);font-size:1.1rem;margin-bottom:18px;letter-spacing:-0.02em}
.news-item{display:flex;gap:14px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.news-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}
.news-thumb{width:72px;height:72px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}
.news-item h4{font-size:.92rem;font-weight:600;margin-bottom:4px;line-height:1.25;transition:color .2s ease}
.news-item h4:hover{color:var(--forest)}
.news-item span{font-size:.78rem;color:var(--ink-secondary)}
.impact-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}
.stat{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px}
.stat .num{font-family:var(--font-heading);font-size:1.6rem;font-weight:700;color:var(--forest);line-height:1}
.stat .label{font-size:.78rem;color:var(--ink-secondary);margin-top:4px}
.breaking-card{background:linear-gradient(135deg,#2D4A3E 0%,#1B3026 100%);color:#fff;border-radius:var(--radius);padding:28px;position:relative;overflow:hidden}
.breaking-card h3{font-family:var(--font-heading);font-size:1.15rem;margin-bottom:10px;position:relative;z-index:2}
.breaking-card p{font-size:.92rem;opacity:.92;line-height:1.55;position:relative;z-index:2;margin-bottom:14px}
.breaking-card a{display:inline-block;background:var(--gold);color:var(--ink);padding:10px 18px;border-radius:100px;font-weight:700;font-size:.88rem;position:relative;z-index:2;transition:transform .2s ease,box-shadow .2s ease}
.breaking-card a:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(191,161,95,0.35)}
.breaking-card::after{content:'';position:absolute;right:-30px;bottom:-30px;width:160px;height:160px;background:rgba(255,255,255,0.06);border-radius:50%;z-index:1}
/* Interactive tracker */
.tracker-section{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.tracker-section::before{content:'';position:absolute;top:-40%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(191,161,95,0.12),transparent 70%);z-index:1}
.tracker-inner{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:120px 32px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
@media(max-width:980px){.tracker-inner{grid-template-columns:1fr}}
.tracker-text h2{font-family:var(--font-heading);font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:800;line-height:.95;letter-spacing:-0.035em;margin-bottom:20px}
.tracker-text h2 em{font-style:italic;color:var(--gold)}
.tracker-text p{color:#eae6dc;font-size:1.05rem;line-height:1.65;margin-bottom:24px}
.tracker-actions{display:flex;gap:14px;flex-wrap:wrap}
.tracker-dashboard{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius);padding:32px;backdrop-filter:blur(8px)}
.dashboard-bar{height:10px;background:rgba(255,255,255,0.1);border-radius:100px;overflow:hidden;margin-bottom:28px}
.dashboard-fill{height:100%;width:34%;background:linear-gradient(90deg,var(--gold),#DDBB7A);border-radius:100px;transition:width .7s cubic-bezier(0.22,1,0.36,1)}
.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.action-card{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius-sm);padding:20px;text-align:center;transition:background .2s ease}
.action-card:hover{background:rgba(255,255,255,0.12)}
.action-card .icon{width:48px;height:48px;margin:0 auto 12px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-weight:800;font-size:1.2rem}
.action-card h4{font-family:var(--font-heading);font-size:1rem;margin-bottom:6px}
.action-card .count{font-family:var(--font-heading);font-size:1.8rem;color:var(--gold);line-height:1;margin-bottom:10px}
.action-card button{width:100%;padding:10px;border-radius:100px;border:1px solid rgba(255,255,255,0.25);background:rgba(255,255,255,0.06);color:#fff;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s ease;font-family:inherit}
.action-card button:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.action-card button:active{transform:scale(0.98)}
@media(max-width:640px){.tracker-inner{padding:80px 24px;}.dashboard-grid{grid-template-columns:1fr}}
.faq-section{background:var(--surface);border-top:1px solid var(--border)}
.faq-inner{max-width:840px;margin:0 auto;padding:100px 32px}
.faq-inner h2{font-family:var(--font-heading);font-size:2.2rem;margin-bottom:36px;letter-spacing:-0.03em}
.accordion{display:flex;flex-direction:column;gap:12px}
.accordion-item{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:box-shadow .2s ease}
.accordion-item.active{box-shadow:var(--shadow)}
.accordion-btn{width:100%;text-align:left;padding:22px 24px;background:transparent;border:none;font-family:inherit;font-weight:600;color:var(--ink);font-size:1.05rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.accordion-btn:hover{background:rgba(191,161,95,0.05)}
.accordion-btn .icon{font-family:var(--font-heading);font-size:1.2rem;color:var(--gold);transition:transform .25s ease}
.accordion-item.active .accordion-btn .icon{transform:rotate(45deg)}
.accordion-body{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease}
.accordion-item.active .accordion-body{max-height:300px;padding:0 24px 22px}
.accordion-body p{color:var(--ink-secondary);line-height:1.65;font-size:.95rem}
/* Footer */
.site-footer{background:var(--ink);color:#eceae3;padding:100px 0 0}
.footer-inner{max-width:1280px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:48px}
@media(max-width:1020px){.footer-inner{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.footer-inner{grid-template-columns:1fr}}
.footer-brand{font-family:var(--font-heading);font-size:1.6rem;font-weight:700;margin-bottom:10px;color:#fff}
.footer-desc{font-size:.9rem;color:#c5c2ba;line-height:1.6;margin-bottom:22px;max-width:320px}
.socials{display:flex;gap:10px}
.socials a{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,0.15);display:grid;place-items:center;color:#fff;transition:background .2s ease,border-color .2s ease;font-weight:600;font-size:.9rem}
.socials a:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.footer-col h4{font-family:var(--font-heading);font-weight:700;color:#fff;margin-bottom:16px;font-size:1rem}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:8px}
.footer-col a{color:#c5c2ba;font-size:.9rem;transition:color .2s ease}
.footer-col a:hover{color:#fff}
.footer-bottom{max-width:1280px;margin:48px auto 0;padding:28px 32px;border-top:1px solid rgba(255,255,255,0.08);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;color:#88988f;font-size:.82rem}
.footer-bottom a{color:#c5c2ba;text-decoration:underline;text-underline-offset:3px}
.footer-bottom a:hover{color:#fff}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
</style>
</head>
<body>
<header class="site-header" role="banner" aria-label="Site header">
<div class="header-inner">
<a href="#" class="logo-group" aria-label="Meridian Society home">
<img src="https://picsum.photos/id/1027/100/100" alt="Meridian Society logo" class="logo-img" width="48" height="48" loading="eager">
<div class="brand">
<span class="brand-title">Meridian Society</span>
<span class="brand-sub">Equity • Advocacy • Community</span>
</div>
</a>
<nav class="main-nav" aria-label="Primary navigation">
<a href="#">About</a>
<a href="#">Issues</a>
<a href="#">Advocacy</a>
<a href="#">News</a>
<a href="#">Stories</a>
<a href="#">Volunteer</a>
<a href="#" class="nav-cta">Donate Now</a>
</nav>
</div>
</header>
<main id="main" role="main">
<!-- Hero -->
<section class="hero" aria-label="Introduction">
<div class="hero-media" aria-hidden="true">
<img src="https://picsum.photos/seed/meridian/1600/900" alt="" loading="eager" width="1600" height="900">
</div>
<div class="hero-overlay" aria-hidden="true"></div>
<div class="hero-inner">
<h1>Build Coalitions.<br>Drive <em>Equity.</em><br>Shape Society.</h1>
<p class="hero-lead">Meridian Society connects advocacy groups, community leaders, and policymakers to advance lasting social change through stakeholder engagement and inclusive coalition building.</p>
<div class="hero-actions">
<a href="#tracker" class="hero-btn hero-btn-primary">Join the Movement</a>
<a href="#initiatives" class="hero-btn hero-btn-secondary">Explore Issues</a>
</div>
</div>
</section>
<!-- Initiatives -->
<section id="initiatives" class="section" aria-label="Advocacy priorities">
<div class="container">
<header class="section-header">
<span class="section-label">Advocacy Priorities</span>
<h2 class="section-title">Where we focus <em>stakeholder engagement</em></h2>
<p class="section-lead">Our coalitions work across housing, education, healthcare access, and civil rights to build equitable systems that serve every community member.</p>
</header>
<div class="grid-3">
<article class="card">
<img src="https://picsum.photos/id/1011/600/450" alt="Community coalition meeting" class="card-img" loading="lazy" width="600" height="450">
<h3>Coalition Building</h3>
<p>We convene diverse organizations—grassroots networks, academic partners, and public agencies—to design shared equity frameworks. Through structured dialogue and cross-sector partnerships, we turn isolated efforts into coordinated campaigns with measurable impact.</p>
<div class="card-cta"><a href="#">Read the framework <span aria-hidden="true">→</span></a></div>
</article>
<article class="card">
<img src="https://picsum.photos/id/1005/600/450" alt="Equity workshop" class="card-img" loading="lazy" width="600" height="450">
<h3>Equity Initiatives</h3>
<p>Our equity initiatives address systemic barriers in policy, funding, and representation. We support community-led audits, participatory budgeting pilots, and inclusive procurement standards that center marginalized voices in decision-making.</p>
<div class="card-cta"><a href="#">Explore initiatives <span aria-hidden="true">→</span></a></div>
</article>
<article class="card">
<img src="https://picsum.photos/id/1040/600/450" alt="Policy discussion" class="card-img" loading="lazy" width="600" height="450">
<h3>Stakeholder Engagement</h3>
<p>Meaningful change requires deep listening. We design listening sessions, advisory tables, and digital feedback channels that ensure residents shape the policies that affect their lives—before, not after, decisions are made.</p>
<div class="card-cta"><a href="#">See engagement tools <span aria-hidden="true">→</span></a></div>
</article>
</div>
</div>
</section>
<!-- Split Community / Sidebar -->
<section class="section section-sm" aria-label="Community stories and updates" style="background:#EFEDEA;">
<div class="container">
<div class="split-section">
<div>
<header class="section-header" style="margin-bottom:28px;">
<span class="section-label">Community</span>
<h2 class="section-title">Volunteer Opportunities & <em>Stories</em></h2>
</header>
<div class="story-body">
<p>Across the country, volunteers are the backbone of social progress. At Meridian Society, we believe volunteer opportunities should be meaningful, accessible, and rooted in community leadership—not one-size-fits-all. Whether you are supporting neighborhood advocacy circles, translating resources for immigrant families, or mentoring youth in civic engagement, your contribution strengthens the entire coalition.</p>
<p>We also champion the stories that data alone cannot tell. From teachers organizing for equitable funding to parents demanding safe transit routes, these narratives reveal where policy meets lived experience. Sharing a story is an act of advocacy—one that shifts public perception and creates urgency for reform.</p>
<p>Our coalition is open to individuals, small organizations, and institutional partners. Together, we advance equity initiatives that prioritize transparency, accountability, and shared governance. If you are ready to contribute your time, voice, or network, the process is simple and guided.</p>
</div>
<aside class="testimonial" aria-label="Testimonial">
<blockquote>“Meridian gave us the framework to turn years of community organizing into a funded, policy-backed initiative. The stakeholder engagement process was rigorous, respectful, and truly inclusive.”</blockquote>
<div class="author">
<img src="https://i.pravatar.cc/100?u=amara" alt="Amara Osei portrait" width="44" height="44" loading="lazy">
<div class="author-info">
<h4>Amara Osei</h4>
<span>Community Organizer, Atlanta</span>
</div>
</div>
</aside>
</div>
<aside class="sidebar" aria-label="Movement updates and impact">
<div class="side-panel">
<h3>Movement Updates</h3>
<div class="news-item">
<img src="https://picsum.photos/id/1050/100/100" alt="News thumbnail" class="news-thumb" width="72" height="72" loading="lazy">
<div>
<h4><a href="#">New Policy Brief: Housing Equity in Metro Regions</a></h4>
<span>3 days ago</span>
</div>
</div>
<div class="news-item">
<img src="https://picsum.photos/id/1060/100/100" alt="News thumbnail" class="news-thumb" width="72" height="72" loading="lazy">
<div>
<h4><a href="#">Coalition Welcomes 14 New Grassroots Partners</a></h4>
<span>1 week ago</span>
</div>
</div>
<div class="news-item">
<img src="https://picsum.photos/id/1070/100/100" alt="News thumbnail" class="news-thumb" width="72" height="72" loading="lazy">
<div>
<h4><a href="#">Volunteer Training Series Launches in October</a></h4>
<span>2 weeks ago</span>
</div>
</div>
</div>
<div class="side-panel">
<h3>Community Impact</h3>
<div class="impact-stats">
<div class="stat"><div class="num">84</div><div class="label">Active Coalitions</div></div>
<div class="stat"><div class="num">3.2k</div><div class="label">Volunteer Hours</div></div>
<div class="stat"><div class="num">12</div><div class="label">Policy Wins</div></div>
<div class="stat"><div class="num">48</div><div class="label">City Partnerships</div></div>
</div>
</div>
<div class="breaking-card" aria-label="Breaking update">
<h3>Breaking: Civic Funding Proposal</h3>
<p>A new municipal funding framework for community-led services is entering committee review next week. We are mobilizing testimony and coalition letters.</p>
<a href="#">Read brief & take action</a>
</div>
</aside>
</div>
</div>
</section>
<!-- Interactive Tracker -->
<section id="tracker" class="tracker-section" aria-label="Campaign impact tracker">
<div class="tracker-inner">
<div class="tracker-text">
<h2>Track the <em>impact</em> of collective action</h2>
<p>Every pledge, shared story, and volunteer hour strengthens the coalition. Use this dashboard to see how much progress we make together — and add your contribution to the total.</p>
<div class="tracker-actions">
<a href="#" class="hero-btn hero-btn-primary" onclick="scrollToFaq()" role="button">Learn more</a>
<a href="#" class="hero-btn hero-btn-secondary" onclick="resetTracker()">Reset tracker</a>
</div>
</div>
<div class="tracker-dashboard" role="region" aria-label="Campaign metrics">
<div class="dashboard-bar" aria-label="Campaign progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="34" role="progressbar">
<div class="dashboard-fill" id="progressFill"></div>
</div>
<div class="dashboard-grid">
<div class="action-card">
<div class="icon" aria-hidden="true">P</div>
<h4>Pledge Support</h4>
<div class="count" id="count-pledge">2,310</div>
<button onclick="addAction('pledge', 120)" aria-label="Pledge support and increase count">Stand With Us</button>
</div>
<div class="action-card">
<div class="icon" aria-hidden="true">S</div>
<h4>Share Story</h4>
<div class="count" id="count-story">1,842</div>
<button onclick="addAction('story', 85)" aria-label="Share a story and increase count">Share Story</button>
</div>
<div class="action-card">
<div class="icon" aria-hidden="true">V</div>
<h4>Volunteer Hours</h4>
<div class="count" id="count-vol">3,240</div>
<button onclick="addAction('vol', 150)" aria-label="Log volunteer hours and increase count">Log Hours</button>
</div>
</div>
</div>
</div>
</section>
<!-- FAQ -->
<section class="faq-section" id="faq" aria-label="Frequently asked questions">
<div class="faq-inner">
<h2>Common questions</h2>
<div class="accordion" role="region" aria-label="FAQ">
<div class="accordion-item active">
<button class="accordion-btn" onclick="toggleAccordion(this)" aria-expanded="true">
How do I start volunteering with a local coalition?
<span class="icon" aria-hidden="true">+</span>
</button>
<div class="accordion-body">
<p>Start by exploring our coalition directory or contacting a regional coordinator. We offer orientation sessions, skills mapping, and flexible roles—whether you can give two hours or twenty. All volunteers receive training in stakeholder engagement and equity frameworks.</p>
</div>
</div>
<div class="accordion-item">
<button class="accordion-btn" onclick="toggleAccordion(this)" aria-expanded="false">
What is an equity initiative, and how is it funded?
<span class="icon" aria-hidden="true">+</span>
</button>
<div class="accordion-body">
<p>Equity initiatives are structured programs that address systemic disparities in access, representation, or outcome. Funding comes from philanthropic partners, municipal grants, and community-led pooled resources. We prioritize transparent budgets and participatory decision-making for every initiative.</p>
</div>
</div>
<div class="accordion-item">
<button class="accordion-btn" onclick="toggleAccordion(this)" aria-expanded="false">
Can small organizations join a coalition?
<span class="icon" aria-hidden="true">+</span>
</button>
<div class="accordion-body">
<p>Absolutely. Coalitions thrive on diversity—small nonprofits, mutual aid groups, student networks, and neighborhood associations all bring essential perspectives. We provide shared infrastructure, legal guidance, and communication tools so smaller partners can focus on their mission.</p>
</div>
</div>
</div>
</div>
</section>
</main>
<footer class="site-footer" role="contentinfo">
<div class="footer-inner">
<div>
<a href="#" class="logo-group" aria-label="Meridian Society home" style="margin-bottom:14px;display:inline-flex;">
<img src="https://picsum.photos/id/1027/100/100" alt="Meridian Society logo" class="logo-img" width="48" height="48" loading="lazy">
<div class="brand">
<span class="brand-title" style="color:#fff">Meridian Society</span>
<span class="brand-sub">Equity • Advocacy • Community</span>
</div>
</a>
<p class="footer-desc">A national coalition advancing equity through community-led advocacy, stakeholder engagement, and inclusive coalition building.</p>
<div class="socials" aria-label="Social media links">
<a href="#" aria-label="Twitter">X</a>
<a href="#" aria-label="Instagram">IG</a>
<a href="#" aria-label="LinkedIn">LI</a>
</div>
</div>
<nav aria-label="Footer links">
<h4>Explore</h4>
<ul>
<li><a href="#">About</a></li>
<li><a href="#">Issues</a></li>
<li><a href="#">Advocacy</a></li>
<li><a href="#">News</a></li>
<li><a href="#">Stories</a></li>
</ul>
</nav>
<nav aria-label="Footer links">
<h4>Get Involved</h4>
<ul>
<li><a href="#">Volunteer</a></li>
<li><a href="#">Donate Now</a></li>
<li><a href="#">Partner With Us</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">Careers</a></li>
</ul>
</nav>
<nav aria-label="Contact">
<h4>Contact</h4>
<ul>
<li><a href="mailto:hello@meridian.society">hello@meridian.society</a></li>
<li><a href="#">Contact form</a></li>
<li><span style="display:block;margin-top:6px;color:#c5c2ba;">445 Civic Center Drive<br>Suite 800<br>Chicago, IL 60601</span></li>
</ul>
</nav>
</div>
<div class="footer-bottom">
<span>© 2025 Meridian Society. All rights reserved.</span>
<div>
<a href="#">Privacy Policy</a> · <a href="#">Terms of Service</a> · <a href="#">Accessibility</a>
</div>
</div>
</footer>
<script>
// Accordion
function toggleAccordion(btn){
const item = btn.closest('.accordion-item');
const open = item.classList.contains('active');
document.querySelectorAll('.accordion-item').forEach(i => {
i.classList.remove('active');
i.querySelector('.accordion-btn').setAttribute('aria-expanded','false');
});
if(!open){
item.classList.add('active');
btn.setAttribute('aria-expanded','true');
}
}
// Tracker state
let tracker = {pledge:2310, story:1842, vol:3240};
function addAction(key, increment){
tracker[key] += increment;
const el = document.getElementById('count-'+key);
if(el) el.textContent = tracker[key].toLocaleString();
updateProgress();
}
function updateProgress(){
const total = 8000;
const current = tracker.pledge + tracker.story + tracker.vol;
const pct = Math.min(Math.round((current/total)*100), 100);
document.getElementById('progressFill').style.width = pct + '%';
document.querySelector('.dashboard-bar').setAttribute('aria-valuenow', pct);
}
function resetTracker(){
tracker = {pledge:2310, story:1842, vol:3240};
['pledge','story','vol'].forEach(k => {
document.getElementById('count-'+k).textContent = tracker[k].toLocaleString();
});
updateProgress();
}
function scrollToFaq(){
document.getElementById('faq').scrollIntoView({behavior:'smooth',block:'start'});
}
// Init progress
updateProgress();
</script>
</body>
</html>
View Axe Report (JSON)
{
"testEngine": {
"name": "axe-core",
"version": "4.10.2"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
"windowWidth": 1280,
"windowHeight": 720,
"orientationAngle": 0,
"orientationType": "landscape-primary"
},
"timestamp": "2026-11-12T09:45:51.952Z",
"url": "https://benchmark.aimac.invalid/4ad8f5cc72ba82f70e0dbaf23719aaadb3ff128485365f333bca6b7a9f879247.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "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": "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": []
},
{
"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": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": []
},
{
"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-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-allowed-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attributes are used correctly for the defined role"
}
],
"none": [
{
"id": "aria-unsupported-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute is supported"
}
],
"impact": null,
"html": "<header class=\"site-header\" role=\"banner\" aria-label=\"Site header\">",
"target": [
".site-header"
]
}
]
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-conditional-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"none": [],
"impact": null,
"html": "<header class=\"site-header\" role=\"banner\" aria-label=\"Site header\">",
"target": [
".site-header"
]
}
]
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "deprecatedrole",
"data": null,
"relatedNodes": [],
"impact": "minor",
"message": "ARIA role is not deprecated"
}
],
"impact": null,
"html": "<header class=\"site-header\" role=\"banner\" aria-label=\"Site header\">",
"target": [
".site-header"
]
}
]
},
{
"id": "aria-hidden-body",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"wcag412",
"EN-301-549",
"EN-9.1.3.1",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden=\"true\" is not present on the document body.",
"help": "aria-hidden=\"true\" must not be present on the document body",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-hidden-body",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "No aria-hidden attribute is present on document body"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<body>",
"target": [
"body"
]
}
]
},
{
"id": "aria-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "focusable-modal-open",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements while a modal is open"
},
{
"id": "focusable-disabled",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
},
{
"id": "focusable-not-tabbable",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
}
],
"none": [],
"impact": null,
"html": "<div class=\"hero-media\" aria-hidden=\"true\">\n <img src=\"https://picsum.photos/seed/meridian/1600/900\" alt=\"\" loading=\"eager\" width=\"1600\" height=\"900\">\n </div>",
"target": [
".hero-media"
]
}
]
},
{
"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": [
{
"any": [
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute exists and is not empty"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<div class=\"dashboard-bar\" aria-label=\"Campaign progress\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-valuenow=\"92\" role=\"progressbar\">\n <div class=\"dashboard-fill\" id=\"progressFill\" style=\"width: 92%;\"></div>\n </div>",
"target": [
".dashboard-bar"
]
}
]
},
{
"id": "aria-prohibited-attr",
"impact": "serious",
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"impact": null,
"html": "<header class=\"site-header\" role=\"banner\" aria-label=\"Site header\">",
"target": [
".site-header"
]
}
]
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-required-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "All required ARIA attributes are present"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<header class=\"site-header\" role=\"banner\" aria-label=\"Site header\">",
"target": [
".site-header"
]
}
]
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "invalidrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is valid"
},
{
"id": "abstractrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Abstract roles are not used"
},
{
"id": "unsupportedrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is supported"
}
],
"impact": null,
"html": "<header class=\"site-header\" role=\"banner\" aria-label=\"Site header\">",
"target": [
".site-header"
]
}
]
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-valid-attr-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute values are valid"
},
{
"id": "aria-errormessage",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
},
{
"id": "aria-level",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-level values are valid"
}
],
"none": [],
"impact": null,
"html": "<header class=\"site-header\" role=\"banner\" aria-label=\"Site header\">",
"target": [
".site-header"
]
}
]
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-valid-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute name is valid"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<header class=\"site-header\" role=\"banner\" aria-label=\"Site header\">",
"target": [
".site-header"
]
}
]
},
{
"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": "<section class=\"section section-sm\" aria-label=\"Community stories and updates\" style=\"background:#EFEDEA;\">",
"target": [
".section-sm"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute exists and is not empty"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button onclick=\"addAction('pledge', 120)\" aria-label=\"Pledge support and increase count\">Stand With Us</button>",
"target": [
"button[onclick=\"addAction('pledge', 120)\"]"
]
}
]
},
{
"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>Build Coalitions.<br>Drive <em>Equity.</em><br>Shape Society.</h1>",
"target": [
"h1"
]
},
{
"html": "<h2 class=\"section-title\">Where we focus <em>stakeholder engagement</em></h2>",
"target": [
".container > .section-header > .section-title"
]
},
{
"html": "<h3>Coalition Building</h3>",
"target": [
"article:nth-child(1) > h3"
]
},
{
"html": "<h3>Equity Initiatives</h3>",
"target": [
"article:nth-child(2) > h3"
]
},
{
"html": "<h3>Stakeholder Engagement</h3>",
"target": [
"article:nth-child(3) > h3"
]
},
{
"html": "<h2 class=\"section-title\">Volunteer Opportunities & <em>Stories</em></h2>",
"target": [
".split-section > div > .section-header > .section-title"
]
},
{
"html": "<h4>Amara Osei</h4>",
"target": [
".author-info > h4"
]
},
{
"html": "<h3>Movement Updates</h3>",
"target": [
".side-panel:nth-child(1) > h3"
]
},
{
"html": "<h4><a href=\"#\">New Policy Brief: Housing Equity in Metro Regions</a></h4>",
"target": [
".news-item:nth-child(2) > div > h4"
]
},
{
"html": "<h4><a href=\"#\">Coalition Welcomes 14 New Grassroots Partners</a></h4>",
"target": [
".news-item:nth-child(3) > div > h4"
]
},
{
"html": "<h4><a href=\"#\">Volunteer Training Series Launches in October</a></h4>",
"target": [
".news-item:nth-child(4) > div > h4"
]
},
{
"html": "<h3>Community Impact</h3>",
"target": [
".side-panel:nth-child(2) > h3"
]
},
{
"html": "<h3>Breaking: Civic Funding Proposal</h3>",
"target": [
".breaking-card > h3"
]
},
{
"html": "<h2>Track the <em>impact</em> of collective action</h2>",
"target": [
".tracker-text > h2"
]
},
{
"html": "<h4>Pledge Support</h4>",
"target": [
".action-card:nth-child(1) > h4"
]
},
{
"html": "<h4>Share Story</h4>",
"target": [
".action-card:nth-child(2) > h4"
]
},
{
"html": "<h4>Volunteer Hours</h4>",
"target": [
".action-card:nth-child(3) > h4"
]
},
{
"html": "<h2>Common questions</h2>",
"target": [
".faq-inner > h2"
]
},
{
"html": "<h4>Explore</h4>",
"target": [
"nav[aria-label=\"Footer links\"]:nth-child(2) > h4"
]
},
{
"html": "<h4>Get Involved</h4>",
"target": [
"nav[aria-label=\"Footer links\"]:nth-child(3) > h4"
]
},
{
"html": "<h4>Contact</h4>",
"target": [
"nav[aria-label=\"Contact\"] > h4"
]
}
],
"impact": "serious",
"message": "Page has a heading"
},
{
"id": "landmark",
"data": null,
"relatedNodes": [
{
"html": "<main id=\"main\" role=\"main\">",
"target": [
"#main"
]
}
],
"impact": "serious",
"message": "Page has a landmark region"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#1a1814",
"bgColor": "#f7f5f0",
"contrastRatio": 16.26,
"fontSize": "16.2pt (21.6px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 16.26"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<span class=\"brand-title\">Meridian Society</span>",
"target": [
".header-inner > .logo-group[aria-label=\"Meridian Society home\"][href=\"#\"] > .brand > .brand-title"
]
}
]
},
{
"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": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://picsum.photos/id/1027/100/100\" alt=\"Meridian Society logo\" class=\"logo-img\" width=\"48\" height=\"48\" loading=\"eager\">",
"target": [
".header-inner > .logo-group[aria-label=\"Meridian Society home\"][href=\"#\"] > .logo-img[alt=\"Meridian Society logo\"][width=\"48\"]"
]
}
]
},
{
"id": "link-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute exists and is not empty"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a href=\"#\" class=\"logo-group\" aria-label=\"Meridian Society home\">",
"target": [
".header-inner > .logo-group[aria-label=\"Meridian Society home\"][href=\"#\"]"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul>\n <li><a href=\"#\">About</a></li>\n <li><a href=\"#\">Issues</a></li>\n <li><a href=\"#\">Advocacy</a></li>\n <li><a href=\"#\">News</a></li>\n <li><a href=\"#\">Stories</a></li>\n </ul>",
"target": [
"nav[aria-label=\"Footer links\"]:nth-child(2) > ul"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li><a href=\"#\">About</a></li>",
"target": [
"nav[aria-label=\"Footer links\"]:nth-child(2) > ul > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.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://picsum.photos/id/1027/100/100\" alt=\"Meridian Society logo\" class=\"logo-img\" width=\"48\" height=\"48\" loading=\"eager\">",
"target": [
".header-inner > .logo-group[aria-label=\"Meridian Society home\"][href=\"#\"] > .logo-img[alt=\"Meridian Society logo\"][width=\"48\"]"
]
}
]
},
{
"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": 309.7,
"height": 48
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (309.7px by 48px, 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=\"logo-group\" aria-label=\"Meridian Society home\">",
"target": [
".header-inner > .logo-group[aria-label=\"Meridian Society home\"][href=\"#\"]"
]
}
]
}
],
"incomplete": [
{
"id": "aria-prohibited-attr",
"impact": "serious",
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": {
"role": null,
"nodeName": "div",
"messageKey": "noRoleSingular",
"prohibited": [
"aria-label"
]
},
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute is not well supported on a div with no valid role attribute."
}
],
"impact": "serious",
"html": "<div class=\"breaking-card\" aria-label=\"Breaking update\">",
"target": [
".breaking-card"
],
"failureSummary": "Fix all of the following:\n aria-label attribute is not well supported on a div with no valid role attribute."
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": null,
"bgColor": null,
"contrastRatio": 0,
"fontSize": "76.8pt (102.4px)",
"fontWeight": "bold",
"messageKey": "bgGradient",
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"hero-overlay\" aria-hidden=\"true\"></div>",
"target": [
".hero-overlay"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a background gradient"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<h1>Build Coalitions.<br>Drive <em>Equity.</em><br>Shape Society.</h1>",
"target": [
"h1"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background gradient"
}
]
},
{
"id": "link-in-text-block",
"impact": "serious",
"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": {
"messageKey": "bgOverlap"
},
"relatedNodes": [
{
"html": "<div>",
"target": [
".footer-inner > div"
]
}
],
"impact": "serious",
"message": "Element's contrast ratio could not be determined because of element overlap"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"logo-group\" aria-label=\"Meridian Society home\" style=\"margin-bottom:14px;display:inline-flex;\">",
"target": [
".footer-inner > div > .logo-group[aria-label=\"Meridian Society home\"][href=\"#\"]"
],
"failureSummary": "Fix any of the following:\n Element's contrast ratio could not be determined because of element overlap"
}
]
}
],
"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": "#bfa15f",
"bgColor": "#f7f5f0",
"contrastRatio": 2.27,
"fontSize": "9.0pt (12px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.27 (foreground color: #bfa15f, background color: #f7f5f0, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"section-label\">Advocacy Priorities</span>",
"target": [
".container > .section-header > .section-label"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.27 (foreground color: #bfa15f, background color: #f7f5f0, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#bfa15f",
"bgColor": "#efedea",
"contrastRatio": 2.11,
"fontSize": "9.0pt (12px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"section section-sm\" aria-label=\"Community stories and updates\" style=\"background:#EFEDEA;\">",
"target": [
".section-sm"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.11 (foreground color: #bfa15f, background color: #efedea, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"section-label\">Community</span>",
"target": [
".split-section > div > .section-header > .section-label"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.11 (foreground color: #bfa15f, background color: #efedea, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#4a4540",
"bgColor": "#1a1814",
"contrastRatio": 1.87,
"fontSize": "8.6pt (11.52px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site-footer\" role=\"contentinfo\">",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.87 (foreground color: #4a4540, background color: #1a1814, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"brand-sub\">Equity \u2022 Advocacy \u2022 Community</span>",
"target": [
".footer-inner > div > .logo-group[aria-label=\"Meridian Society home\"][href=\"#\"] > .brand > .brand-sub"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.87 (foreground color: #4a4540, background color: #1a1814, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 4692
},
{
"y": 576,
"height": 4692
},
{
"y": 1152,
"height": 4692
},
{
"y": 1728,
"height": 4692
},
{
"y": 2304,
"height": 4692
},
{
"y": 2880,
"height": 4692
},
{
"y": 3456,
"height": 4692
},
{
"y": 3972,
"height": 4692
}
],
"scans": 9,
"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 "Society" 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: "Society"
- Description: Social issues, advocacy, cultural organizations, and community initiatives.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Society" 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: "About", "Issues", "News".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Society" category. Consider themes similar to: "Volunteer Opportunities", "Advocacy Actions", "Community Stories".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "coalition building", "stakeholder engagement", "equity initiatives".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Share Story", "Stand With Us", "Donate Now".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Society" sector. Ideas similar but not limited to: "action tracker".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "community impact", "movement updates", "breaking news".
- **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.