OpenAI GPT 5.4 Mini – Home and Garden
via OpenAI · Generated
- AIMAC Debt 0.00
- Cost $0.03
- Total Violations 0
- HTML Size 27 KB
- Em Dashes 2
Screenshot
View Live Page
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Verdant House & Garden | Practical Home, Inspired Outdoors</title>
<meta name="description" content="Verdant House & Garden is a premium home and garden resource for plant care, landscaping, DIY upgrades, and outdoor living inspiration." />
<style>
:root{
--bg: #f5f3ee;
--surface: #ffffff;
--surface-2: #f0ede6;
--text: #243024;
--muted: #5f6b5f;
--brand: #2f6b4f;
--brand-2: #7a9b5f;
--accent: #b86b3a;
--line: rgba(36,48,36,.12);
--shadow: 0 18px 50px rgba(21, 32, 22, .10);
--radius: 22px;
--radius-sm: 16px;
--max: 1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
margin:0;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color:var(--text);
background:
radial-gradient(1200px 500px at 15% 0%, rgba(122,155,95,.12), transparent 60%),
radial-gradient(900px 420px at 100% 10%, rgba(184,107,58,.12), transparent 50%),
var(--bg);
line-height:1.6;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--max);margin:0 auto;padding:0 20px}
header{
position:sticky;top:0;z-index:50;
backdrop-filter: blur(14px);
background: rgba(245,243,238,.82);
border-bottom:1px solid var(--line);
}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand img{width:54px;height:54px;border-radius:16px;object-fit:cover;border:1px solid var(--line);box-shadow:var(--shadow)}
.brand h1{font-size:1.05rem;line-height:1.1;margin:0}
.brand p{margin:4px 0 0;color:var(--muted);font-size:.92rem}
nav ul{display:flex;flex-wrap:wrap;gap:14px;list-style:none;padding:0;margin:0;justify-content:flex-end}
nav a{
display:inline-block;padding:10px 14px;border-radius:999px;
color:var(--text);font-weight:600;font-size:.95rem;
}
nav a:hover{background:rgba(47,107,79,.1);color:var(--brand)}
.hero{padding:42px 0 18px}
.hero-grid{
display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:stretch
}
.panel{
background:rgba(255,255,255,.75);
border:1px solid var(--line);
border-radius:var(--radius);
box-shadow:var(--shadow);
}
.hero-copy{padding:36px}
.eyebrow{
display:inline-flex;align-items:center;gap:10px;
background:rgba(47,107,79,.12);color:var(--brand);
padding:8px 14px;border-radius:999px;font-weight:700;font-size:.88rem;
}
.hero h2{font-size:clamp(2.2rem, 4vw, 4.6rem);line-height:1.02;margin:18px 0 16px;letter-spacing:-.04em}
.hero p{font-size:1.05rem;color:var(--muted);max-width:62ch}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn{
display:inline-flex;align-items:center;justify-content:center;gap:10px;
padding:14px 18px;border-radius:14px;font-weight:700;border:1px solid transparent;
}
.btn.primary{background:var(--brand);color:#fff}
.btn.primary:hover{background:#23573f}
.btn.secondary{background:#fff;color:var(--brand);border-color:rgba(47,107,79,.22)}
.btn.secondary:hover{background:rgba(47,107,79,.06)}
.hero-visual{padding:18px;display:grid;gap:16px}
.hero-visual img{height:250px;width:100%;object-fit:cover;border-radius:20px}
.stats{
display:grid;grid-template-columns:repeat(3,1fr);gap:12px
}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px}
.stat strong{display:block;font-size:1.4rem;color:var(--brand)}
.stat span{color:var(--muted);font-size:.92rem}
main{padding:24px 0 44px}
.layout{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}
section{margin-bottom:24px}
.section{padding:28px}
.section h3{font-size:1.6rem;margin:0 0 12px}
.section .lead{color:var(--muted);max-width:72ch;margin:0 0 18px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.card{
background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px;
}
.card h4{margin:0 0 8px;font-size:1.08rem}
.card p{margin:0;color:var(--muted)}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.feature{
background:linear-gradient(180deg, rgba(47,107,79,.07), rgba(255,255,255,.95));
border:1px solid var(--line);border-radius:18px;padding:18px
}
.feature strong{display:block;margin-bottom:8px}
.feature p{margin:0;color:var(--muted)}
.content-image{
margin-top:18px;border-radius:20px;overflow:hidden;border:1px solid var(--line)
}
.content-image img{height:280px;width:100%;object-fit:cover}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;align-items:center}
.list{
padding-left:18px;margin:12px 0 0;color:var(--muted)
}
.list li{margin:8px 0}
.quote{
background:linear-gradient(180deg, rgba(122,155,95,.14), rgba(255,255,255,.95));
border-left:5px solid var(--brand-2);
padding:18px;border-radius:18px
}
.quote p{margin:0 0 10px}
.quote cite{font-style:normal;font-weight:700;color:var(--brand)}
.calculator{
display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end
}
label{display:block;font-size:.88rem;font-weight:700;margin-bottom:8px;color:var(--text)}
input, select{
width:100%;padding:13px 14px;border-radius:14px;border:1px solid var(--line);
background:#fff;font:inherit;color:var(--text)
}
.calc-result{
grid-column:1/-1;background:#fbfaf7;border:1px solid var(--line);border-radius:18px;padding:16px;margin-top:6px
}
.sidebar{position:sticky;top:92px}
.sidebar .panel{padding:22px;margin-bottom:18px}
.sidebar h4{margin:0 0 12px}
.mini-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.mini-list li{padding-bottom:12px;border-bottom:1px dashed var(--line)}
.mini-list li:last-child{padding-bottom:0;border-bottom:0}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{padding:8px 10px;border-radius:999px;background:rgba(47,107,79,.08);font-size:.9rem;color:var(--brand);font-weight:600}
.faq details{
background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:12px 0
}
.faq summary{cursor:pointer;font-weight:700}
.faq p{margin:10px 0 0;color:var(--muted)}
footer{
border-top:1px solid var(--line);
background:#efece6;
padding:28px 0 34px;
}
.footer-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:20px}
.footer-grid h5{margin:0 0 10px;font-size:1rem}
.footer-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;color:var(--muted)}
.social{display:flex;gap:10px;flex-wrap:wrap}
.social a{padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.copyright{margin-top:18px;color:var(--muted);font-size:.92rem}
@media (max-width: 980px){
.hero-grid,.layout,.split,.footer-grid,.grid-2,.feature-grid,.calculator{grid-template-columns:1fr}
.sidebar{position:static}
nav ul{justify-content:flex-start}
.stats{grid-template-columns:1fr}
}
</style>
</head>
<body>
<header>
<div class="container topbar">
<div class="brand">
<img src="https://placehold.co/120x120/2f6b4f/ffffff?text=VH&font=montserrat" alt="Verdant House & Garden logo" />
<div>
<h1>Verdant House & Garden</h1>
<p>Practical home upgrades. Beautiful outdoor spaces.</p>
</div>
</div>
<nav aria-label="Primary">
<ul>
<li><a href="#plant-care">Plant Care</a></li>
<li><a href="#landscaping">Landscaping</a></li>
<li><a href="#home-improvement">Home Improvement</a></li>
<li><a href="#outdoor-living">Outdoor Living</a></li>
<li><a href="#resources">Guides</a></li>
<li><a href="#testimonials">Reviews</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</div>
</header>
<main>
<div class="container hero">
<div class="hero-grid">
<div class="panel hero-copy">
<span class="eyebrow">Home & Garden Resource Hub</span>
<h2>Grow a better home, from the foundation to the flower bed.</h2>
<p>
Verdant House & Garden helps homeowners, renters, and weekend DIYers make smarter decisions
about plant care, landscape design, and practical home improvement. From mulching and drainage
to deck refreshes and load-bearing considerations, our guides are built to be useful, clear,
and ready to put into action.
</p>
<p>
Whether you’re planning a pollinator-friendly border, troubleshooting a patchy lawn, or looking
for modern decor ideas that work indoors and out, we combine expert advice with approachable
project planning so you can move from inspiration to completion without guesswork.
</p>
<div class="cta-row">
<a class="btn primary" href="#calculator">Calculate Materials</a>
<a class="btn secondary" href="#resources">Get Design Ideas</a>
</div>
</div>
<div class="panel hero-visual">
<img src="https://picsum.photos/900/650?grayscale&blur=1" alt="Stylish garden and home exterior inspiration" />
<div class="stats">
<div class="stat"><strong>120+</strong><span>practical project guides</span></div>
<div class="stat"><strong>4 seasons</strong><span>of planning advice</span></div>
<div class="stat"><strong>1 goal</strong><span>a home that feels finished</span></div>
</div>
</div>
</div>
</div>
<div class="container layout">
<div>
<section class="panel section" id="plant-care">
<h3>Plant Guides That Help Your Garden Thrive</h3>
<p class="lead">
Healthy plants start with the right conditions, not luck. Our plant care section covers sunlight
exposure, soil composition, watering schedules, and seasonal maintenance so you can support
everything from container herbs to established shrubs. We explain the fundamentals in plain
language while still covering details like root rot prevention, pruning timing, and soil drainage.
</p>
<div class="grid-2">
<div class="card">
<h4>Seasonal care made simple</h4>
<p>
Spring is the time to refresh mulch, inspect winter damage, and feed new growth with balanced
nutrients. In summer, the focus shifts to watering efficiency, heat stress, and preserving
moisture with quality top dressing. As temperatures cool, our guides help you transition beds,
protect perennials, and prepare tender plants for dormancy.
</p>
</div>
<div class="card">
<h4>Pruning, feeding, and soil health</h4>
<p>
Good plant care is really about balance. We recommend pruning with purpose, using compost to
improve structure, and avoiding over-fertilization that can encourage weak, fast growth.
Clear instructions make it easier to understand when to deadhead, when to divide, and when to
leave the plant alone.
</p>
</div>
</div>
<div class="content-image">
<img src="https://picsum.photos/1200/500?blur=2" alt="Close-up garden planting and care details" />
</div>
<div class="feature-grid">
<div class="feature"><strong>Watering plans</strong><p>Get practical guidance for clay soils, raised beds, and container gardens.</p></div>
<div class="feature"><strong>Soil improvement</strong><p>Learn how compost, aeration, and mulch affect root performance and moisture retention.</p></div>
<div class="feature"><strong>Pest awareness</strong><p>Identify common signs of stress early and choose low-impact solutions first.</p></div>
</div>
</section>
<section class="panel section" id="landscaping">
<h3>Landscaping Ideas With Real-World Planning Built In</h3>
<p class="lead">
Landscaping is more than aesthetics. It needs grading, drainage, access, and long-term upkeep to
function well through every season. Our landscaping features cover pathway layouts, bed edging,
privacy screens, hardscape balance, and how to choose the right materials for your climate and
maintenance preferences.
</p>
<div class="split">
<div>
<p>
If your yard stays wet after heavy rain, the first step is understanding the site. A proper
design considers slope, runoff direction, and the need for French drains or permeable surfaces.
For larger projects, we talk through retaining walls, base preparation, and when a contractor
should assess load-bearing conditions before excavation begins.
</p>
<p>
For visual impact, we recommend layering textures: tall grasses, flowering shrubs, evergreen
structure, and seasonal color. The result is a landscape that feels intentional without being
high maintenance. It should work from the curb, the patio, and the kitchen window.
</p>
<div class="cta-row">
<a class="btn primary" href="#contact">Get Quote</a>
<a class="btn secondary" href="#faq">View FAQs</a>
</div>
</div>
<div class="card">
<h4>Popular project types</h4>
<ul class="list">
<li>Front-yard refreshes with low-water planting palettes</li>
<li>Backyard privacy borders using layered evergreens</li>
<li>Walkway and border redesigns with clean edging</li>
<li>Drainage-aware beds and rain-friendly planting zones</li>
</ul>
</div>
</div>
</section>
<section class="panel section" id="home-improvement">
<h3>Home Improvement Guidance for the Inside and Outside of Your House</h3>
<p class="lead">
A beautiful property starts with sound basics. This section covers approachable home improvement
projects that improve comfort, curb appeal, and value—without turning every upgrade into a major
renovation. We focus on projects that are realistic for homeowners while still emphasizing proper
technique and safe decision-making.
</p>
<div class="grid-2">
<div class="card">
<h4>Exterior updates that matter</h4>
<p>
Fresh paint, repaired trim, updated porch lighting, and weather-sealed entry points make a
visible difference. We also explain when fascia damage, failing caulk, or roof-edge wear should
be addressed before adding decorative finishes. Small maintenance tasks often prevent larger
structural problems later.
</p>
</div>
<div class="card">
<h4>Interior upgrades with lasting value</h4>
<p>
Inside the home, we focus on durable finishes, easy-care surfaces, and storage improvements
that simplify daily living. From mudroom organization to kitchen hardware updates, our guides
help you choose materials that are attractive, functional, and easy to maintain.
</p>
</div>
</div>
<div class="content-image">
<img src="https://picsum.photos/1200/520?grayscale" alt="Modern home improvement and decor scene" />
</div>
</section>
<section class="panel section" id="outdoor-living">
<h3>Outdoor Living Spaces Designed for Everyday Use</h3>
<p class="lead">
A patio, deck, or backyard seating area should feel like a genuine extension of the home. We help
you think through shade, traffic flow, furniture scale, and weather-resistant finishes so your space
works for quiet mornings, family dinners, and weekend hosting. The goal is comfort without clutter.
</p>
<div class="grid-2">
<div class="card">
<h4>Material choices with staying power</h4>
<p>
Composite decking, sealed wood, pavers, and exterior-grade fabrics each bring different
maintenance needs. We compare durability, heat retention, and cleanup requirements so you can
choose options that suit your lifestyle. Good outdoor design starts with materials that fit the
way you actually live.
</p>
</div>
<div class="card">
<h4>Comfort details that elevate a space</h4>
<p>
Layered lighting, outdoor rugs, potted greenery, and modest wind protection can transform a
plain yard into a retreat. We also look at seating zones, fire features, and practical storage
for cushions, tools, and planters so the area stays tidy and usable.
</p>
</div>
</div>
<div class="quote" style="margin-top:18px;">
<p>
“Our patio felt unfinished for years. The design advice here helped us solve drainage near the
foundation, choose the right pavers, and build a space we actually use every week.”
</p>
<cite>— Maren T., homeowner</cite>
</div>
</section>
<section class="panel section" id="resources">
<h3>Featured Resources for Faster Planning</h3>
<p class="lead">
Need a starting point? These guides and tools help you move through project planning with less
uncertainty. We’ve included practical references for materials, seasonal timelines, and project
scoping so you can estimate effort before you begin.
</p>
<div class="feature-grid">
<div class="feature"><strong>Planting calendar</strong><p>Know when to sow, transplant, mulch, and cut back by season.</p></div>
<div class="feature"><strong>Tool checklist</strong><p>Build a list of essentials for digging, edging, pruning, and finishing.</p></div>
<div class="feature"><strong>Budget planner</strong><p>Estimate materials and prioritize upgrades by impact and complexity.</p></div>
</div>
</section>
<section class="panel section" id="calculator">
<h3>Interactive Project Cost Calculator</h3>
<p class="lead">
Estimate a rough materials budget for a garden bed or landscape refresh. This tool is designed to
help with early planning before you request quotes or purchase supplies.
</p>
<div class="calculator" id="calc-form">
<div>
<label for="area">Area size</label>
<input id="area" type="number" value="120" min="10" />
</div>
<div>
<label for="project">Project type</label>
<select id="project">
<option value="7">Mulch refresh</option>
<option value="14">Garden bed install</option>
<option value="22">Patio border redesign</option>
<option value="30">Full landscape upgrade</option>
</select>
</div>
<div>
<label for="quality">Material quality</label>
<select id="quality">
<option value="1">Standard</option>
<option value="1.25">Premium</option>
<option value="1.5">Designer</option>
</select>
</div>
<div>
<button class="btn primary" type="button" onclick="calculateEstimate()" style="width:100%">Calculate</button>
</div>
<div class="calc-result" id="estimate">
Estimated materials cost: <strong>$1,260</strong>
</div>
</div>
</section>
<section class="panel section faq" id="faq">
<h3>Frequently Asked Questions</h3>
<details>
<summary>How do I know if my yard needs drainage work?</summary>
<p>
Standing water after rainfall, soggy lawn sections, or erosion near walkways often indicates a
drainage issue. We recommend reviewing slope, soil type, downspout placement, and whether the
area would benefit from grading, dry creek channels, or subsurface drainage solutions.
</p>
</details>
<details>
<summary>What’s the easiest way to start a low-maintenance garden?</summary>
<p>
Begin with plants suited to your light conditions and local climate, then build around a simple
structure of shrubs, perennials, and mulch. Choosing the right plants from the start reduces
watering, pruning, and replacement costs.
</p>
</details>
<details>
<summary>When should I hire a professional?</summary>
<p>
If your project involves electrical work, major grading, retaining walls, or anything that may
affect structural integrity, it is best to bring in a licensed professional. The same applies
when load-bearing concerns or drainage complications make a project more technical.
</p>
</details>
</section>
<section class="panel section" id="testimonials">
<h3>What Homeowners Are Saying</h3>
<div class="grid-2">
<div class="card">
<h4>Practical, not vague</h4>
<p>
“I appreciated the detailed explanations about mulch depth, soil prep, and edging. It felt like
advice from someone who actually understands what it takes to maintain a yard.”
</p>
</div>
<div class="card">
<h4>Easy to act on</h4>
<p>
“The layout ideas were clear, the checklists were helpful, and the project calculator gave us a
realistic starting point for getting quotes.”
</p>
</div>
</div>
</section>
<section class="panel section" id="contact">
<h3>Contact Verdant House & Garden</h3>
<p class="lead">
Ready to plan your next project? Reach out for design guidance, content partnerships, or a custom
consultation request.
</p>
<div class="grid-2">
<div class="card">
<h4>Office details</h4>
<p>
1847 Willow Lane<br />
Portland, OR 97205<br />
hello@verdanthousegarden.com<br />
(503) 555-0198
</p>
</div>
<div class="card">
<h4>Hours</h4>
<p>
Monday–Friday: 9:00 AM – 5:30 PM<br />
Saturday: 10:00 AM – 2:00 PM<br />
Sunday: Closed
</p>
</div>
</div>
</section>
</div>
<aside class="sidebar">
<div class="panel">
<h4>Quick Links</h4>
<ul class="mini-list">
<li><strong>Before & After:</strong> See how small upgrades create a polished outdoor finish.</li>
<li><strong>Tool Reviews:</strong> Compare pruners, hoses, spreaders, and compact power tools.</li>
<li><strong>Local Resources:</strong> Find compost suppliers, native plant nurseries, and hardware stores.</li>
</ul>
</div>
<div class="panel">
<h4>Popular Topics</h4>
<div class="tags">
<span class="tag">Mulching</span>
<span class="tag">Drainage</span>
<span class="tag">Native Plants</span>
<span class="tag">Deck Care</span>
<span class="tag">Privacy Screens</span>
<span class="tag">Soil Prep</span>
<span class="tag">Curb Appeal</span>
</div>
</div>
<div class="panel">
<h4>Project Snapshot</h4>
<img src="https://placehold.co/700x420/7a9b5f/ffffff?text=Before+%26+After&font=montserrat" alt="Before and after project preview placeholder" style="border-radius:16px;margin-bottom:12px;" />
<p style="margin:0;color:var(--muted)">
A strong outdoor transformation often starts with clean borders, corrected drainage, and plants
matched to the site conditions.
</p>
</div>
</aside>
</div>
</main>
<footer>
<div class="container">
<div class="footer-grid">
<div>
<h5>Verdant House & Garden</h5>
<p style="margin:0;color:var(--muted);max-width:56ch">
Home improvement, gardening, and outdoor living resources for people who want practical advice
and a polished result.
</p>
<div class="social" style="margin-top:14px;">
<a href="#" aria-label="Instagram">Instagram</a>
<a href="#" aria-label="Pinterest">Pinterest</a>
<a href="#" aria-label="Facebook">Facebook</a>
<a href="#" aria-label="YouTube">YouTube</a>
</div>
</div>
<div>
<h5>Standard Links</h5>
<ul>
<li><a href="#">Privacy Policy</a></li>
<li><a href="#">Terms of Use</a></li>
<li><a href="#">Accessibility</a></li>
</ul>
</div>
<div>
<h5>Contact</h5>
<ul>
<li>hello@verdanthousegarden.com</li>
<li>(503) 555-0198</li>
<li>1847 Willow Lane, Portland, OR</li>
</ul>
</div>
</div>
<div class="copyright">© 2026 Verdant House & Garden. All rights reserved.</div>
</div>
</footer>
<script>
function calculateEstimate() {
const area = Number(document.getElementById('area').value || 0);
const rate = Number(document.getElementById('project').value);
const quality = Number(document.getElementById('quality').value);
const total = Math.round(area * rate * quality);
document.getElementById('estimate').innerHTML = `Estimated materials cost: <strong>$${total.toLocaleString()}</strong>`;
}
</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:41:26.826Z",
"url": "https://benchmark.aimac.invalid/95d486248e63204e75386358fca83dfcdf7903b91d802bba4cf1dae82173651f.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-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "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": "<nav aria-label=\"Primary\">",
"target": [
"nav"
]
}
]
},
{
"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": "<nav aria-label=\"Primary\">",
"target": [
"nav"
]
}
]
},
{
"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-prohibited-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"impact": null,
"html": "<nav aria-label=\"Primary\">",
"target": [
"nav"
]
}
]
},
{
"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": "<nav aria-label=\"Primary\">",
"target": [
"nav"
]
}
]
},
{
"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": "<nav aria-label=\"Primary\">",
"target": [
"nav"
]
}
]
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "important-letter-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-word-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-line-height",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "line-height in the style attribute is not set to !important, or meets the minimum"
}
],
"none": [],
"impact": null,
"html": "<div class=\"quote\" style=\"margin-top:18px;\">",
"target": [
".quote"
]
}
]
},
{
"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 primary\" type=\"button\" onclick=\"calculateEstimate()\" style=\"width:100%\">Calculate</button>",
"target": [
"button"
]
}
]
},
{
"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>Verdant House & Garden</h1>",
"target": [
"h1"
]
},
{
"html": "<h2>Grow a better home, from the foundation to the flower bed.</h2>",
"target": [
"h2"
]
},
{
"html": "<h3>Plant Guides That Help Your Garden Thrive</h3>",
"target": [
"#plant-care > h3"
]
},
{
"html": "<h4>Seasonal care made simple</h4>",
"target": [
"#plant-care > .grid-2 > .card:nth-child(1) > h4"
]
},
{
"html": "<h4>Pruning, feeding, and soil health</h4>",
"target": [
"#plant-care > .grid-2 > .card:nth-child(2) > h4"
]
},
{
"html": "<h3>Landscaping Ideas With Real-World Planning Built In</h3>",
"target": [
"#landscaping > h3"
]
},
{
"html": "<h4>Popular project types</h4>",
"target": [
".split > .card > h4"
]
},
{
"html": "<h3>Home Improvement Guidance for the Inside and Outside of Your House</h3>",
"target": [
"#home-improvement > h3"
]
},
{
"html": "<h4>Exterior updates that matter</h4>",
"target": [
"#home-improvement > .grid-2 > .card:nth-child(1) > h4"
]
},
{
"html": "<h4>Interior upgrades with lasting value</h4>",
"target": [
"#home-improvement > .grid-2 > .card:nth-child(2) > h4"
]
},
{
"html": "<h3>Outdoor Living Spaces Designed for Everyday Use</h3>",
"target": [
"#outdoor-living > h3"
]
},
{
"html": "<h4>Material choices with staying power</h4>",
"target": [
"#outdoor-living > .grid-2 > .card:nth-child(1) > h4"
]
},
{
"html": "<h4>Comfort details that elevate a space</h4>",
"target": [
"#outdoor-living > .grid-2 > .card:nth-child(2) > h4"
]
},
{
"html": "<h3>Featured Resources for Faster Planning</h3>",
"target": [
"#resources > h3"
]
},
{
"html": "<h3>Interactive Project Cost Calculator</h3>",
"target": [
"#calculator > h3"
]
},
{
"html": "<h3>Frequently Asked Questions</h3>",
"target": [
"#faq > h3"
]
},
{
"html": "<h3>What Homeowners Are Saying</h3>",
"target": [
"#testimonials > h3"
]
},
{
"html": "<h4>Practical, not vague</h4>",
"target": [
"#testimonials > .grid-2 > .card:nth-child(1) > h4"
]
},
{
"html": "<h4>Easy to act on</h4>",
"target": [
"#testimonials > .grid-2 > .card:nth-child(2) > h4"
]
},
{
"html": "<h3>Contact Verdant House & Garden</h3>",
"target": [
"#contact > h3"
]
},
{
"html": "<h4>Office details</h4>",
"target": [
"#contact > .grid-2 > .card:nth-child(1) > h4"
]
},
{
"html": "<h4>Hours</h4>",
"target": [
"#contact > .grid-2 > .card:nth-child(2) > h4"
]
},
{
"html": "<h4>Quick Links</h4>",
"target": [
".panel:nth-child(1) > h4"
]
},
{
"html": "<h4>Popular Topics</h4>",
"target": [
".panel:nth-child(2) > h4"
]
},
{
"html": "<h4>Project Snapshot</h4>",
"target": [
".panel:nth-child(3) > h4"
]
},
{
"html": "<h5>Verdant House & Garden</h5>",
"target": [
"div:nth-child(1) > h5"
]
},
{
"html": "<h5>Standard Links</h5>",
"target": [
"div:nth-child(2) > h5"
]
},
{
"html": "<h5>Contact</h5>",
"target": [
"div:nth-child(3) > h5"
]
}
],
"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": "#ffffff",
"bgColor": "#2f6b4f",
"contrastRatio": 6.29,
"fontSize": "12.0pt (16px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 6.29"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a class=\"btn primary\" href=\"#calculator\">Calculate Materials</a>",
"target": [
"a[href$=\"#calculator\"]"
]
}
]
},
{
"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": "area",
"relatedNodes": [],
"impact": "critical",
"message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<input id=\"area\" type=\"number\" value=\"120\" min=\"10\">",
"target": [
"#area"
]
}
]
},
{
"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=\"area\">Area size</label>",
"target": [
"label[for=\"area\"]"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<input id=\"area\" type=\"number\" value=\"120\" min=\"10\">",
"target": [
"#area"
]
}
]
},
{
"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/120x120/2f6b4f/ffffff?text=VH&font=montserrat\" alt=\"Verdant House & Garden logo\">",
"target": [
"img[alt=\"Verdant House & Garden 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": "Area size"
},
"relatedNodes": [
{
"html": "<label for=\"area\">Area size</label>",
"target": [
"label[for=\"area\"]"
]
}
],
"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": "<input id=\"area\" type=\"number\" value=\"120\" min=\"10\">",
"target": [
"#area"
]
}
]
},
{
"id": "link-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a href=\"#plant-care\">Plant Care</a>",
"target": [
"a[href$=\"#plant-care\"]"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul>",
"target": [
"nav > ul"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li><a href=\"#plant-care\">Plant Care</a></li>",
"target": [
"nav > ul > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://placehold.co/120x120/2f6b4f/ffffff?text=VH&font=montserrat\" alt=\"Verdant House & Garden logo\">",
"target": [
"img[alt=\"Verdant House & Garden 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": "Project type"
},
"relatedNodes": [
{
"html": "<label for=\"project\">Project type</label>",
"target": [
"label[for=\"project\"]"
]
}
],
"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=\"project\">\n <option value=\"7\">Mulch refresh</option>\n <option value=\"14\">Garden bed install</option>\n <option value=\"22\">Patio border redesign</option>\n <option value=\"30\">Full landscape upgrade</option>\n </select>",
"target": [
"#project"
]
}
]
},
{
"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 know if my yard needs drainage work?</summary>",
"target": [
"details:nth-child(2) > 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": 103,
"height": 44.3
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (103px by 44.3px, should be at least 24px by 24px)"
},
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#plant-care\">Plant Care</a>",
"target": [
"a[href$=\"#plant-care\"]"
]
}
]
}
],
"incomplete": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": null,
"bgColor": null,
"contrastRatio": 0,
"fontSize": "12.6pt (16.8px)",
"fontWeight": "bold",
"messageKey": "bgGradient",
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<header>",
"target": [
"header"
]
},
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a background gradient"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<h1>Verdant House & Garden</h1>",
"target": [
"h1"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background gradient"
}
]
}
],
"violations": [],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 6180
},
{
"y": 576,
"height": 6180
},
{
"y": 1152,
"height": 6180
},
{
"y": 1728,
"height": 6180
},
{
"y": 2304,
"height": 6180
},
{
"y": 2880,
"height": 6180
},
{
"y": 3456,
"height": 6180
},
{
"y": 4032,
"height": 6180
},
{
"y": 4608,
"height": 6180
},
{
"y": 5184,
"height": 6180
},
{
"y": 5460,
"height": 6180
}
],
"scans": 12,
"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 "Home and Garden" 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: "Home and Garden"
- Description: Home improvement, gardening, DIY guides, landscaping, and decor resources.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Home and Garden" 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: "Plant Care", "Landscaping", "Contact".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Home and Garden" category. Consider themes similar to: "Plant Guides", "Outdoor Living", "Home Improvement".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "mulching", "drainage", "load-bearing".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Calculate Materials", "Get Quote", "Get Design Ideas".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Home and Garden" sector. Ideas similar but not limited to: "project cost calculator".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "before & after", "local resources", "tool reviews".
- **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.