OpenAI GPT 6 Luna Pro – Health and Fitness
via OpenAI · Generated
- AIMAC Debt 4.64
- Cost $0.015
- Total Violations 16
- HTML Size 37 KB
- Em Dashes 10
Screenshot
View Live Page
Accessibility Issues Found
16 Serious
-
color-contrast serious 16 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<span class="brand-tagline">Care that moves with you.</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">
<meta name="theme-color" content="#f7f7f1">
<meta name="description" content="Whole-person primary care, movement programs, preventive screening, and recovery support—built around your life.">
<title>Morrow Health Collective — Care that moves with you</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=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<style>
:root {
--ink: #20342d;
--muted: #68766f;
--green: #315e4d;
--green-dark: #234638;
--sage: #dce8dc;
--cream: #f7f7f1;
--white: #fff;
--coral: #dd795e;
--line: #e5e9e1;
--shadow: 0 18px 50px rgba(32, 52, 45, .09);
--radius: 24px;
--font-body: "DM Sans", sans-serif;
--font-display: "Manrope", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
margin: 0;
background: var(--cream);
color: var(--ink);
font-family: var(--font-body);
font-size: 16px;
line-height: 1.65;
-webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.container { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.eyebrow {
display: inline-flex;
align-items: center;
gap: 9px;
color: var(--green);
font-size: 12px;
font-weight: 700;
letter-spacing: .13em;
text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 22px; height: 1px; background: var(--coral); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-display); letter-spacing: -.045em; line-height: 1.12; }
h1 { max-width: 650px; margin: 20px 0 23px; font-size: clamp(3rem, 6.2vw, 5.6rem); font-weight: 600; }
h2 { margin: 14px 0 18px; font-size: clamp(2.2rem, 4vw, 3.7rem); font-weight: 600; }
h3 { font-size: 1.35rem; font-weight: 700; }
.lead { max-width: 620px; color: var(--muted); font-size: 1.1rem; line-height: 1.8; }
.section { padding: 102px 0; }
.section-heading { max-width: 690px; margin-bottom: 42px; }
.section-heading p { max-width: 610px; margin-bottom: 0; color: var(--muted); font-size: 1.05rem; }
.btn {
display: inline-flex;
min-height: 52px;
align-items: center;
justify-content: center;
gap: 10px;
padding: 0 22px;
border: 1px solid transparent;
border-radius: 999px;
background: var(--green);
color: var(--white);
font-size: .92rem;
font-weight: 700;
transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
cursor: pointer;
}
.btn:hover { transform: translateY(-2px); background: var(--green-dark); box-shadow: 0 9px 22px rgba(35,70,56,.18); }
.btn-light { background: var(--white); color: var(--green-dark); }
.btn-light:hover { background: #f0f4ed; color: var(--green-dark); }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--green); font-size: .93rem; font-weight: 700; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(4px); }
/* Header */
.site-header {
position: sticky;
z-index: 20;
top: 0;
background: rgba(247,247,241,.94);
border-bottom: 1px solid rgba(32,52,45,.07);
backdrop-filter: blur(14px);
}
.header-inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: flex; min-width: 220px; align-items: center; gap: 12px; }
.brand img { width: 43px; height: 43px; border-radius: 12px; }
.brand-copy { display: grid; line-height: 1.18; }
.brand-name { font-family: var(--font-display); font-size: 1.02rem; font-weight: 800; letter-spacing: -.04em; }
.brand-tagline { margin-top: 4px; color: var(--muted); font-size: .67rem; letter-spacing: .01em; }
.nav { display: flex; align-items: center; gap: clamp(16px, 2.3vw, 30px); }
.nav a { color: #52635b; font-size: .85rem; font-weight: 600; transition: color .2s ease; }
.nav a:hover, .nav a.active { color: var(--green); }
.header-cta { min-height: 44px; padding: 0 17px; font-size: .83rem; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--white); color: var(--ink); cursor: pointer; }
/* Hero */
.hero { position: relative; overflow: hidden; padding: 70px 0 84px; }
.hero::before { position: absolute; top: -190px; right: -170px; width: 540px; height: 540px; border-radius: 50%; background: #e9eee3; content: ""; }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.06fr .94fr; align-items: center; gap: 55px; }
.hero-copy { padding: 20px 0 30px; }
.hero-copy .lead { margin-bottom: 30px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.hero-note { display: flex; align-items: center; gap: 10px; margin-top: 36px; color: var(--muted); font-size: .83rem; }
.note-dot { width: 9px; height: 9px; border-radius: 50%; background: #78a17f; box-shadow: 0 0 0 5px #e3ece2; }
.hero-visual { position: relative; min-height: 535px; }
.hero-image { position: absolute; inset: 0 18px 20px 40px; width: calc(100% - 58px); height: calc(100% - 20px); object-fit: cover; border-radius: 46% 46% 24px 24px; }
.image-label {
position: absolute; right: 0; bottom: 1px; width: 220px; padding: 20px;
border: 1px solid rgba(255,255,255,.6); border-radius: 18px; background: rgba(255,255,255,.94);
box-shadow: var(--shadow);
}
.image-label strong { display: block; margin-bottom: 5px; font-family: var(--font-display); font-size: 1rem; }
.image-label span { color: var(--muted); font-size: .79rem; line-height: 1.5; }
.hero-stamp { position: absolute; top: 35px; left: 0; display: grid; width: 82px; height: 82px; place-content: center; border: 1px solid rgba(49,94,77,.2); border-radius: 50%; background: var(--cream); color: var(--green); text-align: center; transform: rotate(-10deg); }
.hero-stamp b { font-family: var(--font-display); font-size: 1.2rem; line-height: 1; }
.hero-stamp small { margin-top: 4px; font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
/* Trust strip */
.trust-strip { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.47); }
.trust-inner { display: flex; min-height: 106px; align-items: center; justify-content: space-between; gap: 25px; }
.trust-intro { color: var(--muted); font-size: .83rem; font-weight: 600; }
.trust-item { display: flex; align-items: center; gap: 11px; color: #42564c; font-family: var(--font-display); font-size: .9rem; font-weight: 700; }
.trust-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: #e7eee5; color: var(--green); font-size: 1rem; }
/* Programs */
.program-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.program-card { display: flex; min-height: 320px; flex-direction: column; padding: 29px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); transition: transform .25s ease, box-shadow .25s ease; }
.program-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.card-icon { display: grid; width: 49px; height: 49px; margin-bottom: 25px; place-items: center; border-radius: 15px; background: #edf3eb; color: var(--green); font-size: 1.35rem; }
.program-card h3 { margin-bottom: 12px; }
.program-card p { margin-bottom: 25px; color: var(--muted); font-size: .92rem; line-height: 1.75; }
.program-card .text-link { margin-top: auto; }
.program-card.featured { background: var(--green); color: var(--white); }
.program-card.featured .card-icon { background: rgba(255,255,255,.13); color: #e4eee3; }
.program-card.featured p { color: rgba(255,255,255,.75); }
.program-card.featured .text-link { color: #e5f0e5; }
/* Approach */
.approach { background: #edf1e9; }
.approach-grid { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 80px; }
.approach-photo-wrap { position: relative; min-height: 530px; }
.approach-photo { position: absolute; inset: 0 35px 30px 0; width: calc(100% - 35px); height: calc(100% - 30px); border-radius: 24px 130px 24px 24px; object-fit: cover; }
.photo-caption { position: absolute; right: 0; bottom: 0; width: 225px; padding: 19px; border-radius: 18px; background: var(--white); box-shadow: var(--shadow); }
.photo-caption b { display: block; margin-bottom: 4px; font-family: var(--font-display); font-size: .94rem; }
.photo-caption span { color: var(--muted); font-size: .78rem; }
.approach-copy p { color: var(--muted); }
.approach-copy .lead { margin-bottom: 25px; }
.approach-points { display: grid; gap: 17px; margin: 26px 0 30px; }
.approach-point { display: flex; align-items: flex-start; gap: 13px; }
.check { display: grid; flex: 0 0 23px; width: 23px; height: 23px; margin-top: 3px; place-items: center; border-radius: 50%; background: #d5e4d5; color: var(--green); font-size: .75rem; font-weight: 800; }
.approach-point strong { display: block; margin-bottom: 2px; font-size: .92rem; }
.approach-point span:last-child { color: var(--muted); font-size: .86rem; }
/* Resources */
.resources-layout { display: grid; grid-template-columns: 1.05fr .95fr; gap: 55px; align-items: center; }
.resource-visual { position: relative; height: 460px; }
.resource-visual img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); }
.resource-badge { position: absolute; right: -18px; bottom: 25px; width: 190px; padding: 18px; border-radius: 17px; background: var(--white); box-shadow: var(--shadow); }
.resource-badge b { display: block; font-family: var(--font-display); font-size: 1.5rem; letter-spacing: -.04em; }
.resource-badge span { color: var(--muted); font-size: .79rem; }
.resource-list { display: grid; gap: 12px; margin-top: 28px; }
.resource-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 18px 19px; border: 1px solid var(--line); border-radius: 15px; background: var(--white); }
.resource-row strong { display: block; font-size: .92rem; }
.resource-row small { display: block; margin-top: 3px; color: var(--muted); font-size: .77rem; }
.resource-row .arrow { color: var(--green); font-size: 1.15rem; }
/* Appointment */
.appointment { padding: 90px 0; background: var(--green-dark); color: var(--white); }
.appointment-grid { display: grid; grid-template-columns: .82fr 1.18fr; align-items: start; gap: 65px; }
.appointment .eyebrow { color: #c7ddc8; }
.appointment h2 { max-width: 460px; }
.appointment-copy > p { max-width: 435px; color: rgba(255,255,255,.72); }
.appointment-aside { margin-top: 32px; padding-left: 17px; border-left: 2px solid #7ca689; color: rgba(255,255,255,.76); font-size: .86rem; }
.appointment-aside strong { display: block; margin-bottom: 5px; color: var(--white); }
.booking-form { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; padding: 27px; border-radius: 22px; background: var(--white); color: var(--ink); }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.field label { color: #485c51; font-size: .78rem; font-weight: 700; }
.field input, .field select {
width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid #dfe6de;
border-radius: 10px; outline: none; background: #fbfcf9; color: var(--ink); font-size: .87rem;
}
.field input:focus, .field select:focus { border-color: #6b9878; box-shadow: 0 0 0 3px rgba(107,152,120,.13); }
.booking-form .btn { grid-column: 1 / -1; width: 100%; margin-top: 3px; }
.form-note { grid-column: 1 / -1; margin: -5px 0 0; color: var(--muted); font-size: .73rem; text-align: center; }
.form-message { display: none; grid-column: 1 / -1; margin: 0; padding: 12px 14px; border-radius: 10px; background: #e8f3e8; color: #234638; font-size: .85rem; }
/* Testimonials & FAQ */
.testimonial-section { background: #fff; }
.testimonial-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 20px; }
.quote-card { padding: 32px; border-radius: var(--radius); background: #edf3eb; }
.quote-card.primary { background: #f3eee5; }
.stars { margin-bottom: 19px; color: var(--coral); letter-spacing: .15em; }
blockquote { margin: 0 0 25px; font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 1.7rem); font-weight: 600; letter-spacing: -.03em; line-height: 1.48; }
.quote-person { display: flex; align-items: center; gap: 12px; }
.quote-person img { width: 43px; height: 43px; border-radius: 50%; object-fit: cover; }
.quote-person strong { display: block; font-size: .83rem; }
.quote-person span { display: block; color: var(--muted); font-size: .73rem; }
.faq-section { padding: 91px 0; }
.faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; }
.faq-intro p { color: var(--muted); }
.faq-list { border-top: 1px solid var(--line); }
details { border-bottom: 1px solid var(--line); }
summary { position: relative; padding: 19px 35px 19px 0; font-family: var(--font-display); font-size: .97rem; font-weight: 700; list-style: none; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
summary::after { position: absolute; top: 16px; right: 3px; color: var(--green); content: "+"; font-size: 1.35rem; font-weight: 400; }
details[open] summary::after { content: "−"; }
details p { max-width: 620px; margin: 0; padding: 0 25px 20px 0; color: var(--muted); font-size: .89rem; }
/* Footer */
.site-footer { padding: 60px 0 24px; background: #203b30; color: var(--white); }
.footer-top { display: grid; grid-template-columns: 1.4fr .8fr .8fr 1fr; gap: 45px; padding-bottom: 48px; }
.footer-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.footer-brand img { width: 42px; height: 42px; border-radius: 12px; }
.footer-brand b { font-family: var(--font-display); font-size: 1.05rem; }
.footer-about p { max-width: 300px; color: rgba(255,255,255,.66); font-size: .85rem; }
.footer-col h3 { margin-bottom: 15px; font-family: var(--font-body); font-size: .77rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-col a, .footer-col address { display: block; margin: 9px 0; color: rgba(255,255,255,.7); font-size: .83rem; font-style: normal; }
.footer-col a:hover { color: var(--white); }
.socials { display: flex; gap: 9px; margin-top: 17px; }
.socials a { display: grid; width: 34px; height: 34px; margin: 0; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: var(--white); font-size: .74rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 19px; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.57); font-size: .74rem; }
.footer-legal { display: flex; gap: 20px; }
.footer-legal a:hover { color: var(--white); }
@media (max-width: 1000px) {
.nav { gap: 15px; }
.nav a { font-size: .78rem; }
.brand { min-width: auto; }
.header-cta { display: none; }
.hero-grid { gap: 25px; }
.approach-grid { gap: 45px; }
.footer-top { gap: 25px; }
}
@media (max-width: 760px) {
.container { width: min(100% - 36px, 560px); }
.section { padding: 74px 0; }
.header-inner { min-height: 72px; }
.menu-toggle { display: grid; place-items: center; font-size: 1.25rem; }
.nav {
position: absolute; top: 71px; left: 0; right: 0; display: none; flex-direction: column;
align-items: stretch; gap: 0; padding: 10px 22px 20px; border-bottom: 1px solid var(--line);
background: var(--cream); box-shadow: 0 15px 24px rgba(32,52,45,.07);
}
.nav.open { display: flex; }
.nav a { padding: 12px 3px; border-bottom: 1px solid var(--line); font-size: .9rem; }
.hero { padding: 43px 0 58px; }
.hero-grid, .approach-grid, .resources-layout, .appointment-grid, .faq-layout { grid-template-columns: 1fr; }
.hero-grid { gap: 12px; }
h1 { font-size: clamp(3rem, 12vw, 4.5rem); }
.hero-visual { min-height: 410px; }
.hero-image { inset: 0 15px 20px 20px; width: calc(100% - 35px); height: calc(100% - 20px); }
.hero-stamp { left: -1px; width: 70px; height: 70px; }
.trust-inner { flex-wrap: wrap; justify-content: flex-start; padding: 22px 0; gap: 17px 25px; }
.trust-intro { flex-basis: 100%; }
.trust-item { font-size: .8rem; }
.trust-icon { width: 31px; height: 31px; }
.program-grid { grid-template-columns: 1fr; }
.program-card { min-height: auto; }
.approach-grid { gap: 35px; }
.approach-photo-wrap { min-height: 400px; }
.resources-layout { gap: 40px; }
.resource-visual { height: 350px; margin-right: 10px; }
.resource-badge { right: -10px; width: 160px; }
.appointment { padding: 72px 0; }
.appointment-grid { gap: 35px; }
.booking-form { padding: 20px; }
.testimonial-grid { grid-template-columns: 1fr; }
.faq-layout { gap: 25px; }
.footer-top { grid-template-columns: 1fr 1fr; }
.footer-about { grid-column: 1 / -1; }
}
@media (max-width: 440px) {
.brand-name { font-size: .92rem; }
.brand-tagline { font-size: .61rem; }
.hero-actions { align-items: flex-start; flex-direction: column; gap: 15px; }
.hero-visual { min-height: 340px; }
.trust-item { flex-basis: calc(50% - 14px); }
.booking-form { grid-template-columns: 1fr; }
.field.full, .booking-form .btn, .form-note, .form-message { grid-column: auto; }
.footer-top { grid-template-columns: 1fr 1fr; gap: 28px 15px; }
.footer-bottom { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
</style>
</head>
<body>
<header class="site-header">
<div class="container header-inner">
<a class="brand" href="#home" aria-label="Morrow Health Collective home">
<img src="https://placehold.co/96x96/315e4d/ffffff?text=M&font=manrope" alt="Morrow Health Collective logo">
<span class="brand-copy">
<span class="brand-name">Morrow Health Collective</span>
<span class="brand-tagline">Care that moves with you.</span>
</span>
</a>
<nav class="nav" id="primary-navigation" aria-label="Main navigation">
<a href="#programs">Our Programs</a>
<a href="#resources">Patient Resources</a>
<a href="#appointment">Find Provider</a>
<a href="#resources">Lab Results</a>
<a href="#approach">About</a>
<a href="#stories">Patient Stories</a>
</nav>
<a class="btn header-cta" href="#appointment">Book a visit <span aria-hidden="true">↗</span></a>
<button class="menu-toggle" type="button" aria-expanded="false" aria-controls="primary-navigation" aria-label="Open navigation menu">☰</button>
</div>
</header>
<main>
<section class="hero" id="home">
<div class="container hero-grid">
<div class="hero-copy">
<span class="eyebrow">Whole-person care, made personal</span>
<h1>Feel better.<br>Live more.</h1>
<p class="lead">Your health isn’t one-size-fits-all. We bring trusted primary care, practical movement programs, and thoughtful recovery support together—so your next step feels clear, achievable, and yours.</p>
<div class="hero-actions">
<a class="btn" href="#appointment">Find your care team <span aria-hidden="true">→</span></a>
<a class="text-link" href="#programs">Explore our programs <span aria-hidden="true">→</span></a>
</div>
<div class="hero-note"><span class="note-dot" aria-hidden="true"></span>Accepting new patients in person and online</div>
</div>
<div class="hero-visual">
<img class="hero-image" src="https://picsum.photos/seed/morrow-wellness/900/1100" alt="Woman enjoying a calm moment outdoors after a walk">
<div class="hero-stamp" aria-label="Care for every season"><b>01</b><small>your pace</small></div>
<div class="image-label">
<strong>A healthier you, on your terms.</strong>
<span>Small, supported steps can add up to meaningful change.</span>
</div>
</div>
</div>
</section>
<section class="trust-strip" aria-label="Our care commitments">
<div class="container trust-inner">
<span class="trust-intro">A better kind of health partnership</span>
<div class="trust-item"><span class="trust-icon" aria-hidden="true">♡</span>Care that listens</div>
<div class="trust-item"><span class="trust-icon" aria-hidden="true">✳</span>Evidence-led plans</div>
<div class="trust-item"><span class="trust-icon" aria-hidden="true">↗</span>Progress at your pace</div>
</div>
</section>
<section class="section" id="programs">
<div class="container">
<div class="section-heading">
<span class="eyebrow">Care for real life</span>
<h2>Build a foundation<br>that lasts.</h2>
<p>Whether you’re getting started, managing a condition, or finding your way back after a setback, our team helps connect the dots between how you feel today and how you want to feel tomorrow.</p>
</div>
<div class="program-grid">
<article class="program-card">
<div class="card-icon" aria-hidden="true">⌁</div>
<h3>Movement & fitness</h3>
<p>Find a sustainable rhythm with small-group strength, mobility, and low-impact conditioning. Coaches adapt each session to your experience, energy, and goals—no “fitness level” required.</p>
<a class="text-link" href="#appointment">View schedule <span aria-hidden="true">→</span></a>
</article>
<article class="program-card featured">
<div class="card-icon" aria-hidden="true">✳</div>
<h3>Preventive care</h3>
<p>Stay ahead with annual wellness visits, personalized preventive screening, and a care plan grounded in your health history. We make space for the questions you never want to rush.</p>
<a class="text-link" href="#appointment">Meet a provider <span aria-hidden="true">→</span></a>
</article>
<article class="program-card">
<div class="card-icon" aria-hidden="true">◌</div>
<h3>Recovery & resilience</h3>
<p>Move through recovery with coordinated support, from guided return-to-activity plans to restorative practices for stress and sleep. We work with you to make progress feel steady, not pressured.</p>
<a class="text-link" href="#appointment">Explore recovery <span aria-hidden="true">→</span></a>
</article>
</div>
</div>
</section>
<section class="section approach" id="approach">
<div class="container approach-grid">
<div class="approach-photo-wrap">
<img class="approach-photo" src="https://picsum.photos/seed/morrow-care-team/900/1050" alt="Care professional speaking with a patient in a welcoming clinic">
<div class="photo-caption"><b>Care, in conversation.</b><span>Because your story is part of your health.</span></div>
</div>
<div class="approach-copy">
<span class="eyebrow">Our approach</span>
<h2>Good health is more than a number.</h2>
<p class="lead">We look beyond a snapshot to understand the whole picture: your history, habits, priorities, and the things that make change easier—or harder.</p>
<p>That includes talking through measures like BMI in context, rather than treating any single metric as a verdict. Together, we’ll identify useful next steps, celebrate what’s working, and adjust your plan as life changes.</p>
<div class="approach-points">
<div class="approach-point"><span class="check" aria-hidden="true">✓</span><span><strong>Care plans with you, not for you</strong><span>Clear recommendations shaped around your goals and everyday routine.</span></span></div>
<div class="approach-point"><span class="check" aria-hidden="true">✓</span><span><strong>One connected team</strong><span>Primary care, movement coaching, and wellness support working together.</span></span></div>
<div class="approach-point"><span class="check" aria-hidden="true">✓</span><span><strong>Whole-person wellness</strong><span>We make room for physical health, mental wellbeing, prevention, and recovery.</span></span></div>
</div>
<a class="btn" href="#appointment">Get to know our team <span aria-hidden="true">→</span></a>
</div>
</div>
</section>
<section class="section" id="resources">
<div class="container resources-layout">
<div class="resource-visual">
<img src="https://picsum.photos/seed/morrow-patient-resources/900/740" alt="Notebook and healthy meal on a bright table">
<div class="resource-badge"><b>Your next step</b><span>Useful information, all in one place.</span></div>
</div>
<div>
<span class="eyebrow">Patient resources</span>
<h2>Feel informed between visits.</h2>
<p class="lead">Health care shouldn’t feel like a scavenger hunt. Our resource hub helps you prepare for appointments, understand common screenings, and keep important information close at hand.</p>
<p>Explore straightforward guidance on nutrition, sleep, preventive care, and recovery. Our clinicians can help you make sense of your results and decide what questions to bring to your next visit—because information is most useful when it has context.</p>
<div class="resource-list">
<a class="resource-row" href="#faq"><span><strong>Patient portal & lab results</strong><small>Access records and learn what to ask your care team.</small></span><span class="arrow" aria-hidden="true">↗</span></a>
<a class="resource-row" href="#faq"><span><strong>Preparing for your first visit</strong><small>What to bring, what to expect, and how to get ready.</small></span><span class="arrow" aria-hidden="true">↗</span></a>
<a class="resource-row" href="#programs"><span><strong>Everyday nutrition & movement</strong><small>Practical habits that support lasting wellbeing.</small></span><span class="arrow" aria-hidden="true">↗</span></a>
</div>
</div>
</div>
</section>
<section class="appointment" id="appointment">
<div class="container appointment-grid">
<div class="appointment-copy">
<span class="eyebrow">Take the first step</span>
<h2>Let’s find a time that works.</h2>
<p>Tell us a little about what you’re looking for and we’ll help connect you with the right provider or program. A member of our care team will follow up to confirm availability and answer your questions.</p>
<div class="appointment-aside">
<strong>Prefer to talk it through?</strong>
Call <a href="tel:+15550142800">(555) 014-2800</a><br>
Monday–Friday, 8:00 am–5:00 pm
</div>
</div>
<form class="booking-form" id="booking-form">
<div class="field">
<label for="full-name">Your name</label>
<input id="full-name" name="name" type="text" autocomplete="name" placeholder="Jamie Morgan" required>
</div>
<div class="field">
<label for="email">Email address</label>
<input id="email" name="email" type="email" autocomplete="email" placeholder="you@example.com" required>
</div>
<div class="field">
<label for="visit-type">I’m interested in</label>
<select id="visit-type" name="visit" required>
<option value="" disabled selected>Select a care option</option>
<option>Primary care visit</option>
<option>Preventive wellness visit</option>
<option>Movement & fitness program</option>
<option>Recovery support</option>
<option>Not sure yet — help me choose</option>
</select>
</div>
<div class="field">
<label for="preferred-date">Preferred date</label>
<input id="preferred-date" name="date" type="date" required>
</div>
<div class="field full">
<label for="location">Preferred location</label>
<select id="location" name="location" required>
<option value="" disabled selected>Choose a location</option>
<option>Riverside Wellness Center</option>
<option>Oak Street Clinic</option>
<option>Virtual visit</option>
<option>Any location</option>
</select>
</div>
<p class="form-message" id="form-message" role="status" aria-live="polite"></p>
<button class="btn" type="submit">Request an appointment <span aria-hidden="true">→</span></button>
<p class="form-note">This demo form does not send personal information. Our team will confirm any appointment directly.</p>
</form>
</div>
</section>
<section class="section testimonial-section" id="stories">
<div class="container">
<div class="section-heading">
<span class="eyebrow">A little encouragement</span>
<h2>Care that meets you where you are.</h2>
<p>Every health journey is personal. We’re grateful when members of our community share what feeling supported has meant to them.</p>
</div>
<div class="testimonial-grid">
<article class="quote-card primary">
<div class="stars" aria-label="Five out of five stars">★★★★★</div>
<blockquote>“For the first time, I felt like my care plan was built around my life—not a checklist. The small changes we made together are the ones I’ve actually been able to keep.”</blockquote>
<div class="quote-person">
<img src="https://i.pravatar.cc/96?u=morrow-member-1" alt="">
<span><strong>Alex R.</strong><span>Primary care & wellness member</span></span>
</div>
</article>
<article class="quote-card">
<div class="stars" aria-label="Five out of five stars">★★★★★</div>
<blockquote>“The movement group gave me a comfortable place to start again. I’m stronger, more confident, and looking forward to each week.”</blockquote>
<div class="quote-person">
<img src="https://i.pravatar.cc/96?u=morrow-member-2" alt="">
<span><strong>Sam T.</strong><span>Movement program member</span></span>
</div>
</article>
</div>
</div>
</section>
<section class="faq-section" id="faq">
<div class="container faq-layout">
<div class="faq-intro">
<span class="eyebrow">Good to know</span>
<h2>Questions, answered.</h2>
<p>Have something else on your mind? Our team is happy to help you find the right information before you get started.</p>
<a class="text-link" href="mailto:hello@morrowhealth.example">Contact us <span aria-hidden="true">→</span></a>
</div>
<div class="faq-list">
<details>
<summary>How do I choose the right provider?</summary>
<p>Start by sharing what you’d like help with when you request a visit. Our care coordinators can explain provider specialties, visit types, and locations so you can make an informed choice. You’re always welcome to ask questions before booking.</p>
</details>
<details>
<summary>Where can I view my lab results?</summary>
<p>Members can review available results through the patient portal. If you’re new to Morrow, our team can help you set up access. Results are best understood in context, so contact your provider if you have questions or would like to discuss next steps.</p>
</details>
<details>
<summary>Do I need to be fit to join a movement program?</summary>
<p>Not at all. Programs are designed for a range of experience and ability levels. A coach will talk with you about your goals, movement history, and any considerations before recommending a good place to begin.</p>
</details>
<details>
<summary>Do you offer virtual appointments?</summary>
<p>Yes, virtual visits are available for select appointment types. When you request a visit, choose virtual or tell us you’re interested and our team will confirm whether it’s a good fit for your needs.</p>
</details>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="container">
<div class="footer-top">
<div class="footer-about">
<a class="footer-brand" href="#home">
<img src="https://placehold.co/96x96/ffffff/315e4d?text=M&font=manrope" alt="">
<b>Morrow Health Collective</b>
</a>
<p>Thoughtful, connected care for feeling well today—and building a healthier tomorrow.</p>
<div class="socials" aria-label="Social media links">
<a href="https://www.instagram.com/" aria-label="Instagram">ig</a>
<a href="https://www.facebook.com/" aria-label="Facebook">f</a>
<a href="https://www.linkedin.com/" aria-label="LinkedIn">in</a>
</div>
</div>
<div class="footer-col">
<h3>Explore</h3>
<a href="#programs">Our programs</a>
<a href="#approach">Our approach</a>
<a href="#stories">Patient stories</a>
<a href="#faq">FAQs</a>
</div>
<div class="footer-col">
<h3>For patients</h3>
<a href="#appointment">Find a provider</a>
<a href="#resources">Lab results</a>
<a href="#resources">Patient resources</a>
<a href="#appointment">Request a visit</a>
</div>
<div class="footer-col">
<h3>Come say hello</h3>
<address>48 Willow Lane<br>Portland, OR 97205</address>
<a href="tel:+15550142800">(555) 014-2800</a>
<a href="mailto:hello@morrowhealth.example">hello@morrowhealth.example</a>
</div>
</div>
<div class="footer-bottom">
<span>© <span id="year"></span> Morrow Health Collective. All rights reserved.</span>
<div class="footer-legal">
<a href="#privacy">Privacy</a>
<a href="#terms">Terms</a>
<a href="#accessibility">Accessibility</a>
</div>
</div>
</div>
</footer>
<script>
const menuButton = document.querySelector(".menu-toggle");
const navigation = document.querySelector("#primary-navigation");
menuButton.addEventListener("click", () => {
const isOpen = navigation.classList.toggle("open");
menuButton.setAttribute("aria-expanded", String(isOpen));
menuButton.setAttribute("aria-label", isOpen ? "Close navigation menu" : "Open navigation menu");
menuButton.textContent = isOpen ? "×" : "☰";
});
navigation.querySelectorAll("a").forEach((link) => {
link.addEventListener("click", () => {
navigation.classList.remove("open");
menuButton.setAttribute("aria-expanded", "false");
menuButton.setAttribute("aria-label", "Open navigation menu");
menuButton.textContent = "☰";
});
});
const dateInput = document.querySelector("#preferred-date");
const today = new Date();
dateInput.min = new Date(today.getTime() - today.getTimezoneOffset() * 60000).toISOString().split("T")[0];
document.querySelector("#booking-form").addEventListener("submit", (event) => {
event.preventDefault();
if (!event.currentTarget.reportValidity()) return;
const name = document.querySelector("#full-name").value.trim().split(/\s+/)[0];
const message = document.querySelector("#form-message");
message.textContent = `Thanks, ${name}. Your request is ready. Because this is a sample site, it has not been sent—please call (555) 014-2800 to arrange your visit.`;
message.style.display = "block";
message.focus();
});
document.querySelector("#year").textContent = new Date().getFullYear();
</script>
</body>
</html>
View Axe Report (JSON)
{
"testEngine": {
"name": "axe-core",
"version": "4.10.2"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
"windowWidth": 1280,
"windowHeight": 720,
"orientationAngle": 0,
"orientationType": "landscape-primary"
},
"timestamp": "2026-11-12T09:57:34.036Z",
"url": "https://benchmark.aimac.invalid/92ab16a02a92d4385f5c3f9468f26a7495c93737fc2b4dd588946e3732af012a.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "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": []
},
{
"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": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "svg-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
"help": "<svg> elements with an img role must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "td-headers-attr",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
"help": "Table cells that use the headers attribute must only refer to cells in the same table",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
"nodes": []
},
{
"id": "th-has-data-cells",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
"help": "Table headers in a data table must refer to data cells",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
"nodes": []
},
{
"id": "valid-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2aa",
"wcag312",
"TTv5",
"TT11.b",
"EN-301-549",
"EN-9.3.1.2",
"ACT"
],
"description": "Ensure lang attributes have valid values",
"help": "lang attribute must have a valid value",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
"nodes": []
},
{
"id": "video-caption",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag122",
"section508",
"section508.22.a",
"TTv5",
"TT17.a",
"EN-301-549",
"EN-9.1.2.2"
],
"description": "Ensure <video> elements have captions",
"help": "<video> elements must have captions",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
"nodes": []
},
{
"id": "no-autoplay-audio",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag142",
"TTv5",
"TT2.a",
"EN-301-549",
"EN-9.1.4.2",
"ACT"
],
"description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
"help": "<video> or <audio> elements must not play automatically",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
"nodes": []
}
],
"passes": [
{
"id": "aria-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-allowed-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attributes are used correctly for the defined role"
}
],
"none": [
{
"id": "aria-unsupported-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute is supported"
}
],
"impact": null,
"html": "<a class=\"brand\" href=\"#home\" aria-label=\"Morrow Health Collective home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-conditional-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"none": [],
"impact": null,
"html": "<a class=\"brand\" href=\"#home\" aria-label=\"Morrow Health Collective home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-hidden-body",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"wcag412",
"EN-301-549",
"EN-9.1.3.1",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden=\"true\" is not present on the document body.",
"help": "aria-hidden=\"true\" must not be present on the document body",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-hidden-body",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "No aria-hidden attribute is present on document body"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<body>",
"target": [
"body"
]
}
]
},
{
"id": "aria-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "focusable-modal-open",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements while a modal is open"
},
{
"id": "focusable-disabled",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
},
{
"id": "focusable-not-tabbable",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
}
],
"none": [],
"impact": null,
"html": "<span aria-hidden=\"true\">\u2197</span>",
"target": [
".header-cta > span[aria-hidden=\"true\"]"
]
}
]
},
{
"id": "aria-prohibited-attr",
"impact": "serious",
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"impact": null,
"html": "<a class=\"brand\" href=\"#home\" aria-label=\"Morrow Health Collective home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-valid-attr-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute values are valid"
},
{
"id": "aria-errormessage",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
},
{
"id": "aria-level",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-level values are valid"
}
],
"none": [],
"impact": null,
"html": "<a class=\"brand\" href=\"#home\" aria-label=\"Morrow Health Collective home\">",
"target": [
".brand"
]
}
]
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-valid-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute name is valid"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a class=\"brand\" href=\"#home\" aria-label=\"Morrow Health Collective home\">",
"target": [
".brand"
]
}
]
},
{
"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": [
{
"any": [],
"all": [
{
"id": "autocomplete-valid",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "the autocomplete attribute is correctly formatted"
}
],
"none": [],
"impact": null,
"html": "<input id=\"full-name\" name=\"name\" type=\"text\" autocomplete=\"name\" placeholder=\"Jamie Morgan\" required=\"\">",
"target": [
"#full-name"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button class=\"btn\" type=\"submit\">Request an appointment <span aria-hidden=\"true\">\u2192</span></button>",
"target": [
"button[type=\"submit\"]"
]
}
]
},
{
"id": "bypass",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag241",
"section508",
"section508.22.o",
"TTv5",
"TT9.a",
"EN-301-549",
"EN-9.2.4.1"
],
"description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
"help": "Page must have means to bypass repeated blocks",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "internal-link-present",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Valid skip link found"
},
{
"id": "header-present",
"data": null,
"relatedNodes": [
{
"html": "<h1>Feel better.<br>Live more.</h1>",
"target": [
"h1"
]
},
{
"html": "<h2>Build a foundation<br>that lasts.</h2>",
"target": [
"#programs > .container > .section-heading > h2"
]
},
{
"html": "<h3>Movement & fitness</h3>",
"target": [
".program-card:nth-child(1) > h3"
]
},
{
"html": "<h3>Preventive care</h3>",
"target": [
".featured > h3"
]
},
{
"html": "<h3>Recovery & resilience</h3>",
"target": [
".program-card:nth-child(3) > h3"
]
},
{
"html": "<h2>Good health is more than a number.</h2>",
"target": [
".approach-copy > h2"
]
},
{
"html": "<h2>Feel informed between visits.</h2>",
"target": [
".resources-layout > div:nth-child(2) > h2"
]
},
{
"html": "<h2>Let\u2019s find a time that works.</h2>",
"target": [
".appointment-copy > h2"
]
},
{
"html": "<h2>Care that meets you where you are.</h2>",
"target": [
"#stories > .container > .section-heading > h2"
]
},
{
"html": "<h2>Questions, answered.</h2>",
"target": [
".faq-intro > h2"
]
},
{
"html": "<h3>Explore</h3>",
"target": [
".footer-col:nth-child(2) > h3"
]
},
{
"html": "<h3>For patients</h3>",
"target": [
".footer-col:nth-child(3) > h3"
]
},
{
"html": "<h3>Come say hello</h3>",
"target": [
".footer-col:nth-child(4) > h3"
]
}
],
"impact": "serious",
"message": "Page has a heading"
},
{
"id": "landmark",
"data": null,
"relatedNodes": [
{
"html": "<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": "#20342d",
"bgColor": "#f7f7f1",
"contrastRatio": 12.27,
"fontSize": "12.2pt (16.32px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 12.27"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<span class=\"brand-name\">Morrow Health Collective</span>",
"target": [
".brand-name"
]
}
]
},
{
"id": "document-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"TTv5",
"TT12.a",
"EN-301-549",
"EN-9.2.4.2",
"ACT"
],
"description": "Ensure each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document has a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "duplicate-id-aria",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every id attribute value used in ARIA and in labels is unique",
"help": "IDs used in ARIA and labels must be unique",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "duplicate-id-aria",
"data": "primary-navigation",
"relatedNodes": [],
"impact": "critical",
"message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<nav class=\"nav\" id=\"primary-navigation\" aria-label=\"Main navigation\">",
"target": [
"#primary-navigation"
]
}
]
},
{
"id": "form-field-multiple-labels",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag332",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.3.3.2"
],
"description": "Ensure form field does not have multiple label elements",
"help": "Form field must not have multiple label elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "multiple-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"full-name\">Your name</label>",
"target": [
"label[for=\"full-name\"]"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<input id=\"full-name\" name=\"name\" type=\"text\" autocomplete=\"name\" placeholder=\"Jamie Morgan\" required=\"\">",
"target": [
"#full-name"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://placehold.co/96x96/315e4d/ffffff?text=M&font=manrope\" alt=\"Morrow Health Collective logo\">",
"target": [
"img[alt=\"Morrow Health Collective logo\"]"
]
}
]
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": {
"explicitLabel": "Your name"
},
"relatedNodes": [
{
"html": "<label for=\"full-name\">Your name</label>",
"target": [
"label[for=\"full-name\"]"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
},
{
"id": "non-empty-placeholder",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a placeholder attribute"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<input id=\"full-name\" name=\"name\" type=\"text\" autocomplete=\"name\" placeholder=\"Jamie Morgan\" required=\"\">",
"target": [
"#full-name"
]
}
]
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "link-in-text-block-style",
"data": null,
"relatedNodes": [
{
"html": "<div class=\"approach-copy\">",
"target": [
".approach-copy"
]
}
],
"impact": "serious",
"message": "Links can be distinguished from surrounding text by visual styling"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a class=\"btn\" href=\"#appointment\">Get to know our team <span aria-hidden=\"true\">\u2192</span></a>",
"target": [
".approach-copy > .btn[href$=\"#appointment\"]"
]
}
]
},
{
"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 class=\"brand\" href=\"#home\" aria-label=\"Morrow Health Collective home\">",
"target": [
".brand"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://placehold.co/96x96/315e4d/ffffff?text=M&font=manrope\" alt=\"Morrow Health Collective logo\">",
"target": [
"img[alt=\"Morrow Health Collective logo\"]"
]
}
]
},
{
"id": "select-name",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": {
"explicitLabel": "I\u2019m interested in"
},
"relatedNodes": [
{
"html": "<label for=\"visit-type\">I\u2019m interested in</label>",
"target": [
"label[for=\"visit-type\"]"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<select id=\"visit-type\" name=\"visit\" required=\"\">",
"target": [
"#visit-type"
]
}
]
},
{
"id": "summary-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure summary elements have discernible text",
"help": "Summary elements must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<summary>How do I choose the right provider?</summary>",
"target": [
"details:nth-child(1) > summary"
]
}
]
},
{
"id": "target-size",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag22aa",
"wcag258"
],
"description": "Ensure touch targets have sufficient size and space",
"help": "All touch targets must be 24px large, or leave sufficient space",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "target-size",
"data": {
"minSize": 24,
"width": 242.8,
"height": 43
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (242.8px by 43px, should be at least 24px by 24px)"
},
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a class=\"brand\" href=\"#home\" aria-label=\"Morrow Health Collective home\">",
"target": [
".brand"
]
}
]
}
],
"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=\"hero-stamp\" aria-label=\"Care for every season\"><b>01</b><small>your pace</small></div>",
"target": [
".hero-stamp"
],
"failureSummary": "Fix all of the following:\n aria-label attribute is not well supported on a div with no valid role attribute."
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fontSize": "9.0pt (12px)",
"fontWeight": "bold",
"messageKey": "pseudoContent",
"expectedContrastRatio": "4.5:1"
},
"relatedNodes": [
{
"html": "<section class=\"hero\" id=\"home\">",
"target": [
"#home"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a pseudo element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"eyebrow\">Whole-person care, made personal</span>",
"target": [
".hero-copy > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a pseudo element"
}
]
}
],
"violations": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#f7f7f1",
"contrastRatio": 4.42,
"fontSize": "8.0pt (10.72px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<header class=\"site-header\">",
"target": [
"header"
]
},
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.42 (foreground color: #68766f, background color: #f7f7f1, font size: 8.0pt (10.72px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"brand-tagline\">Care that moves with you.</span>",
"target": [
".brand-tagline"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.42 (foreground color: #68766f, background color: #f7f7f1, font size: 8.0pt (10.72px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#f7f7f1",
"contrastRatio": 4.42,
"fontSize": "12.6pt (16.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.42 (foreground color: #68766f, background color: #f7f7f1, font size: 12.6pt (16.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>Whether you\u2019re getting started, managing a condition, or finding your way back after a setback, our team helps connect the dots between how you feel today and how you want to feel tomorrow.</p>",
"target": [
"#programs > .container > .section-heading > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.42 (foreground color: #68766f, background color: #f7f7f1, font size: 12.6pt (16.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf1e9",
"contrastRatio": 4.16,
"fontSize": "13.2pt (17.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"section approach\" id=\"approach\">",
"target": [
"#approach"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"lead\">We look beyond a snapshot to understand the whole picture: your history, habits, priorities, and the things that make change easier\u2014or harder.</p>",
"target": [
".approach-copy > .lead"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf1e9",
"contrastRatio": 4.16,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"section approach\" id=\"approach\">",
"target": [
"#approach"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>That includes talking through measures like BMI in context, rather than treating any single metric as a verdict. Together, we\u2019ll identify useful next steps, celebrate what\u2019s working, and adjust your plan as life changes.</p>",
"target": [
".approach-copy > p:nth-child(4)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf1e9",
"contrastRatio": 4.16,
"fontSize": "11.0pt (14.72px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"section approach\" id=\"approach\">",
"target": [
"#approach"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 11.0pt (14.72px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<strong>Care plans with you, not for you</strong>",
"target": [
".approach-point:nth-child(1) > span:nth-child(2) > strong"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 11.0pt (14.72px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf1e9",
"contrastRatio": 4.16,
"fontSize": "10.3pt (13.76px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"section approach\" id=\"approach\">",
"target": [
"#approach"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 10.3pt (13.76px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Clear recommendations shaped around your goals and everyday routine.</span>",
"target": [
".approach-point:nth-child(1) > span:nth-child(2) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 10.3pt (13.76px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf1e9",
"contrastRatio": 4.16,
"fontSize": "11.0pt (14.72px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"section approach\" id=\"approach\">",
"target": [
"#approach"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 11.0pt (14.72px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<strong>One connected team</strong>",
"target": [
".approach-point:nth-child(2) > span:nth-child(2) > strong"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 11.0pt (14.72px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf1e9",
"contrastRatio": 4.16,
"fontSize": "10.3pt (13.76px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"section approach\" id=\"approach\">",
"target": [
"#approach"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 10.3pt (13.76px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Primary care, movement coaching, and wellness support working together.</span>",
"target": [
".approach-point:nth-child(2) > span:nth-child(2) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 10.3pt (13.76px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf1e9",
"contrastRatio": 4.16,
"fontSize": "11.0pt (14.72px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"section approach\" id=\"approach\">",
"target": [
"#approach"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 11.0pt (14.72px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<strong>Whole-person wellness</strong>",
"target": [
".approach-point:nth-child(3) > span:nth-child(2) > strong"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 11.0pt (14.72px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf1e9",
"contrastRatio": 4.16,
"fontSize": "10.3pt (13.76px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"section approach\" id=\"approach\">",
"target": [
"#approach"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 10.3pt (13.76px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>We make room for physical health, mental wellbeing, prevention, and recovery.</span>",
"target": [
".approach-point:nth-child(3) > span:nth-child(2) > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.16 (foreground color: #68766f, background color: #edf1e9, font size: 10.3pt (13.76px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#f7f7f1",
"contrastRatio": 4.42,
"fontSize": "13.2pt (17.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.42 (foreground color: #68766f, background color: #f7f7f1, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"lead\">Health care shouldn\u2019t feel like a scavenger hunt. Our resource hub helps you prepare for appointments, understand common screenings, and keep important information close at hand.</p>",
"target": [
".resources-layout > div:nth-child(2) > .lead"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.42 (foreground color: #68766f, background color: #f7f7f1, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#f3eee5",
"contrastRatio": 4.12,
"fontSize": "10.0pt (13.28px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote-card primary\">",
"target": [
".primary"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.12 (foreground color: #68766f, background color: #f3eee5, font size: 10.0pt (13.28px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<strong>Alex R.</strong>",
"target": [
".primary > .quote-person > span > strong"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.12 (foreground color: #68766f, background color: #f3eee5, font size: 10.0pt (13.28px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#f3eee5",
"contrastRatio": 4.12,
"fontSize": "8.8pt (11.68px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote-card primary\">",
"target": [
".primary"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.12 (foreground color: #68766f, background color: #f3eee5, font size: 8.8pt (11.68px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Primary care & wellness member</span>",
"target": [
".primary > .quote-person > span > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.12 (foreground color: #68766f, background color: #f3eee5, font size: 8.8pt (11.68px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf3eb",
"contrastRatio": 4.22,
"fontSize": "10.0pt (13.28px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote-card\">",
"target": [
".quote-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.22 (foreground color: #68766f, background color: #edf3eb, font size: 10.0pt (13.28px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<strong>Sam T.</strong>",
"target": [
".quote-card:nth-child(2) > .quote-person > span > strong"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.22 (foreground color: #68766f, background color: #edf3eb, font size: 10.0pt (13.28px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#edf3eb",
"contrastRatio": 4.22,
"fontSize": "8.8pt (11.68px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"quote-card\">",
"target": [
".quote-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.22 (foreground color: #68766f, background color: #edf3eb, font size: 8.8pt (11.68px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Movement program member</span>",
"target": [
".quote-card:nth-child(2) > .quote-person > span > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.22 (foreground color: #68766f, background color: #edf3eb, font size: 8.8pt (11.68px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#68766f",
"bgColor": "#f7f7f1",
"contrastRatio": 4.42,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.42 (foreground color: #68766f, background color: #f7f7f1, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>Have something else on your mind? Our team is happy to help you find the right information before you get started.</p>",
"target": [
".faq-intro > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.42 (foreground color: #68766f, background color: #f7f7f1, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 5676
},
{
"y": 576,
"height": 5676
},
{
"y": 1152,
"height": 5676
},
{
"y": 1728,
"height": 5676
},
{
"y": 2304,
"height": 5676
},
{
"y": 2880,
"height": 5676
},
{
"y": 3456,
"height": 5676
},
{
"y": 4032,
"height": 5676
},
{
"y": 4608,
"height": 5676
},
{
"y": 4956,
"height": 5676
}
],
"scans": 11,
"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 "Health and Fitness" 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: "Health and Fitness"
- Description: Healthcare, wellness, fitness tips, nutrition, and medical resources.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Health and Fitness" 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: "Find Provider", "Lab Results", "About".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Health and Fitness" category. Consider themes similar to: "Fitness Programs", "Patient Resources", "Recovery Programs".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "BMI", "preventive screening", "holistic wellness".
- **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 Schedule", "Contact Us", "Join Program".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Health and Fitness" sector. Ideas similar but not limited to: "appointment scheduler".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "health alerts", "nutrition advice", "patient testimonials".
- **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.