Recursive Flint (free) – Home and Garden

via Recursive · Generated

  • AIMAC Debt 3.71
  • Cost $0.00
  • Total Violations 6
  • HTML Size 28 KB
  • Em Dashes 0

Screenshot

View Recursive Flint (free) Home and Garden page View Live Page

Accessibility Issues Found

6 Serious

  • color-contrast serious 6 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <small>Grow your home. Naturally.</small>

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>TerraNest | Home and Garden Design, DIY, and Landscaping</title>
  <meta name="description" content="TerraNest is a home and garden resource for DIY projects, home improvement, sustainable landscaping, and outdoor living guidance.">
  <style>
    :root {
      --ink: #22302a;
      --pine: #2f5d50;
      --moss: #6b8f71;
      --sand: #f4f1ea;
      --cream: #faf8f3;
      --clay: #c96f4a;
      --white: #ffffff;
      --line: #e4ddcf;
      --shadow: 0 24px 60px rgba(34, 48, 42, 0.14);
      --radius: 18px;
    }

    * { box-sizing: border-box; }

    html { scroll-behavior: smooth; }

    body {
      margin: 0;
      font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
      color: var(--ink);
      background: var(--cream);
      line-height: 1.65;
    }

    h1, h2, h3, h4 { line-height: 1.15; margin: 0 0 0.5em; font-weight: 700; }
    h1 { font-size: clamp(2.4rem, 5vw, 4rem); letter-spacing: -0.02em; }
    h2 { font-size: clamp(1.9rem, 3.6vw, 2.8rem); letter-spacing: -0.015em; }
    h3 { font-size: 1.35rem; }

    p { margin: 0 0 1rem; }

    img { max-width: 100%; display: block; }

    .container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

    .eyebrow {
      text-transform: uppercase;
      letter-spacing: 0.18em;
      font-size: 0.78rem;
      font-weight: 700;
      color: var(--clay);
      margin-bottom: 0.8rem;
    }

    .lead { font-size: 1.18rem; color: #4a5a52; }

    .section { padding: 96px 0; background: var(--white); }
    .section-alt { background: var(--sand); }

    .section-head { max-width: 760px; margin-bottom: 56px; }
    .section-head p { color: #55655d; }

    .split {
      display: grid;
      grid-template-columns: 1.05fr 0.95fr;
      gap: 56px;
      align-items: center;
    }
    .split-reverse > .section-copy { order: 2; }
    .split-reverse > .media-frame { order: 1; }

    .media-frame {
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: var(--shadow);
      background: var(--line);
    }

    .btn {
      display: inline-block;
      padding: 14px 28px;
      background: var(--pine);
      color: var(--white);
      border: 2px solid var(--pine);
      border-radius: 999px;
      font-weight: 700;
      text-decoration: none;
      cursor: pointer;
      transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
    }
    .btn:hover { background: #27493f; transform: translateY(-2px); }
    .btn-outline { background: transparent; color: var(--pine); }
    .btn-outline:hover { background: var(--pine); color: var(--white); }
    .btn-small { padding: 10px 20px; font-size: 0.9rem; }

    .text-link {
      color: var(--clay);
      font-weight: 700;
      text-decoration: none;
    }
    .text-link:hover { text-decoration: underline; }

    .hero {
      background:
        linear-gradient(rgba(34, 48, 42, 0.55), rgba(34, 48, 42, 0.55)),
        url("https://picsum.photos/1600/1000?grayscale&blur=2") center / cover no-repeat;
      color: var(--white);
      padding: 120px 0;
    }
    .hero-inner { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 64px; align-items: center; }
    .hero .lead { color: #e8e4da; }
    .hero-actions { display: flex; gap: 16px; flex-wrap: wrap; margin: 28px 0; }
    .hero-actions .btn-outline { color: var(--white); border-color: rgba(255, 255, 255, 0.8); }
    .hero-actions .btn-outline:hover { background: var(--white); color: var(--ink); }
    .hero-actions.center { justify-content: center; }
    .hero-stats { display: flex; gap: 40px; flex-wrap: wrap; margin: 0; }
    .hero-stats div { border-left: 3px solid var(--clay); padding-left: 16px; }
    .hero-stats dt { font-size: 2rem; font-weight: 800; }
    .hero-stats dd { margin: 0; color: #d8d2c4; }

    .feature-grid { display: grid; gap: 28px; }
    .feature-grid.three { grid-template-columns: repeat(3, 1fr); }
    .feature-grid.six { grid-template-columns: repeat(3, 1fr); }

    .card {
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: 0 12px 30px rgba(34, 48, 42, 0.08);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    .card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
    .card img { width: 100%; height: 220px; object-fit: cover; }
    .card-body { padding: 24px; }
    .card-body p { color: #55655d; }

    .check-list { list-style: none; padding: 0; margin: 0 0 28px; }
    .check-list li { padding: 10px 0 10px 36px; position: relative; border-bottom: 1px solid rgba(255,255,255,0.25); }
    .check-list li:last-child { border-bottom: 0; }
    .check-list li::before {
      content: "✓";
      position: absolute;
      left: 0;
      top: 10px;
      width: 24px;
      height: 24px;
      background: var(--clay);
      color: var(--white);
      border-radius: 50%;
      display: grid;
      place-items: center;
      font-weight: 800;
    }

    .features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
    .feature { padding: 28px; border-radius: var(--radius); background: var(--cream); border: 1px solid var(--line); }
    .feature h3 { margin-top: 16px; }
    .feature p { color: #55655d; margin: 0; }
    .feature .icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      background: var(--pine);
      color: var(--white);
      display: grid;
      place-items: center;
      font-size: 1.4rem;
      font-weight: 800;
    }

    .faq { max-width: 820px; margin: 72px auto 0; }
    .faq details {
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 20px 24px;
      margin-bottom: 16px;
    }
    .faq summary { font-weight: 700; cursor: pointer; }
    .faq details p { margin: 12px 0 0; color: #55655d; }

    .calendar { max-width: 860px; margin: 0 auto; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 32px; box-shadow: 0 12px 30px rgba(34,48,42,0.08); }
    .month-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
    .month-buttons button {
      border: 1px solid var(--line);
      background: var(--cream);
      color: var(--ink);
      border-radius: 999px;
      padding: 10px 18px;
      cursor: pointer;
      font-weight: 600;
    }
    .month-buttons button.active, .month-buttons button:hover { background: var(--pine); color: var(--white); border-color: var(--pine); }
    #task-list { margin: 0; padding-left: 20px; color: #55655d; }
    #task-list li { margin-bottom: 8px; }

    .testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
    .testimonial { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 30px; box-shadow: 0 12px 30px rgba(34,48,42,0.08); }
    .testimonial blockquote { margin: 0 0 20px; font-size: 1.05rem; font-style: italic; color: #3d4b44; }
    .testimonial-author { display: flex; align-items: center; gap: 14px; }
    .testimonial-author img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
    .testimonial-author strong { display: block; }
    .testimonial-author span { color: #6b7a71; font-size: 0.9rem; }

    .cta { background: var(--pine); color: var(--white); text-align: center; padding: 96px 0; }
    .cta .btn { background: var(--white); color: var(--pine); border-color: var(--white); }
    .cta .btn:hover { background: var(--sand); }
    .cta .btn-outline { color: var(--white); border-color: rgba(255,255,255,0.8); }
    .cta .btn-outline:hover { background: var(--white); color: var(--pine); }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 100;
      background: rgba(250, 248, 243, 0.92);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--line);
    }
    .header-inner { display: flex; align-items: center; gap: 32px; padding-top: 14px; padding-bottom: 14px; }
    .brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--ink); }
    .brand img { width: 110px; height: 40px; object-fit: contain; }
    .brand-text { font-size: 1.45rem; font-weight: 800; letter-spacing: -0.02em; }
    .brand-text small { display: block; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--clay); }
    .main-nav { display: flex; gap: 22px; margin-left: auto; }
    .main-nav a { color: var(--ink); text-decoration: none; font-weight: 600; font-size: 0.95rem; }
    .main-nav a:hover, .main-nav a.active { color: var(--pine); }
    .header-cta { margin-left: 8px; }

    .site-footer { background: #1d2b25; color: #d8d2c4; }
    .footer-grid { display: grid; grid-template-columns: 1.2fr 0.8fr 0.8fr 1fr; gap: 40px; padding-top: 72px; padding-bottom: 48px; }
    .site-footer h4 { color: var(--white); margin-bottom: 16px; }
    .site-footer a { color: #d8d2c4; text-decoration: none; }
    .site-footer a:hover { color: var(--white); text-decoration: underline; }
    .site-footer ul { list-style: none; padding: 0; margin: 0; }
    .site-footer li { margin-bottom: 8px; }
    .social a { display: inline-block; margin-right: 12px; font-weight: 700; }
    .footer-bottom { border-top: 1px solid rgba(255,255,255,0.12); padding: 24px 0; display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; font-size: 0.9rem; }
    .legal { display: flex; gap: 20px; }

    @media (max-width: 1024px) {
      .split, .hero-inner { grid-template-columns: 1fr; }
      .split-reverse > .section-copy { order: 0; }
      .split-reverse > .media-frame { order: 1; }
      .feature-grid.three, .feature-grid.six, .features, .testimonial-grid { grid-template-columns: 1fr 1fr; }
      .footer-grid { grid-template-columns: 1fr 1fr; }
    }

    @media (max-width: 760px) {
      .section { padding: 64px 0; }
      .feature-grid.three, .feature-grid.six, .features, .testimonial-grid { grid-template-columns: 1fr; }
      .main-nav { display: none; }
      .header-inner { flex-wrap: wrap; }
    }
  </style>
</head>
<body>
  <header class="site-header">
    <div class="container header-inner">
      <a class="brand" href="#home">
        <img src="https://placehold.co/160x60?text=TerraNest&font=poppins" alt="TerraNest logo">
        <span class="brand-text">TerraNest<small>Grow your home. Naturally.</small></span>
      </a>
      <nav class="main-nav" aria-label="Primary navigation">
        <a href="#home" class="active">Home</a>
        <a href="#diy">DIY Projects</a>
        <a href="#landscaping">Landscaping</a>
        <a href="#improvement">Home Improvement</a>
        <a href="#sustainability">Sustainability</a>
        <a href="#guides">Garden Guides</a>
        <a href="#contact">Contact</a>
      </nav>
      <a href="#contact" class="btn btn-small header-cta">Get Quote</a>
    </div>
  </header>

  <main>
    <section class="hero" id="home">
      <div class="container hero-inner">
        <div class="hero-copy">
          <p class="eyebrow">Home &amp; Garden Studio</p>
          <h1>Grow a home that feels as good as it looks.</h1>
          <p class="lead">TerraNest helps homeowners turn small backyards, aging interiors, and unused outdoor spaces into thoughtful places to live, play, and grow food.</p>
          <p>From hardscaping and soil amendment to sustainable planting plans, our guides combine practical DIY instruction with design thinking. Whether you are planning a full landscape renovation or tackling one weekend project, TerraNest gives you the structure, confidence, and material lists to move forward.</p>
          <div class="hero-actions">
            <a href="#diy" class="btn">Plan Project</a>
            <a href="#contact" class="btn btn-outline">Get Quote</a>
          </div>
          <dl class="hero-stats">
            <div><dt>12k+</dt><dd>Projects guided</dd></div>
            <div><dt>340</dt><dd>Expert reviews</dd></div>
            <div><dt>28</dt><dd>Neighborhoods served</dd></div>
          </dl>
        </div>
        <div class="hero-media">
          <img src="https://picsum.photos/1200/900?grayscale&blur=2" alt="Modern backyard landscaping with native plants and outdoor seating">
        </div>
      </div>
    </section>

    <section class="section" id="diy">
      <div class="container">
        <div class="section-head">
          <p class="eyebrow">Inspiration</p>
          <h2>DIY Projects for Real Homes</h2>
          <p>TerraNest DIY guides are written for homeowners who want lasting improvements without unnecessary complexity. We focus on projects that are safe, measurable, and rewarding, from transforming a small patio into an edible garden to repairing drainage problems before they affect foundations.</p>
          <p>Each project page includes step-by-step instructions, tool requirements, material quantities, and troubleshooting notes. Our goal is to help you complete real work, not just imagine a better room or yard.</p>
          <a href="#diy" class="btn">Browse DIY Projects</a>
        </div>
        <div class="feature-grid three">
          <article class="card">
            <img src="https://placehold.co/800x600/orange/white?text=Garden+Revival&font=poppins" alt="Illustration of backyard garden revival">
            <div class="card-body">
              <h3>Backyard Garden Revival</h3>
              <p>Convert unused lawn or patio space into a productive edible garden. Learn bed preparation, companion planting, and seasonal crop rotation.</p>
              <a href="#diy" class="text-link">View project guide</a>
            </div>
          </article>
          <article class="card">
            <img src="https://placehold.co/800x600/forestgreen/white?text=Drainage+Repair&font=poppins" alt="Illustration of drainage repair and hardscaping">
            <div class="card-body">
              <h3>Drainage and Hardscape Repair</h3>
              <p>Address low spots, cracked patios, and water pooling with practical grading and hardscaping techniques that protect both landscape and home.</p>
              <a href="#diy" class="text-link">View project guide</a>
            </div>
          </article>
          <article class="card">
            <img src="https://placehold.co/800x600/slateblue/white?text=Storage+Shed&font=poppins" alt="Illustration of custom storage shed installation">
            <div class="card-body">
              <h3>Built-In Storage Shed</h3>
              <p>Build a durable storage shed for tools, outdoor gear, and seasonal decor. Includes lumber lists, foundation options, and finish guidance.</p>
              <a href="#diy" class="text-link">View project guide</a>
            </div>
          </article>
        </div>
      </div>
    </section>

    <section class="section section-alt" id="landscaping">
      <div class="container split">
        <div class="section-copy">
          <p class="eyebrow">Outdoor Living</p>
          <h2>Landscaping That Works With Nature</h2>
          <p>Landscaping is more than planting pretty flowers. A thoughtful landscape plan considers soil health, water availability, sun exposure, and long-term maintenance. TerraNest combines landscape design principles with practical home improvement guidance.</p>
          <p>Our outdoor projects often begin with soil testing and amendment, followed by hardscaping, irrigation planning, and plant selection. This sequence helps prevent costly mistakes and supports healthier root systems. For annuals and perennials, timing is critical, especially in regions with hot summers or mild winters.</p>
          <ul class="check-list">
            <li>Hardscaping design for patios, paths, and retaining walls</li>
            <li>Soil amendment and compost integration</li>
            <li>Water-smart irrigation and drainage solutions</li>
            <li>Seasonal planting and maintenance calendars</li>
          </ul>
          <div class="hero-actions">
            <a href="#contact" class="btn">Calculate Materials</a>
            <a href="#contact" class="btn btn-outline">Get Quote</a>
          </div>
        </div>
        <div class="media-frame">
          <img src="https://picsum.photos/1000/800?grayscale&blur=2" alt="Landscape design with native plants, stone hardscaping, and outdoor seating">
        </div>
      </div>
    </section>

    <section class="section" id="improvement">
      <div class="container">
        <div class="section-head">
          <p class="eyebrow">Home Systems</p>
          <h2>Home Improvement and Sustainable Living</h2>
          <p>Home improvement is not only about aesthetics. Structural updates, ventilation, insulation, and lighting all affect comfort and long-term value. TerraNest explores how these upgrades connect to garden performance, indoor air quality, and sustainable living.</p>
          <p>Our guides cover energy-conscious retrofits, durable material choices, and everyday practices that reduce waste. By linking home improvement topics with outdoor care, we help homeowners see the whole property rather than isolated rooms and yards.</p>
        </div>
        <div class="features">
          <div class="feature">
            <div class="icon">S</div>
            <h3>Sustainable Gardening</h3>
            <p>Water-saving planting, composting, and organic soil care for healthier ecosystems.</p>
          </div>
          <div class="feature">
            <div class="icon">H</div>
            <h3>Hardscaping</h3>
            <p>Patios, paths, retaining walls, and outdoor structures built with durable materials.</p>
          </div>
          <div class="feature">
            <div class="icon">I</div>
            <h3>Indoor Improvement</h3>
            <p>Lighting, ventilation, storage, and finishes that improve daily living.</p>
          </div>
          <div class="feature">
            <div class="icon">W</div>
            <h3>Water Management</h3>
            <p>Rainwater harvesting, drainage, irrigation, and drought-tolerant design.</p>
          </div>
          <div class="feature">
            <div class="icon">C</div>
            <h3>Composting</h3>
            <p>Backyard compost systems and kitchen-to-garden nutrient cycles.</p>
          </div>
          <div class="feature">
            <div class="icon">B</div>
            <h3>Budget Planning</h3>
            <p>Cost estimates, material lists, and phased project planning.</p>
          </div>
        </div>

        <div class="faq" id="guides">
          <h2>Frequently Asked Questions</h2>
          <details>
            <summary>What is hardscaping and why does it matter?</summary>
            <p>Hardscaping refers to the non-living elements of a landscape, such as patios, walkways, retaining walls, and outdoor kitchens. It provides structure and defines outdoor spaces, but it must be installed with proper drainage and foundation protection.</p>
          </details>
          <details>
            <summary>How much soil amendment should I add to my garden beds?</summary>
            <p>A general guideline is 2 to 4 inches of compost or aged soil amendment across planting beds, mixed into the top 6 to 8 inches before planting. Actual rates depend on soil tests, existing soil quality, and plant type.</p>
          </details>
          <details>
            <summary>How often should I aerate my lawn?</summary>
            <p>For cool-season grasses, once per year in early fall is often recommended. Warm-season grasses may benefit from aeration during their growing season. Overseeding after aeration improves density.</p>
          </details>
          <details>
            <summary>What plants are best for sustainable landscaping?</summary>
            <p>Perennials, native grasses, drought-tolerant shrubs, and pollinator-friendly plants are commonly used. The best selection depends on local climate, soil type, and water availability.</p>
          </details>
        </div>
      </div>
    </section>

    <section class="section section-alt" id="calendar">
      <div class="container">
        <div class="section-head">
          <p class="eyebrow">Stay Ahead</p>
          <h2>Seasonal Task Calendar</h2>
          <p>Home and garden work changes dramatically with the seasons. Use this interactive calendar to plan pruning, planting, soil care, and outdoor maintenance before tasks become urgent.</p>
        </div>
        <div class="calendar">
          <div class="month-buttons" role="group" aria-label="Seasonal task months">
            <button type="button" class="active" data-month="January">January</button>
            <button type="button" data-month="February">February</button>
            <button type="button" data-month="March">March</button>
            <button type="button" data-month="April">April</button>
            <button type="button" data-month="May">May</button>
            <button type="button" data-month="June">June</button>
            <button type="button" data-month="July">July</button>
            <button type="button" data-month="August">August</button>
            <button type="button" data-month="September">September</button>
            <button type="button" data-month="October">October</button>
            <button type="button" data-month="November">November</button>
            <button type="button" data-month="December">December</button>
          </div>
          <div class="task-panel">
            <h3 id="task-month">January</h3>
            <ul id="task-list"></ul>
          </div>
        </div>
      </div>
    </section>

    <section class="section" id="testimonials">
      <div class="container">
        <div class="section-head">
          <p class="eyebrow">Kind Words</p>
          <h2>Homeowners Who Started Their Projects</h2>
          <p>Real progress often comes from small, well-planned steps. Our community has helped thousands of homeowners complete meaningful improvements with confidence.</p>
        </div>
        <div class="testimonial-grid">
          <article class="testimonial">
            <blockquote>“The backyard guide gave me the exact bed layout and plant list I needed. We finished our edible garden in two weekends and now use it every summer.”</blockquote>
            <div class="testimonial-author">
              <img src="https://i.pravatar.cc/96?u=1011" alt="Portrait of homeowner Hannah">
              <div><strong>Hannah M.</strong><span>Backyard Garden Revival</span></div>
            </div>
          </article>
          <article class="testimonial">
            <blockquote>“I was nervous about the drainage project, but the material calculator and step guide made it manageable. The patio finally drains correctly.”</blockquote>
            <div class="testimonial-author">
              <img src="https://i.pravatar.cc/96?u=1024" alt="Portrait of homeowner Marcus">
              <div><strong>Marcus T.</strong><span>Landscape Drainage Repair</span></div>
            </div>
          </article>
          <article class="testimonial">
            <blockquote>“TerraNest connected the indoor storage build with our outdoor shed plan. The result feels cohesive and useful rather than just functional.”</blockquote>
            <div class="testimonial-author">
              <img src="https://i.pravatar.cc/96?u=1033" alt="Portrait of homeowner Elena">
              <div><strong>Elena R.</strong><span>Built-In Storage Shed</span></div>
            </div>
          </article>
        </div>
      </div>
    </section>

    <section class="cta" id="contact">
      <div class="container">
        <h2>Ready to plan your next project?</h2>
        <p>Tell us about your space, timeline, and goals. TerraNest will help you prioritize improvements and prepare accurate material lists.</p>
        <div class="hero-actions center">
          <a href="#contact" class="btn">Get Quote</a>
          <a href="#diy" class="btn btn-outline">Start DIY Guide</a>
        </div>
      </div>
    </section>
  </main>

  <footer class="site-footer" id="contact">
    <div class="container footer-grid">
      <div>
        <img src="https://placehold.co/160x60?text=TerraNest&font=poppins" alt="TerraNest logo">
        <p>Grow your home. Naturally. We provide practical home and garden guidance for homeowners, DIY builders, and landscape enthusiasts.</p>
        <div class="social">
          <a href="#">Facebook</a>
          <a href="#">Instagram</a>
          <a href="#">Pinterest</a>
          <a href="#">YouTube</a>
        </div>
      </div>
      <div>
        <h4>Explore</h4>
        <ul>
          <li><a href="#diy">DIY Projects</a></li>
          <li><a href="#landscaping">Landscaping</a></li>
          <li><a href="#improvement">Home Improvement</a></li>
          <li><a href="#calendar">Seasonal Calendar</a></li>
        </ul>
      </div>
      <div>
        <h4>Services</h4>
        <ul>
          <li><a href="#contact">Consultation</a></li>
          <li><a href="#contact">Material Planning</a></li>
          <li><a href="#contact">Project Coaching</a></li>
        </ul>
      </div>
      <div>
        <h4>Contact</h4>
        <ul>
          <li>123 Garden Lane</li>
          <li>Portland, OR 97205</li>
          <li><a href="mailto:hello@terranest.com">hello@terranest.com</a></li>
          <li>(503) 555-0148</li>
        </ul>
      </div>
    </div>
    <div class="container footer-bottom">
      <p>© <span id="year">2026</span> TerraNest Home &amp; Garden. All rights reserved.</p>
      <div class="legal">
        <a href="#">Privacy Policy</a>
        <a href="#">Terms of Service</a>
      </div>
    </div>
  </footer>
</body>
<script>
  const taskData = {
    January: [
      "Prune dormant trees and shrubs.",
      "Plan spring vegetable garden layout.",
      "Order seeds and start indoor seedlings.",
      "Test soil and add compost as needed."
    ],
    February: [
      "Start tomatoes and peppers indoors.",
      "Check cold frames and frost dates.",
      "Prepare beds with compost and mulch.",
      "Clean and sharpen garden tools."
    ],
    March: [
      "Plant cool-season crops.",
      "Add soil amendment to raised beds.",
      "Start warm-season annuals indoors.",
      "Prune early-flowering shrubs."
    ],
    April: [
      "Plant tomatoes, peppers, and basil outdoors.",
      "Mulch beds and install edging.",
      "Set up drip irrigation.",
      "Monitor emerging pests."
    ],
    May: [
      "Stake tomatoes and install trellises.",
      "Mow lawn regularly and sharpen mower blades.",
      "Plant summer annuals.",
      "Check irrigation for leaks."
    ],
    June: [
      "Water deeply in the early morning.",
      "Weed beds and mulch exposed soil.",
      "Harvest early crops and replant.",
      "Watch for aphids and fungal issues."
    ],
    July: [
      "Harvest vegetables and herbs.",
      "Shade sensitive plants during heat.",
      "Water lawns and containers consistently.",
      "Plan fall garden beds."
    ],
    August: [
      "Sow fall crops such as lettuce and kale.",
      "Divide overcrowded perennials.",
      "Clean and oil tools.",
      "Start compost pile if needed."
    ],
    September: [
      "Plant spring bulbs and cover crops.",
      "Aerate lawn and overseed.",
      "Harvest and preserve late crops.",
      "Winterize irrigation lines."
    ],
    October: [
      "Clear leaves and debris from beds.",
      "Mulch perennials for winter protection.",
      "Plant trees and shrubs.",
      "Service HVAC and gutter systems."
    ],
    November: [
      "Protect tender plants from frost.",
      "Apply winter mulch.",
      "Review landscape lighting.",
      "Schedule next year's garden plan."
    ],
    December: [
      "Maintain tools and repair equipment.",
      "Plan next year's planting schedule.",
      "Winterize outdoor structures.",
      "Review home improvement wishlist."
    ]
  };

  const taskMonthEl = document.getElementById("task-month");
  const taskListEl = document.getElementById("task-list");
  const taskButtons = document.querySelectorAll("[data-month]");

  function renderTaskMonth(month) {
    taskMonthEl.textContent = month;
    taskListEl.innerHTML = taskData[month].map(item => `<li>${item}</li>`).join("");
  }

  taskButtons.forEach(button => {
    button.addEventListener("click", () => {
      taskButtons.forEach(btn => btn.classList.remove("active"));
      button.classList.add("active");
      renderTaskMonth(button.dataset.month);
    });
  });

  renderTaskMonth("January");

  document.getElementById("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-12T10:13:12.674Z",
  "url": "https://benchmark.aimac.invalid/f99dbbf6f8cb245d9d1aacb70edd2107a49f9d1bea9ca8a816f05e41a6cb84f3.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-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-children",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-parent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-toggle-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-tooltip-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "autocomplete-valid",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "nodes": []
    },
    {
      "id": "avoid-inline-spacing",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag21aa",
        "wcag1412",
        "EN-301-549",
        "EN-9.1.4.12",
        "ACT"
      ],
      "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
      "help": "Inline text spacing must be adjustable with custom stylesheets",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
      "nodes": []
    },
    {
      "id": "blink",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "nodes": []
    },
    {
      "id": "duplicate-id-aria",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every id attribute value used in ARIA and in labels is unique",
      "help": "IDs used in ARIA and labels must be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
      "nodes": []
    },
    {
      "id": "form-field-multiple-labels",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag332",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.3.3.2"
      ],
      "description": "Ensure form field does not have multiple label elements",
      "help": "Form field must not have multiple label elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-focusable-content",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title-unique",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "nodes": []
    },
    {
      "id": "html-xml-lang-mismatch",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <input type=\"image\"> elements have alternative text",
      "help": "Image buttons must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "label",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": []
    },
    {
      "id": "marquee",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "nodes": []
    },
    {
      "id": "meta-refresh",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "nodes": []
    },
    {
      "id": "object-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure <object> elements have alternative text",
      "help": "<object> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "role-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure [role=\"img\"] elements have alternative text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": []
    },
    {
      "id": "select-name",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "server-side-image-map",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "nodes": []
    },
    {
      "id": "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 class=\"main-nav\" aria-label=\"Primary navigation\">",
          "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 class=\"main-nav\" aria-label=\"Primary navigation\">",
          "target": [
            "nav"
          ]
        }
      ]
    },
    {
      "id": "aria-deprecated-role",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "deprecatedrole",
              "data": null,
              "relatedNodes": [],
              "impact": "minor",
              "message": "ARIA role is not deprecated"
            }
          ],
          "impact": null,
          "html": "<div class=\"month-buttons\" role=\"group\" aria-label=\"Seasonal task months\">",
          "target": [
            ".month-buttons"
          ]
        }
      ]
    },
    {
      "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 class=\"main-nav\" aria-label=\"Primary navigation\">",
          "target": [
            "nav"
          ]
        }
      ]
    },
    {
      "id": "aria-required-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-required-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "All required ARIA attributes are present"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div class=\"month-buttons\" role=\"group\" aria-label=\"Seasonal task months\">",
          "target": [
            ".month-buttons"
          ]
        }
      ]
    },
    {
      "id": "aria-roles",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "invalidrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA role is valid"
            },
            {
              "id": "abstractrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Abstract roles are not used"
            },
            {
              "id": "unsupportedrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA role is supported"
            }
          ],
          "impact": null,
          "html": "<div class=\"month-buttons\" role=\"group\" aria-label=\"Seasonal task months\">",
          "target": [
            ".month-buttons"
          ]
        }
      ]
    },
    {
      "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 class=\"main-nav\" aria-label=\"Primary navigation\">",
          "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 class=\"main-nav\" aria-label=\"Primary navigation\">",
          "target": [
            "nav"
          ]
        }
      ]
    },
    {
      "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 type=\"button\" class=\"active\" data-month=\"January\">January</button>",
          "target": [
            "button[data-month=\"January\"]"
          ]
        }
      ]
    },
    {
      "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>Grow a home that feels as good as it looks.</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h2>DIY Projects for Real Homes</h2>",
                  "target": [
                    "#diy > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h3>Backyard Garden Revival</h3>",
                  "target": [
                    ".card:nth-child(1) > .card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Drainage and Hardscape Repair</h3>",
                  "target": [
                    ".card:nth-child(2) > .card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Built-In Storage Shed</h3>",
                  "target": [
                    ".card:nth-child(3) > .card-body > h3"
                  ]
                },
                {
                  "html": "<h2>Landscaping That Works With Nature</h2>",
                  "target": [
                    ".section-copy > h2"
                  ]
                },
                {
                  "html": "<h2>Home Improvement and Sustainable Living</h2>",
                  "target": [
                    "#improvement > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h3>Sustainable Gardening</h3>",
                  "target": [
                    ".feature:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Hardscaping</h3>",
                  "target": [
                    ".feature:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>Indoor Improvement</h3>",
                  "target": [
                    ".feature:nth-child(3) > h3"
                  ]
                },
                {
                  "html": "<h3>Water Management</h3>",
                  "target": [
                    ".feature:nth-child(4) > h3"
                  ]
                },
                {
                  "html": "<h3>Composting</h3>",
                  "target": [
                    ".feature:nth-child(5) > h3"
                  ]
                },
                {
                  "html": "<h3>Budget Planning</h3>",
                  "target": [
                    ".feature:nth-child(6) > h3"
                  ]
                },
                {
                  "html": "<h2>Frequently Asked Questions</h2>",
                  "target": [
                    "#guides > h2"
                  ]
                },
                {
                  "html": "<h2>Seasonal Task Calendar</h2>",
                  "target": [
                    "#calendar > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h3 id=\"task-month\">January</h3>",
                  "target": [
                    "#task-month"
                  ]
                },
                {
                  "html": "<h2>Homeowners Who Started Their Projects</h2>",
                  "target": [
                    "#testimonials > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h2>Ready to plan your next project?</h2>",
                  "target": [
                    ".container > h2"
                  ]
                },
                {
                  "html": "<h4>Explore</h4>",
                  "target": [
                    "div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Services</h4>",
                  "target": [
                    "div:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Contact</h4>",
                  "target": [
                    "div:nth-child(4) > h4"
                  ]
                }
              ],
              "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": "#22302a",
                "bgColor": "#faf8f3",
                "contrastRatio": 12.98,
                "fontSize": "17.4pt (23.2px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 12.98"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<span class=\"brand-text\">TerraNest<small>Grow your home. Naturally.</small></span>",
          "target": [
            ".brand-text"
          ]
        }
      ]
    },
    {
      "id": "definition-list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "structured-dlitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "When not empty, element has both <dt> and <dd> elements"
            },
            {
              "id": "only-dlitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "dl element only has direct children that are allowed inside; <dt>, <dd>, or <div> elements"
            }
          ],
          "impact": null,
          "html": "<dl class=\"hero-stats\">\n            <div><dt>12k+</dt><dd>Projects guided</dd></div>\n            <div><dt>340</dt><dd>Expert reviews</dd></div>\n            <div><dt>28</dt><dd>Neighborhoods served</dd></div>\n          </dl>",
          "target": [
            "dl"
          ]
        }
      ]
    },
    {
      "id": "dlitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "dlitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Description list item has a <dl> parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<dt>12k+</dt>",
          "target": [
            "div:nth-child(1) > dt"
          ]
        }
      ]
    },
    {
      "id": "document-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "doc-has-title",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Document has a non-empty <title> element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "html-has-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "The <html> element has a lang attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "html-lang-valid",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages"
            }
          ],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "TT7.b",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <img> elements have alternative text or a role of none or presentation",
      "help": "Images must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has an alt attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "alt-space-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a valid alt attribute value"
            }
          ],
          "impact": null,
          "html": "<img src=\"https://placehold.co/160x60?text=TerraNest&amp;font=poppins\" alt=\"TerraNest logo\">",
          "target": [
            ".brand > img[alt=\"TerraNest logo\"]"
          ]
        }
      ]
    },
    {
      "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=\"card-body\">",
                  "target": [
                    ".card:nth-child(1) > .card-body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#diy\" class=\"text-link\">View project guide</a>",
          "target": [
            ".card:nth-child(1) > .card-body > .text-link[href$=\"#diy\"]"
          ]
        }
      ]
    },
    {
      "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 class=\"brand\" href=\"#home\">\n        <img src=\"https://placehold.co/160x60?text=TerraNest&amp;font=poppins\" alt=\"TerraNest logo\">\n        <span class=\"brand-text\">TerraNest<small>Grow your home. Naturally.</small></span>\n      </a>",
          "target": [
            ".brand"
          ]
        }
      ]
    },
    {
      "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 class=\"check-list\">",
          "target": [
            ".check-list"
          ]
        }
      ]
    },
    {
      "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>Hardscaping design for patios, paths, and retaining walls</li>",
          "target": [
            ".check-list > 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/160x60?text=TerraNest&amp;font=poppins\" alt=\"TerraNest logo\">",
          "target": [
            ".brand > img[alt=\"TerraNest logo\"]"
          ]
        }
      ]
    },
    {
      "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>What is hardscaping and why does it matter?</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": 286.2,
                "height": 74.2
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Control has sufficient size (286.2px by 74.2px, 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\">\n        <img src=\"https://placehold.co/160x60?text=TerraNest&amp;font=poppins\" alt=\"TerraNest logo\">\n        <span class=\"brand-text\">TerraNest<small>Grow your home. Naturally.</small></span>\n      </a>",
          "target": [
            ".brand"
          ]
        }
      ]
    }
  ],
  "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": "9.4pt (12.48px)",
                "fontWeight": "bold",
                "messageKey": "bgGradient",
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"hero\" id=\"home\">",
                  "target": [
                    "#home"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element's background color could not be determined due to a background gradient"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"eyebrow\">Home &amp; Garden Studio</p>",
          "target": [
            ".hero-copy > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
        }
      ]
    }
  ],
  "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": "#c96f4a",
                "bgColor": "#faf8f3",
                "contrastRatio": 3.37,
                "fontSize": "8.2pt (10.88px)",
                "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 3.37 (foreground color: #c96f4a, background color: #faf8f3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<small>Grow your home. Naturally.</small>",
          "target": [
            "small"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.37 (foreground color: #c96f4a, background color: #faf8f3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c96f4a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.58,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"card\">",
                  "target": [
                    ".card:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.58 (foreground color: #c96f4a, background color: #ffffff, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#diy\" class=\"text-link\">View project guide</a>",
          "target": [
            ".card:nth-child(1) > .card-body > .text-link[href$=\"#diy\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.58 (foreground color: #c96f4a, background color: #ffffff, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c96f4a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.58,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"card\">",
                  "target": [
                    ".card:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.58 (foreground color: #c96f4a, background color: #ffffff, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#diy\" class=\"text-link\">View project guide</a>",
          "target": [
            ".card:nth-child(2) > .card-body > .text-link[href$=\"#diy\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.58 (foreground color: #c96f4a, background color: #ffffff, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c96f4a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.58,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"card\">",
                  "target": [
                    ".card:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.58 (foreground color: #c96f4a, background color: #ffffff, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#diy\" class=\"text-link\">View project guide</a>",
          "target": [
            ".card:nth-child(3) > .card-body > .text-link[href$=\"#diy\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.58 (foreground color: #c96f4a, background color: #ffffff, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c96f4a",
                "bgColor": "#f4f1ea",
                "contrastRatio": 3.17,
                "fontSize": "9.4pt (12.48px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"section section-alt\" id=\"landscaping\">",
                  "target": [
                    "#landscaping"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.17 (foreground color: #c96f4a, background color: #f4f1ea, font size: 9.4pt (12.48px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"eyebrow\">Outdoor Living</p>",
          "target": [
            ".section-copy > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.17 (foreground color: #c96f4a, background color: #f4f1ea, font size: 9.4pt (12.48px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#f4f1ea",
                "contrastRatio": 1.12,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"section section-alt\" id=\"landscaping\">",
                  "target": [
                    "#landscaping"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 1.12 (foreground color: #ffffff, background color: #f4f1ea, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#contact\" class=\"btn btn-outline\">Get Quote</a>",
          "target": [
            ".section-copy > .hero-actions > .btn-outline.btn[href$=\"#contact\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 1.12 (foreground color: #ffffff, background color: #f4f1ea, font size: 12.0pt (16px), font weight: bold). Expected contrast ratio of 4.5:1"
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 6937
      },
      {
        "y": 576,
        "height": 6937
      },
      {
        "y": 1152,
        "height": 6937
      },
      {
        "y": 1728,
        "height": 6937
      },
      {
        "y": 2304,
        "height": 6937
      },
      {
        "y": 2880,
        "height": 6937
      },
      {
        "y": 3456,
        "height": 6937
      },
      {
        "y": 4032,
        "height": 6937
      },
      {
        "y": 4608,
        "height": 6937
      },
      {
        "y": 5184,
        "height": 6937
      },
      {
        "y": 5760,
        "height": 6937
      },
      {
        "y": 6217,
        "height": 6937
      }
    ],
    "scans": 13,
    "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: "DIY Projects", "Home Improvement", "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: "Landscaping Tips", "Home Improvement", "Sustainability".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "hardscaping", "annual", "soil amendment".
    -   **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", "Plan Project".
-   **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: "seasonal task calendar".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "DIY success stories", "expert advice", "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.