MiniMax MiniMax M3 – Real Estate
via CoreWeave · Generated
- AIMAC Debt 30.72
- Cost $0.016
- Total Violations 58
- HTML Size 55 KB
- Em Dashes 15
Screenshot
View Live Page
Accessibility Issues Found
8 Critical 50 Serious
-
color-contrast serious 50 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<div class="tagline">Where Every Address Becomes a Haven</div> -
label critical 4 instances
Form elements must have labels
Example HTML
<input type="number" id="hp" value="525000" oninput="calcMortgage()"> -
select-name critical 4 instances
Select element must have an accessible name
Example HTML
<select><option>No minimum</option><option>$200,000</option><option>$400,000</option><option>$750,000</option></select>
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>Haven Estates — Where Every Address Becomes a Haven</title>
<meta name="description" content="Haven Estates is a premier real estate agency offering curated property listings, expert market analysis, mortgage solutions, and personalized service for buyers, sellers, and renters.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;color:#2a2a2a;background:#fafaf7;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Playfair Display',serif;font-weight:600;color:#1a3a52;letter-spacing:-0.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1280px;margin:0 auto;padding:0 24px}
/* ====== HEADER ====== */
.topbar{background:#1a3a52;color:#e8dcc4;font-size:13px;padding:8px 0}
.topbar .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.topbar a{color:#e8dcc4}
.topbar .links a{margin-left:18px}
.topbar .links a:hover{color:#c9a961}
header.main{background:#ffffff;border-bottom:1px solid #ececec;position:sticky;top:0;z-index:50;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.nav-wrap{display:flex;justify-content:space-between;align-items:center;padding:18px 0;gap:24px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:48px;height:48px;border-radius:8px;object-fit:cover}
.brand-text .name{font-family:'Playfair Display',serif;font-size:22px;color:#1a3a52;font-weight:600;line-height:1}
.brand-text .tagline{font-size:11px;color:#888;letter-spacing:.12em;text-transform:uppercase;margin-top:2px}
nav.primary ul{list-style:none;display:flex;align-items:center;gap:6px}
nav.primary a{padding:10px 16px;display:block;color:#2a2a2a;font-weight:500;font-size:14px;border-radius:6px;transition:all .2s}
nav.primary a:hover{background:#f4eee0;color:#1a3a52}
nav.primary a.cta-nav{background:#1a3a52;color:#fff;padding:10px 20px}
nav.primary a.cta-nav:hover{background:#c9a961;color:#1a3a52}
.menu-toggle{display:none;background:none;border:1px solid #1a3a52;border-radius:6px;padding:8px 12px;cursor:pointer;color:#1a3a52;font-weight:600}
/* ====== HERO ====== */
.hero{position:relative;background:linear-gradient(135deg,#1a3a52 0%,#2c5570 100%);color:#fff;padding:80px 0 110px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:url('https://picsum.photos/1600/700?blur=1') center/cover;opacity:.18;mix-blend-mode:overlay}
.hero .container{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.hero h1{font-size:56px;line-height:1.05;color:#fff;margin-bottom:20px}
.hero h1 span{color:#c9a961;font-style:italic}
.hero .lead{font-size:18px;color:rgba(255,255,255,.85);margin-bottom:32px;max-width:540px}
.hero .badges{display:flex;gap:24px;margin-top:32px;flex-wrap:wrap}
.hero .badge{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.08);padding:10px 18px;border-radius:8px;border:1px solid rgba(201,169,97,.3)}
.hero .badge strong{color:#c9a961;font-size:20px;font-family:'Playfair Display',serif}
.search-card{background:#fff;color:#2a2a2a;border-radius:14px;padding:28px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.search-card h3{font-size:20px;margin-bottom:6px}
.search-card p{font-size:13px;color:#666;margin-bottom:20px}
.search-tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid #eee}
.search-tabs button{background:none;border:none;padding:10px 14px;cursor:pointer;font-size:13px;font-weight:600;color:#888;border-bottom:2px solid transparent;color:#888}
.search-tabs button.active{color:#1a3a52;border-color:#c9a961}
.search-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.search-field{display:flex;flex-direction:column}
.search-field label{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;font-weight:600}
.search-field input,.search-field select{padding:11px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;font-family:inherit;background:#fff}
.search-field input:focus,.search-field select:focus{outline:none;border-color:#1a3a52}
.search-card .full{grid-column:1/-1}
.btn{display:inline-block;padding:14px 28px;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;border:none;font-family:inherit;transition:all .2s}
.btn-primary{background:#1a3a52;color:#fff}
.btn-primary:hover{background:#c9a961;color:#1a3a52}
.btn-gold{background:#c9a961;color:#1a3a52}
.btn-gold:hover{background:#b8954f;color:#fff}
.btn-outline{background:transparent;color:#1a3a52;border:2px solid #1a3a52}
.btn-outline:hover{background:#1a3a52;color:#fff}
.btn-block{display:block;width:100%;text-align:center;margin-top:14px}
/* ====== SECTION COMMONS ====== */
section{padding:80px 0}
.section-head{text-align:center;max-width:720px;margin:0 auto 56px}
.eyebrow{display:inline-block;font-size:12px;color:#c9a961;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-bottom:12px}
.section-head h2{font-size:42px;line-height:1.15;margin-bottom:14px}
.section-head p{color:#666;font-size:16px}
/* ====== MARKET ANALYSIS ====== */
.market{background:#fafaf7}
.market-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.market-image img{border-radius:14px;width:100%;height:480px;object-fit:cover;box-shadow:0 18px 40px rgba(0,0,0,.12)}
.market-text h2{font-size:38px;line-height:1.15;margin-bottom:18px}
.market-text p{color:#555;margin-bottom:14px;font-size:15px}
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:24px 0}
.stat-card{background:#fff;padding:18px;border-radius:10px;border-left:3px solid #c9a961}
.stat-card .label{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}
.stat-card .value{font-family:'Playfair Display',serif;font-size:28px;color:#1a3a52;font-weight:600}
.stat-card .change{font-size:12px;color:#2e7d4f;margin-top:2px}
.stat-card .change.down{color:#c0392b}
/* ====== FEATURED LISTINGS ====== */
.listings{background:#fff}
.listings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.listing-card{background:#fff;border:1px solid #ececec;border-radius:12px;overflow:hidden;transition:all .25s}
.listing-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(26,58,82,.12);border-color:transparent}
.listing-img{position:relative;height:240px;overflow:hidden}
.listing-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.listing-card:hover .listing-img img{transform:scale(1.06)}
.tag{position:absolute;top:14px;left:14px;background:#fff;color:#1a3a52;font-size:11px;font-weight:700;padding:6px 12px;border-radius:4px;letter-spacing:.08em;text-transform:uppercase}
.tag.gold{background:#c9a961;color:#1a3a52}
.tag.new{background:#2e7d4f;color:#fff}
.listing-price{position:absolute;bottom:14px;left:14px;background:rgba(26,58,82,.95);color:#fff;padding:8px 14px;border-radius:6px;font-family:'Playfair Display',serif;font-size:20px;font-weight:600}
.listing-body{padding:20px}
.listing-body h3{font-size:20px;margin-bottom:6px}
.listing-body .location{color:#888;font-size:13px;margin-bottom:14px;display:flex;align-items:center;gap:4px}
.listing-features{display:flex;gap:16px;padding-top:14px;border-top:1px solid #f0f0f0;font-size:13px;color:#555}
.listing-features span{display:flex;align-items:center;gap:5px}
.listing-actions{display:flex;gap:8px;margin-top:16px}
.listing-actions a{flex:1;text-align:center;padding:9px;font-size:13px;border-radius:6px;font-weight:600;border:1px solid #1a3a52;color:#1a3a52;background:#fff;transition:all .2s}
.listing-actions a:hover{background:#1a3a52;color:#fff}
/* ====== COMPARISON TOOL ====== */
.compare{background:linear-gradient(180deg,#f4eee0 0%,#fafaf7 100%)}
.compare-tool{background:#fff;border-radius:14px;padding:32px;box-shadow:0 14px 40px rgba(0,0,0,.08)}
.compare-tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.compare-tabs button{padding:9px 16px;background:#f4f4f4;border:1px solid #e0e0e0;border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s}
.compare-tabs button.active{background:#1a3a52;color:#fff;border-color:#1a3a52}
.compare-table{width:100%;border-collapse:collapse}
.compare-table th,.compare-table td{padding:14px 12px;text-align:left;border-bottom:1px solid #ececec;font-size:14px}
.compare-table th{background:#fafaf7;font-family:'Playfair Display',serif;font-size:16px;color:#1a3a52;font-weight:600}
.compare-table th img{width:100%;height:140px;object-fit:cover;border-radius:8px;margin-bottom:10px}
.compare-table th .price{color:#c9a961;font-weight:600}
.compare-table td:first-child{font-weight:600;color:#1a3a52;width:200px;background:#fafaf7}
.compare-table tr:last-child td{border-bottom:none}
.compare-table .best{color:#2e7d4f;font-weight:600}
.compare-table .worst{color:#c0392b}
.compare-cta{text-align:center;margin-top:24px}
/* ====== MORTGAGE ====== */
.mortgage{background:#fff}
.mortgage-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}
.mortgage-img img{border-radius:14px;width:100%;height:520px;object-fit:cover}
.mortgage-content .eyebrow{margin-bottom:10px}
.mortgage-content h2{font-size:36px;line-height:1.15;margin-bottom:18px}
.mortgage-content>p{color:#555;margin-bottom:22px}
.calc-box{background:#fafaf7;border-radius:12px;padding:24px;border:1px solid #ececec}
.calc-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.calc-field label{font-size:12px;color:#666;display:block;margin-bottom:6px;font-weight:500}
.calc-field input{padding:12px;border:1px solid #e0e0e0;border-radius:6px;width:100%;font-size:14px;font-family:inherit}
.calc-result{margin-top:18px;padding:18px;background:#1a3a52;color:#fff;border-radius:10px;display:flex;justify-content:space-between;align-items:center}
.calc-result .label{font-size:13px;color:rgba(255,255,255,.7)}
.calc-result .value{font-family:'Playfair Display',serif;font-size:28px;color:#c9a961}
/* ====== TESTIMONIALS ====== */
.testimonials{background:#1a3a52;color:#fff}
.testimonials .section-head h2{color:#fff}
.testimonials .section-head p{color:rgba(255,255,255,.7)}
.testimonials .eyebrow{color:#c9a961}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.testi-card{background:rgba(255,255,255,.05);border:1px solid rgba(201,169,97,.2);border-radius:12px;padding:28px;backdrop-filter:blur(4px)}
.stars{color:#c9a961;margin-bottom:14px;font-size:18px}
.testi-card blockquote{font-size:15px;color:rgba(255,255,255,.92);font-style:italic;margin-bottom:20px;line-height:1.7}
.testi-author{display:flex;align-items:center;gap:12px}
.testi-author img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid #c9a961}
.testi-author .name{font-weight:600;color:#fff;font-size:14px}
.testi-author .role{font-size:12px;color:rgba(255,255,255,.6)}
/* ====== AGENTS ====== */
.agents-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.agent-card{text-align:center;background:#fff;border-radius:12px;padding:24px;transition:all .2s;border:1px solid #f0f0f0}
.agent-card:hover{border-color:#c9a961;transform:translateY(-3px)}
.agent-card img{width:120px;height:120px;border-radius:50%;margin:0 auto 14px;object-fit:cover;border:3px solid #f4eee0}
.agent-card h4{font-size:18px;margin-bottom:4px}
.agent-card .role{font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}
.agent-card p{font-size:13px;color:#555;margin-bottom:14px;line-height:1.6}
.agent-card .contact{font-size:13px;color:#1a3a52;font-weight:600}
/* ====== FAQ ====== */
.faq{background:#fafaf7}
.faq-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:48px}
.faq-aside h2{font-size:36px;margin-bottom:14px;line-height:1.15}
.faq-aside p{color:#555;margin-bottom:20px}
.accordion{background:#fff;border-radius:12px;overflow:hidden;border:1px solid #ececec}
.acc-item{border-bottom:1px solid #ececec}
.acc-item:last-child{border-bottom:none}
.acc-trigger{width:100%;background:none;border:none;padding:20px 24px;text-align:left;font-family:inherit;font-size:16px;font-weight:600;color:#1a3a52;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s}
.acc-trigger:hover{background:#fafaf7}
.acc-trigger .icon{font-size:22px;color:#c9a961;font-weight:300;transition:transform .3s}
.acc-item.open .acc-trigger .icon{transform:rotate(45deg)}
.acc-content{max-height:0;overflow:hidden;transition:max-height .35s ease}
.acc-content-inner{padding:0 24px 22px;color:#555;font-size:14px;line-height:1.7}
.acc-item.open .acc-content{max-height:400px}
/* ====== RESOURCES / SIDEBAR ====== */
.resources{background:#fff}
.res-layout{display:grid;grid-template-columns:2fr 1fr;gap:48px}
.blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.blog-card{background:#fafaf7;border-radius:12px;overflow:hidden;border:1px solid #ececec;transition:all .25s}
.blog-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.08)}
.blog-card img{width:100%;height:180px;object-fit:cover}
.blog-card .body{padding:20px}
.blog-card .meta{font-size:11px;color:#888;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.blog-card h4{font-size:18px;margin-bottom:8px;line-height:1.3}
.blog-card p{font-size:14px;color:#555;margin-bottom:12px}
.blog-card a.read{color:#c9a961;font-weight:600;font-size:13px}
aside.sidebar{display:flex;flex-direction:column;gap:24px}
.widget{background:#fafaf7;border-radius:12px;padding:24px;border:1px solid #ececec}
.widget h4{font-size:16px;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid #c9a961;display:inline-block}
.trend-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #ececec;font-size:13px}
.trend-item:last-child{border-bottom:none}
.trend-item .neighborhood{color:#2a2a2a}
.trend-item .price{font-family:'Playfair Display',serif;color:#1a3a52;font-weight:600}
.trend-item .delta{font-size:11px;color:#2e7d4f;margin-left:8px}
.trend-item .delta.down{color:#c0392b}
.new-list-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #ececec}
.new-list-item:last-child{border-bottom:none}
.new-list-item img{width:64px;height:64px;border-radius:6px;object-fit:cover;flex-shrink:0}
.new-list-item .info h5{font-size:14px;margin-bottom:3px;font-family:'Playfair Display',serif}
.new-list-item .info p{font-size:12px;color:#888;margin-bottom:3px}
.new-list-item .info .p{color:#c9a961;font-weight:600;font-size:13px}
.cta-widget{background:#1a3a52;color:#fff;border-radius:12px;padding:24px;text-align:center}
.cta-widget h4{color:#c9a961;margin-bottom:10px;font-size:18px}
.cta-widget p{font-size:13px;color:rgba(255,255,255,.85);margin-bottom:14px}
/* ====== FOOTER ====== */
footer{background:#0f2536;color:#c5c5c5;padding:64px 0 24px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:36px;margin-bottom:48px}
.footer-col h5{color:#fff;font-family:'Playfair Display',serif;font-size:16px;margin-bottom:18px}
.footer-col p{font-size:13px;line-height:1.7;color:#a8b3bd;margin-bottom:14px}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:10px;font-size:13px}
.footer-col a{color:#a8b3bd;transition:color .2s}
.footer-col a:hover{color:#c9a961}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.footer-brand img{width:42px;height:42px;border-radius:6px}
.footer-brand .name{color:#fff;font-family:'Playfair Display',serif;font-size:20px;font-weight:600}
.contact-line{display:flex;gap:8px;font-size:13px;margin-bottom:8px;color:#a8b3bd}
.contact-line strong{color:#e8dcc4;min-width:60px}
.social{display:flex;gap:10px;margin-top:14px}
.social a{width:36px;height:36px;background:rgba(255,255,255,.08);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;transition:all .2s}
.social a:hover{background:#c9a961;color:#1a3a52}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;font-size:12px;color:#7d8a96}
.footer-bottom .legal{display:flex;gap:18px}
.footer-bottom .legal a:hover{color:#c9a961}
/* ====== RESPONSIVE ====== */
@media(max-width:1100px){
.hero-grid,.market-grid,.mortgage-layout,.faq-layout,.res-layout{grid-template-columns:1fr}
.listings-grid,.testi-grid{grid-template-columns:repeat(2,1fr)}
.agents-grid{grid-template-columns:repeat(2,1fr)}
.footer-grid{grid-template-columns:repeat(2,1fr)}
.hero h1{font-size:42px}
}
@media(max-width:768px){
nav.primary ul{display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:#fff;padding:16px;box-shadow:0 8px 20px rgba(0,0,0,.08);align-items:stretch}
nav.primary ul.open{display:flex}
nav.primary a{padding:12px}
.menu-toggle{display:block}
.hero{padding:60px 0 70px}
.hero h1{font-size:32px}
section{padding:60px 0}
.section-head h2{font-size:30px}
.listings-grid,.testi-grid,.agents-grid,.blog-grid{grid-template-columns:1fr}
.footer-grid{grid-template-columns:1fr}
.footer-bottom{flex-direction:column;text-align:center}
.search-fields,.calc-row,.stats-grid{grid-template-columns:1fr}
}
</style>
</head>
<body>
<!-- ====== TOP BAR ====== -->
<div class="topbar">
<div class="container">
<span>📍 124 Harbor Lane, Suite 400, Charleston, SC 29401</span>
<div class="links">
<a href="#contact">📞 (843) 555-0192</a>
<a href="#contact">✉ hello@havenestates.com</a>
<a href="#login">Sign In</a>
</div>
</div>
</div>
<!-- ====== HEADER ====== -->
<header class="main">
<div class="container nav-wrap">
<a href="#" class="brand">
<img src="https://placehold.co/96x96/1a3a52/c9a961?text=H&font=playfair+display" alt="Haven Estates Logo">
<div class="brand-text">
<div class="name">Haven Estates</div>
<div class="tagline">Where Every Address Becomes a Haven</div>
</div>
</a>
<button class="menu-toggle" onclick="document.querySelector('nav.primary ul').classList.toggle('open')">Menu ☰</button>
<nav class="primary">
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#buy">Buy</a></li>
<li><a href="#rent">Rent</a></li>
<li><a href="#sell">Sell</a></li>
<li><a href="#market">Market</a></li>
<li><a href="#mortgage">Mortgage</a></li>
<li><a href="#blog">Blog</a></li>
<li><a href="#contact" class="cta-nav">Contact Agent</a></li>
</ul>
</nav>
</div>
</header>
<!-- ====== HERO ====== -->
<section class="hero" id="home">
<div class="container">
<div class="hero-grid">
<div>
<h1>Find the Home Your <span>Future Self</span> Will Thank You For.</h1>
<p class="lead">For over two decades, Haven Estates has guided discerning buyers, sellers, and renters through every milestone of their real estate journey — pairing local expertise with the negotiation power, title insurance resources, and mortgage partnerships that turn complexity into confidence.</p>
<a href="#listings" class="btn btn-gold">Browse Featured Listings →</a>
<div class="badges">
<div class="badge"><strong>$2.4B</strong><span>in closed volume since 2003</span></div>
<div class="badge"><strong>4.9★</strong><span>average client rating</span></div>
<div class="badge"><strong>1,200+</strong><span>families placed this year</span></div>
</div>
</div>
<div class="search-card">
<h3>Discover Your Next Address</h3>
<p>Refine by location, price, and lifestyle. Save your search and we'll alert you the moment a matching property hits the market.</p>
<div class="search-tabs">
<button class="active" onclick="switchTab(this,'buy')">Buy</button>
<button onclick="switchTab(this,'rent')">Rent</button>
<button onclick="switchTab(this,'sell')">Sell</button>
</div>
<div class="search-fields">
<div class="search-field full">
<label>Location</label>
<input type="text" placeholder="City, neighborhood, or ZIP">
</div>
<div class="search-field">
<label>Min Price</label>
<select><option>No minimum</option><option>$200,000</option><option>$400,000</option><option>$750,000</option></select>
</div>
<div class="search-field">
<label>Max Price</label>
<select><option>No maximum</option><option>$500,000</option><option>$1,000,000</option><option>$2,000,000+</option></select>
</div>
<div class="search-field">
<label>Bedrooms</label>
<select><option>Any</option><option>1+</option><option>2+</option><option>3+</option><option>4+</option></select>
</div>
<div class="search-field">
<label>Property Type</label>
<select><option>Any</option><option>Single Family</option><option>Condo</option><option>Townhouse</option><option>Land</option></select>
</div>
</div>
<button class="btn btn-primary btn-block">Search Properties</button>
<a href="#" style="display:block;text-align:center;margin-top:14px;font-size:13px;color:#1a3a52;font-weight:600">🔖 Save Search & Get Alerts</a>
</div>
</div>
</div>
</section>
<!-- ====== MARKET ANALYSIS ====== -->
<section class="market" id="market">
<div class="container">
<div class="market-grid">
<div class="market-text">
<span class="eyebrow">Market Analysis · Q4 2025</span>
<h2>Coastal Carolina Inventory Tightens While Median Values Climb</h2>
<p>The Charleston metro area continues to demonstrate remarkable resilience heading into the final quarter of 2025. Median single-family home prices have appreciated <strong>5.8% year-over-year</strong>, driven by sustained demand from relocating professionals and a persistent undersupply of listings under the $450,000 threshold.</p>
<p>Inventory has tightened to a 2.7-month supply — well below the six-month benchmark typically associated with a balanced market. This environment favors prepared sellers with realistic expectations and rewards buyers who arrive with pre-approval letters and clearly defined contingency strategies.</p>
<p>Our analysts track more than forty submarkets in real time, monitoring days-on-market, list-to-sale-price ratios, and absorption rates. Whether you're considering a purchase, evaluating your portfolio, or preparing a refinance application, our quarterly insights help you make decisions grounded in data — not headlines.</p>
<div class="stats-grid">
<div class="stat-card">
<div class="label">Median Sale Price</div>
<div class="value">$487,200</div>
<div class="change">▲ 5.8% YoY</div>
</div>
<div class="stat-card">
<div class="label">Days on Market</div>
<div class="value">23</div>
<div class="change down">▼ 4 days vs. last quarter</div>
</div>
<div class="stat-card">
<div class="label">List-to-Sale Ratio</div>
<div class="value">99.4%</div>
<div class="change">▲ 1.2 pts</div>
</div>
<div class="stat-card">
<div class="label">Months of Supply</div>
<div class="value">2.7</div>
<div class="change down">▼ 0.6 — seller market</div>
</div>
</div>
<a href="#" class="btn btn-outline">Get Personal Valuation →</a>
</div>
<div class="market-image">
<img src="https://picsum.photos/600/600?random=10" alt="Charleston waterfront neighborhood aerial view">
</div>
</div>
</div>
</section>
<!-- ====== FEATURED LISTINGS ====== -->
<section class="listings" id="listings">
<div class="container">
<div class="section-head">
<span class="eyebrow">Featured Properties</span>
<h2>This Week's Standout Listings</h2>
<p>Hand-selected by our agents from more than 1,800 active properties across the Lowcountry. Each one represents an exceptional opportunity in its price band.</p>
</div>
<div class="listings-grid">
<div class="listing-card">
<div class="listing-img">
<img src="https://picsum.photos/600/500?random=21" alt="Modern marshfront home">
<span class="tag gold">Open Sunday</span>
<div class="listing-price">$1,295,000</div>
</div>
<div class="listing-body">
<h3>The Marshfront at Kiawah</h3>
<div class="location">📍 Kiawah Island, SC 29455</div>
<p style="font-size:14px;color:#555;margin-bottom:14px">A contemporary four-bedroom retreat with floor-to-ceiling glass capturing panoramic tidal views. Chef's kitchen, infinity-edge pool, and deeded beach access.</p>
<div class="listing-features">
<span>🛏 4 Beds</span><span>🛁 3.5 Bath</span><span>📐 3,420 sqft</span>
</div>
<div class="listing-actions">
<a href="#">Save</a><a href="#">Tour</a>
</div>
</div>
</div>
<div class="listing-card">
<div class="listing-img">
<img src="https://picsum.photos/600/500?random=22" alt="Historic downtown Charleston single house">
<span class="tag new">Just Listed</span>
<div class="listing-price">$875,000</div>
</div>
<div class="listing-body">
<h3>Single House on Tradd</h3>
<div class="location">📍 47 Tradd Street, Charleston, SC</div>
<p style="font-size:14px;color:#555;margin-bottom:14px">A meticulously restored 1842 single house in the heart of the historic district. Original heart-pine floors, walled garden, and modernized title-insured systems.</p>
<div class="listing-features">
<span>🛏 3 Beds</span><span>🛁 2.5 Bath</span><span>📐 2,180 sqft</span>
</div>
<div class="listing-actions">
<a href="#">Save</a><a href="#">Tour</a>
</div>
</div>
</div>
<div class="listing-card">
<div class="listing-img">
<img src="https://picsum.photos/600/500?random=23" alt="Modern condo with harbor views">
<span class="tag">Price Reduced</span>
<div class="listing-price">$649,500 <s style="font-size:14px;color:rgba(255,255,255,.6);font-weight:400">$685,000</s></div>
</div>
<div class="listing-body">
<h3>Harborview Residences #1208</h3>
<div class="location">📍 Mount Pleasant, SC 29464</div>
<p style="font-size:14px;color:#555;margin-bottom:14px">Twelfth-floor corner unit with floor-to-ceiling glass on three sides. Two private terraces, concierge service, and dedicated EV charging in the secured garage.</p>
<div class="listing-features">
<span>🛏 2 Beds</span><span>🛁 2 Bath</span><span>📐 1,540 sqft</span>
</div>
<div class="listing-actions">
<a href="#">Save</a><a href="#">Tour</a>
</div>
</div>
</div>
<div class="listing-card">
<div class="listing-img">
<img src="https://picsum.photos/600/500?random=24" alt="Family suburban home">
<span class="tag gold">Open Sunday</span>
<div class="listing-price">$524,900</div>
</div>
<div class="listing-body">
<h3>The Magnolia at Daniel Island</h3>
<div class="location">📍 Daniel Island, SC 29492</div>
<p style="font-size:14px;color:#555;margin-bottom:14px">Traditional Lowcountry five-bedroom with a screened-in porch overlooking the park. Walk to schools, restaurants, and the family pool at the town center.</p>
<div class="listing-features">
<span>🛏 5 Beds</span><span>🛁 4 Bath</span><span>📐 2,890 sqft</span>
</div>
<div class="listing-actions">
<a href="#">Save</a><a href="#">Tour</a>
</div>
</div>
</div>
<div class="listing-card">
<div class="listing-img">
<img src="https://picsum.photos/600/500?random=25" alt="Charming bungalow">
<span class="tag new">Just Listed</span>
<div class="listing-price">$389,000</div>
</div>
<div class="listing-body">
<h3>The Oakhaven Bungalow</h3>
<div class="location">📍 North Charleston, SC 29405</div>
<p style="font-size:14px;color:#555;margin-bottom:14px">A storybook craftsman bungalow on a quiet tree-lined street. Detached studio, raised garden beds, and a brand-new architectural shingle roof.</p>
<div class="listing-features">
<span>🛏 3 Beds</span><span>🛁 2 Bath</span><span>📐 1,640 sqft</span>
</div>
<div class="listing-actions">
<a href="#">Save</a><a href="#">Tour</a>
</div>
</div>
</div>
<div class="listing-card">
<div class="listing-img">
<img src="https://picsum.photos/600/500?random=26" alt="Waterfront estate">
<span class="tag">Coming Soon</span>
<div class="listing-price">$2,150,000</div>
</div>
<div class="listing-body">
<h3>The Seabrook Estate</h3>
<div class="location">📍 Seabrook Island, SC 29455</div>
<p style="font-size:14px;color:#555;margin-bottom:14px">An architectural masterpiece sited on 1.2 acres of private waterfront. Six bedrooms, resort-style pool, deepwater dock, and a guest cottage with separate entrance.</p>
<div class="listing-features">
<span>🛏 6 Beds</span><span>🛁 5.5 Bath</span><span>📐 5,400 sqft</span>
</div>
<div class="listing-actions">
<a href="#">Save</a><a href="#">Tour</a>
</div>
</div>
</div>
</div>
<div style="text-align:center;margin-top:48px">
<a href="#" class="btn btn-primary">View All 1,800+ Listings →</a>
</div>
</div>
</section>
<!-- ====== COMPARISON TOOL ====== -->
<section class="compare" id="compare">
<div class="container">
<div class="section-head">
<span class="eyebrow">Side-by-Side Comparison</span>
<h2>Make Confident Decisions With Our Comparison Tool</h2>
<p>Add up to four listings to a single comparison view. Evaluate square footage, taxes, HOA dues, and neighborhood metrics without juggling dozens of browser tabs.</p>
</div>
<div class="compare-tool">
<div class="compare-tabs">
<button class="active" onclick="this.parentElement.querySelectorAll('button').forEach(b=>b.classList.remove('active'));this.classList.add('active')">Kiawah Marshfront</button>
<button onclick="this.parentElement.querySelectorAll('button').forEach(b=>b.classList.remove('active'));this.classList.add('active')">Tradd Street</button>
<button onclick="this.parentElement.querySelectorAll('button').forEach(b=>b.classList.remove('active'));this.classList.add('active')">Harborview #1208</button>
<button onclick="this.parentElement.querySelectorAll('button').forEach(b=>b.classList.remove('active'));this.classList.add('active')">+ Add Property</button>
</div>
<div style="overflow-x:auto">
<table class="compare-table">
<thead>
<tr>
<th></th>
<th>
<img src="https://picsum.photos/300/200?random=21" alt="Kiawah listing">
<div>Kiawah Marshfront</div>
<div class="price">$1,295,000</div>
</th>
<th>
<img src="https://picsum.photos/300/200?random=22" alt="Tradd Street listing">
<div>Tradd Street</div>
<div class="price">$875,000</div>
</th>
<th>
<img src="https://picsum.photos/300/200?random=23" alt="Harborview listing">
<div>Harborview #1208</div>
<div class="price">$649,500</div>
</th>
</tr>
</thead>
<tbody>
<tr><td>Bedrooms / Bathrooms</td><td>4 / 3.5</td><td>3 / 2.5</td><td class="best">2 / 2 (low maintenance)</td></tr>
<tr><td>Square Footage</td><td class="best">3,420 sqft</td><td>2,180 sqft</td><td>1,540 sqft</td></tr>
<tr><td>Price per Square Foot</td><td>$379</td><td class="best">$401</td><td>$422</td></tr>
<tr><td>Annual Property Tax</td><td>$14,800</td><td>$9,200</td><td class="best">$6,100</td></tr>
<tr><td>HOA / Condo Fees</td><td>$0</td><td>$0</td><td>$840/mo</td></tr>
<tr><td>Walk Score</td><td>42</td><td class="best">96</td><td>78</td></tr>
<tr><td>School District Rating</td><td class="best">9/10</td><td>7/10</td><td>8/10</td></tr>
<tr><td>Days on Market</td><td>8</td><td class="best">2</td><td>14</td></tr>
<tr><td>Estimated Insurance</td><td class="worst">$4,200/yr</td><td>$2,800/yr</td><td>$1,400/yr</td></tr>
</tbody>
</table>
</div>
<div class="compare-cta">
<a href="#" class="btn btn-outline">Email Me This Comparison</a>
<a href="#" class="btn btn-primary" style="margin-left:8px">Schedule Showings →</a>
</div>
</div>
</div>
</section>
<!-- ====== MORTGAGE ====== -->
<section class="mortgage" id="mortgage">
<div class="container">
<div class="mortgage-layout">
<div class="mortgage-img">
<img src="https://picsum.photos/600/700?random=30" alt="Family reviewing mortgage documents at home">
</div>
<div class="mortgage-content">
<span class="eyebrow">Mortgage Options & Pre-Approval</span>
<h2>From Pre-Approval to Closing Day, We're With You</h2>
<p>Securing financing shouldn't feel like navigating a maze alone. Haven Estates maintains in-house partnerships with fourteen regional lenders, allowing us to shop your loan scenario across conventional, FHA, VA, jumbo, and portfolio products — often within forty-eight hours.</p>
<p>Our mortgage specialists help you evaluate fixed versus adjustable structures, points and rate buy-downs, and contingency planning around appraisal gaps. We'll also coordinate closely with your title insurance provider to ensure a smooth path from ratified contract to keys in hand.</p>
<div class="calc-box">
<h4 style="margin-bottom:14px;font-size:18px">Quick Monthly Payment Estimator</h4>
<div class="calc-row">
<div class="calc-field">
<label>Home Price</label>
<input type="number" id="hp" value="525000" oninput="calcMortgage()">
</div>
<div class="calc-field">
<label>Down Payment (%)</label>
<input type="number" id="dp" value="20" oninput="calcMortgage()">
</div>
<div class="calc-field">
<label>Interest Rate (%)</label>
<input type="number" step="0.01" id="ir" value="6.75" oninput="calcMortgage()">
</div>
<div class="calc-field">
<label>Loan Term (years)</label>
<input type="number" id="lt" value="30" oninput="calcMortgage()">
</div>
</div>
<div class="calc-result">
<div>
<div class="label">Estimated Monthly Payment</div>
<small style="font-size:11px;color:rgba(255,255,255,.6)">Principal & interest only</small>
</div>
<div class="value" id="result">$2,719</div>
</div>
<a href="#" class="btn btn-gold btn-block">Get Pre-Approved Today →</a>
</div>
</div>
</div>
</div>
</section>
<!-- ====== TESTIMONIALS ====== -->
<section class="testimonials" id="testimonials">
<div class="container">
<div class="section-head">
<span class="eyebrow">Client Stories</span>
<h2>Trusted by Thousands of Families Across the Lowcountry</h2>
<p>From first-time buyers to seasoned investors, our clients return to Haven Estates because real estate is a relationship, not a transaction.</p>
</div>
<div class="testi-grid">
<div class="testi-card">
<div class="stars">★★★★★</div>
<blockquote>"We were outbid on three properties before partnering with Haven. Their agent reworked our contingency strategy, secured a stronger pre-approval, and we closed on our dream home within six weeks. The title insurance coordination alone saved us countless headaches."</blockquote>
<div class="testi-author">
<img src="https://i.pravatar.cc/100?img=12" alt="Sarah Mitchell">
<div>
<div class="name">Sarah & David Mitchell</div>
<div class="role">First-time Buyers · Mount Pleasant</div>
</div>
</div>
</div>
<div class="testi-card">
<div class="stars">★★★★★</div>
<blockquote>"As an out-of-state investor, I needed an agency with deep local insight and rigorous due diligence. Haven's market analysis gave me confidence to close on two rental properties sight-unseen. Their property management referrals have been equally outstanding."</blockquote>
<div class="testi-author">
<img src="https://i.pravatar.cc/100?img=33" alt="Marcus Chen">
<div>
<div class="name">Marcus Chen</div>
<div class="role">Portfolio Investor · Atlanta, GA</div>
</div>
</div>
</div>
<div class="testi-card">
<div class="stars">★★★★★</div>
<blockquote>"Selling the family home after thirty-eight years was emotional and overwhelming. Our Haven agent handled every detail — staging, photographer, negotiation — and we received a full-price offer within nine days. Their compassion matched their competence."</blockquote>
<div class="testi-author">
<img src="https://i.pravatar.cc/100?img=49" alt="Eleanor Whitfield">
<div>
<div class="name">Eleanor Whitfield</div>
<div class="role">Estate Sale · Charleston Historic District</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ====== AGENTS ====== -->
<section class="agents">
<div class="container">
<div class="section-head">
<span class="eyebrow">Meet the Team</span>
<h2>Specialists Who Know Their Neighborhoods</h2>
<p>Every Haven Estates agent is a full-time professional with deep roots in the communities they serve. Many are second-generation Charlestonians; all are licensed, accredited, and committed to your best outcome.</p>
</div>
<div class="agents-grid">
<div class="agent-card">
<img src="https://i.pravatar.cc/200?img=15" alt="Agent Catherine Lavoie">
<h4>Catherine Lavoie</h4>
<div class="role">Principal Broker</div>
<p>Twenty-two years guiding luxury buyers and sellers across Kiawah, Seabrook, and the Barrier Islands.</p>
<div class="contact">📞 (843) 555-0142</div>
</div>
<div class="agent-card">
<img src="https://i.pravatar.cc/200?img=51" alt="Agent Julian Rhodes">
<h4>Julian Rhodes</h4>
<div class="role">Historic District Specialist</div>
<p>Expertise in preservation easements, historic covenants, and single-house restoration projects.</p>
<div class="contact">📞 (843) 555-0167</div>
</div>
<div class="agent-card">
<img src="https://i.pravatar.cc/200?img=44" alt="Agent Priya Desai">
<h4>Priya Desai</h4>
<div class="role">Mortgage Strategist</div>
<p>Partners with fourteen lenders to craft financing structures for first-time buyers and jumbo purchases alike.</p>
<div class="contact">📞 (843) 555-0183</div>
</div>
<div class="agent-card">
<img src="https://i.pravatar.cc/200?img=8" alt="Agent Benjamin Okonkwo">
<h4>Benjamin Okonkwo</h4>
<div class="role">Investment Property Lead</div>
<p>Analyzes cap rates, absorption trends, and 1031 exchanges for clients building long-term portfolios.</p>
<div class="contact">📞 (843) 555-0151</div>
</div>
</div>
</div>
</section>
<!-- ====== FAQ ====== -->
<section class="faq" id="faq">
<div class="container">
<div class="faq-layout">
<div class="faq-aside">
<span class="eyebrow">Frequently Asked Questions</span>
<h2>Answers From People Who Do This Every Day</h2>
<p>Real estate involves thousands of moving parts — and we've likely been asked every question in the book. Here are the ones that come up most often. Don't see yours? Send us a note and we'll respond personally.</p>
<a href="#contact" class="btn btn-primary">Ask Our Team →</a>
</div>
<div class="accordion">
<div class="acc-item open">
<button class="acc-trigger" onclick="toggleAcc(this)">How do I get pre-approved, and is it required before touring homes?<span class="icon">+</span></button>
<div class="acc-content"><div class="acc-content-inner">While not legally required to tour, pre-approval dramatically strengthens any offer in our market. We connect you with a lender who reviews your credit, income, and assets — typically issuing a pre-approval letter within forty-eight hours. Sellers routinely reject un-pre-approved offers, especially when the property has been on the market less than a week.</div></div>
</div>
<div class="acc-item">
<button class="acc-trigger" onclick="toggleAcc(this)">What is title insurance and why does it matter?<span class="icon">+</span></button>
<div class="acc-content"><div class="acc-content-inner">Title insurance protects you and your lender against prior claims, liens, or ownership disputes on the property. A title search traces the chain of ownership back decades — but even the most meticulous search can miss fraudulent transfers or clerical errors. Owner's title insurance, paid once at closing, shields your equity for as long as you own the home.</div></div>
</div>
<div class="acc-item">
<button class="acc-trigger" onclick="toggleAcc(this)">Should I include an inspection contingency even on new construction?<span class="icon">+</span></button>
<div class="acc-content"><div class="acc-content-inner">Absolutely yes. New construction is not exempt from defects — improper flashing, undersized HVAC systems, and code violations are all common. We strongly recommend an independent third-party inspection and a thirteen-month warranty walkthrough. Removing contingencies may strengthen your offer price, but it shifts significant risk to you as the buyer.</div></div>
</div>
<div class="acc-item">
<button class="acc-trigger" onclick="toggleAcc(this)">What's a realistic commission structure when selling?<span class="icon">+</span></button>
<div class="acc-content"><div class="acc-content-inner">Charleston-area commissions are fully negotiable and typically range between 5% and 6% total, split between the listing and buyer's agents. Haven Estates offers tiered service models — full-service representation, à la carte marketing, and a flat-fee concierge option for experienced sellers. We always present a clear fee breakdown before signing any agreement.</div></div>
</div>
<div class="acc-item">
<button class="acc-trigger" onclick="toggleAcc(this)">How long does the typical closing process take in South Carolina?<span class="icon">+</span></button>
<div class="acc-content"><div class="acc-content-inner">A standard financed purchase closes within thirty to forty-five days of contract ratification. Cash transactions can close in as little as ten business days. The variance depends largely on appraisal turnaround, lender underwriting, and any title issues uncovered during the search. We build realistic timelines into every contract and keep you informed at each milestone.</div></div>
</div>
<div class="acc-item">
<button class="acc-trigger" onclick="toggleAcc(this)">Do you help with relocation out of state?<span class="icon">+</span></button>
<div class="acc-content"><div class="acc-content-inner">Yes — roughly a third of our buyers relocate from outside the Lowcountry. We coordinate virtual tours, area orientation videos, school district research, and introductions to vetted moving companies. Through our affiliate network we can also connect you with reputable real estate attorneys and licensed agents in your departure city to handle the sale of your existing home.</div></div>
</div>
</div>
</div>
</div>
</section>
<!-- ====== RESOURCES / SIDEBAR ====== -->
<section class="resources" id="blog">
<div class="container">
<div class="res-layout">
<div>
<div class="section-head" style="text-align:left;margin-bottom:36px">
<span class="eyebrow">From the Haven Journal</span>
<h2>Insights, Guides, and Local Intelligence</h2>
<p>Practical guidance from our agents and partners, updated weekly.</p>
</div>
<div class="blog-grid">
<article class="blog-card">
<img src="https://picsum.photos/600/400?random=40" alt="First-time buyer guide">
<div class="body">
<div class="meta">Buyer Guides · 8 min read</div>
<h4>The First-Time Buyer's Complete Pre-Approval Checklist</h4>
<p>From credit utilization to gift-fund documentation, here's everything lenders want to see before issuing your pre-approval letter.</p>
<a href="#" class="read">Read article →</a>
</div>
</article>
<article class="blog-card">
<img src="https://picsum.photos/600/400?random=41" alt="Staging home for sale">
<div class="body">
<div class="meta">Selling Tips · 6 min read</div>
<h4>7 Staging Strategies That Add Real Dollars to Your Sale Price</h4>
<p>Our interior design partners share the small changes that consistently deliver outsized returns in listing photographs and showings.</p>
<a href="#" class="read">Read article →</a>
</div>
</article>
<article class="blog-card">
<img src="https://picsum.photos/600/400?random=42" alt="1031 exchange diagram">
<div class="body">
<div class="meta">Investment · 10 min read</div>
<h4>1031 Exchanges Explained: A Practical Walkthrough for Investors</h4>
<p>Understanding identification periods, qualified intermediaries, and the boot that can quietly erode your tax deferral.</p>
<a href="#" class="read">Read article →</a>
</div>
</article>
<article class="blog-card">
<img src="https://picsum.photos/600/400?random=43" alt="Historic district homes">
<div class="body">
<div class="meta">Local Life · 5 min read</div>
<h4>Living in a Historic District: The Rules Nobody Tells You</h4>
<p>From Board of Architectural Review approvals to insurance nuances — what every historic-district buyer should know upfront.</p>
<a href="#" class="read">Read article →</a>
</div>
</article>
</div>
</div>
<aside class="sidebar">
<div class="widget">
<h4>Market Trends</h4>
<div class="trend-item"><span class="neighborhood">Mount Pleasant</span><span>$524K <span class="delta">▲ 4.2%</span></span></div>
<div class="trend-item"><span class="neighborhood">Downtown Charleston</span><span>$875K <span class="delta">▲ 6.1%</span></span></div>
<div class="trend-item"><span class="neighborhood">Kiawah Island</span><span>$1.42M <span class="delta down">▼ 1.8%</span></span></div>
<div class="trend-item"><span class="neighborhood">Daniel Island</span><span>$498K <span class="delta">▲ 3.4%</span></span></div>
<div class="trend-item"><span class="neighborhood">North Charleston</span><span>$312K <span class="delta">▲ 2.1%</span></span></div>
<div class="trend-item"><span class="neighborhood">Seabrook Island</span><span>$985K <span class="delta">▲ 5.5%</span></span></div>
<a href="#" style="display:block;margin-top:14px;font-size:13px;color:#1a3a52;font-weight:600">View full market report →</a>
</div>
<div class="widget">
<h4>New This Week</h4>
<div class="new-list-item">
<img src="https://picsum.photos/120/120?random=50" alt="New listing">
<div class="info">
<h5>2240 Oak Marsh Dr.</h5>
<p>Awendaw, SC · 4bd</p>
<div class="p">$789,000</div>
</div>
</div>
<div class="new-list-item">
<img src="https://picsum.photos/120/120?random=51" alt="New listing">
<div class="info">
<h5>118 Indigo Reef Way</h5>
<p>Sullivan's Island · 3bd</p>
<div class="p">$2,395,000</div>
</div>
</div>
<div class="new-list-item">
<img src="https://picsum.photos/120/120?random=52" alt="New listing">
<div class="info">
<h5>14 Live Oak Lane</h5>
<p>West Ashley · 3bd</p>
<div class="p">$445,000</div>
</div>
</div>
</div>
<div class="widget">
<h4>Price Reductions</h4>
<div class="new-list-item">
<img src="https://picsum.photos/120/120?random=53" alt="Reduced listing">
<div class="info">
<h5>Harborview #1208</h5>
<p>Mount Pleasant · 2bd</p>
<div class="p">$649,500 <s style="color:#999;font-weight:400">$685K</s></div>
</div>
</div>
<div class="new-list-item">
<img src="https://picsum.photos/120/120?random=54" alt="Reduced listing">
<div class="info">
<h5>908 Folly Creek Ct.</h5>
<p>James Island · 4bd</p>
<div class="p">$725,000 <s style="color:#999;font-weight:400">$759K</s></div>
</div>
</div>
</div>
<div class="cta-widget">
<h4>Thinking of Selling?</h4>
<p>Get a complimentary, no-obligation home valuation from an agent who knows your street.</p>
<a href="#" class="btn btn-gold btn-block">Request Valuation →</a>
</div>
</aside>
</div>
</div>
</section>
<!-- ====== FOOTER ====== -->
<footer id="contact">
<div class="container">
<div class="footer-grid">
<div class="footer-col">
<div class="footer-brand">
<img src="https://placehold.co/96x96/c9a961/1a3a52?text=H&font=playfair+display" alt="Haven Estates">
<div class="name">Haven Estates</div>
</div>
<p>An independent, locally-owned brokerage serving Charleston, Mount Pleasant, Kiawah, and the surrounding Lowcountry since 2003. Licensed in South Carolina, North Carolina, and Georgia.</p>
<div class="contact-line"><strong>Office</strong> 124 Harbor Lane, Suite 400, Charleston, SC 29401</div>
<div class="contact-line"><strong>Phone</strong> (843) 555-0192</div>
<div class="contact-line"><strong>Hours</strong> Mon–Sat · 9:00 AM – 7:00 PM</div>
<div class="social">
<a href="#" aria-label="Facebook">f</a>
<a href="#" aria-label="Instagram">ig</a>
<a href="#" aria-label="LinkedIn">in</a>
<a href="#" aria-label="YouTube">yt</a>
</div>
</div>
<div class="footer-col">
<h5>Buy & Sell</h5>
<ul>
<li><a href="#">Search Listings</a></li>
<li><a href="#">Buyer Resources</a></li>
<li><a href="#">Seller Resources</a></li>
<li><a href="#">Open Houses</a></li>
<li><a href="#">New Construction</a></li>
<li><a href="#">Luxury Collection</a></li>
</ul>
</div>
<div class="footer-col">
<h5>Rentals</h5>
<ul>
<li><a href="#">Rentals Search</a></li>
<li><a href="#">List Your Rental</a></li>
<li><a href="#">Tenant Resources</a></li>
<li><a href="#">Property Management</a></li>
<li><a href="#">Short-Term Furnished</a></li>
<li><a href="#">Corporate Relocation</a></li>
</ul>
</div>
<div class="footer-col">
<h5>Tools & Insights</h5>
<ul>
<li><a href="#market">Market Analysis</a></li>
<li><a href="#mortgage">Mortgage Calculator</a></li>
<li><a href="#compare">Property Comparison</a></li>
<li><a href="#">Home Valuation Tool</a></li>
<li><a href="#blog">Haven Journal</a></li>
<li><a href="#">Buyer & Seller Guides</a></li>
</ul>
</div>
<div class="footer-col">
<h5>Company</h5>
<ul>
<li><a href="#">Our Story</a></li>
<li><a href="#">Meet the Agents</a></li>
<li><a href="#">Careers</a></li>
<li><a href="#">Press & Media</a></li>
<li><a href="#">Community Involvement</a></li>
<li><a href="#contact">Contact Us</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<div>© 2025 Haven Estates, LLC. All rights reserved. Equal Housing Opportunity. South Carolina Real Estate Commission License #RL-19284.</div>
<div class="legal">
<a href="#">Privacy Policy</a>
<a href="#">Terms of Service</a>
<a href="#">Accessibility</a>
<a href="#">Fair Housing Notice</a>
<a href="#">Sitemap</a>
</div>
</div>
</div>
</footer>
<script>
// Tab switcher for the hero search
function switchTab(btn, type){
btn.parentElement.querySelectorAll('button').forEach(b=>b.classList.remove('active'));
btn.classList.add('active');
}
// Mortgage calculator
function calcMortgage(){
const hp = parseFloat(document.getElementById('hp').value) || 0;
const dp = parseFloat(document.getElementById('dp').value) || 0;
const ir = parseFloat(document.getElementById('ir').value) || 0;
const lt = parseFloat(document.getElementById('lt').value) || 0;
const loan = hp * (1 - dp/100);
const monthlyRate = (ir/100) / 12;
const n = lt * 12;
let payment;
if(monthlyRate === 0){
payment = loan / n;
} else {
payment = loan * (monthlyRate * Math.pow(1+monthlyRate, n)) / (Math.pow(1+monthlyRate, n) - 1);
}
document.getElementById('result').textContent = '$' + payment.toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
// FAQ accordion
function toggleAcc(trigger){
const item = trigger.parentElement;
item.classList.toggle('open');
}
</script>
</body>
</html>
View Axe Report (JSON)
{
"testEngine": {
"name": "axe-core",
"version": "4.10.2"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
"windowWidth": 1280,
"windowHeight": 720,
"orientationAngle": 0,
"orientationType": "landscape-primary"
},
"timestamp": "2026-11-12T09:42:02.459Z",
"url": "https://benchmark.aimac.invalid/dd116248d3a749f53cbffa8fe135d8638ce4251d2ae31765982051f0e06fe291.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": []
},
{
"id": "aria-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "duplicate-id-aria",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every id attribute value used in ARIA and in labels is unique",
"help": "IDs used in ARIA and labels must be unique",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "summary-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure summary elements have discernible text",
"help": "Summary elements must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
"nodes": []
},
{
"id": "svg-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
"help": "<svg> elements with an img role must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "valid-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2aa",
"wcag312",
"TTv5",
"TT11.b",
"EN-301-549",
"EN-9.3.1.2",
"ACT"
],
"description": "Ensure lang attributes have valid values",
"help": "lang attribute must have a valid value",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
"nodes": []
},
{
"id": "video-caption",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag122",
"section508",
"section508.22.a",
"TTv5",
"TT17.a",
"EN-301-549",
"EN-9.1.2.2"
],
"description": "Ensure <video> elements have captions",
"help": "<video> elements must have captions",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
"nodes": []
},
{
"id": "no-autoplay-audio",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag142",
"TTv5",
"TT2.a",
"EN-301-549",
"EN-9.1.4.2",
"ACT"
],
"description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
"help": "<video> or <audio> elements must not play automatically",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
"nodes": []
}
],
"passes": [
{
"id": "aria-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-allowed-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attributes are used correctly for the defined role"
}
],
"none": [
{
"id": "aria-unsupported-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute is supported"
}
],
"impact": null,
"html": "<a href=\"#\" aria-label=\"Facebook\">f</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-conditional-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"none": [],
"impact": null,
"html": "<a href=\"#\" aria-label=\"Facebook\">f</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"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": "<a href=\"#\" aria-label=\"Facebook\">f</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-valid-attr-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute values are valid"
},
{
"id": "aria-errormessage",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
},
{
"id": "aria-level",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-level values are valid"
}
],
"none": [],
"impact": null,
"html": "<a href=\"#\" aria-label=\"Facebook\">f</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-valid-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute name is valid"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" aria-label=\"Facebook\">f</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "important-letter-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-word-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-line-height",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "line-height in the style attribute is not set to !important, or meets the minimum"
}
],
"none": [],
"impact": null,
"html": "<a href=\"#\" style=\"display:block;text-align:center;margin-top:14px;font-size:13px;color:#1a3a52;font-weight:600\">\ud83d\udd16 Save Search & Get Alerts</a>",
"target": [
".search-card > a[href=\"#\"]"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button class=\"active\" onclick=\"switchTab(this,'buy')\">Buy</button>",
"target": [
"button[onclick=\"switchTab(this,'buy')\"]"
]
}
]
},
{
"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>Find the Home Your <span>Future Self</span> Will Thank You For.</h1>",
"target": [
"h1"
]
},
{
"html": "<h3>Discover Your Next Address</h3>",
"target": [
".search-card > h3"
]
},
{
"html": "<h2>Coastal Carolina Inventory Tightens While Median Values Climb</h2>",
"target": [
".market-text > h2"
]
},
{
"html": "<h2>This Week's Standout Listings</h2>",
"target": [
"#listings > .container > .section-head > h2"
]
},
{
"html": "<h3>The Marshfront at Kiawah</h3>",
"target": [
".listing-card:nth-child(1) > .listing-body > h3"
]
},
{
"html": "<h3>Single House on Tradd</h3>",
"target": [
".listing-card:nth-child(2) > .listing-body > h3"
]
},
{
"html": "<h3>Harborview Residences #1208</h3>",
"target": [
".listing-card:nth-child(3) > .listing-body > h3"
]
},
{
"html": "<h3>The Magnolia at Daniel Island</h3>",
"target": [
".listing-card:nth-child(4) > .listing-body > h3"
]
},
{
"html": "<h3>The Oakhaven Bungalow</h3>",
"target": [
".listing-card:nth-child(5) > .listing-body > h3"
]
},
{
"html": "<h3>The Seabrook Estate</h3>",
"target": [
".listing-card:nth-child(6) > .listing-body > h3"
]
},
{
"html": "<h2>Make Confident Decisions With Our Comparison Tool</h2>",
"target": [
"#compare > .container > .section-head > h2"
]
},
{
"html": "<h2>From Pre-Approval to Closing Day, We're With You</h2>",
"target": [
".mortgage-content > h2"
]
},
{
"html": "<h4 style=\"margin-bottom:14px;font-size:18px\">Quick Monthly Payment Estimator</h4>",
"target": [
".calc-box > h4"
]
},
{
"html": "<h2>Trusted by Thousands of Families Across the Lowcountry</h2>",
"target": [
"#testimonials > .container > .section-head > h2"
]
},
{
"html": "<h2>Specialists Who Know Their Neighborhoods</h2>",
"target": [
".agents > .container > .section-head > h2"
]
},
{
"html": "<h4>Catherine Lavoie</h4>",
"target": [
".agent-card:nth-child(1) > h4"
]
},
{
"html": "<h4>Julian Rhodes</h4>",
"target": [
".agent-card:nth-child(2) > h4"
]
},
{
"html": "<h4>Priya Desai</h4>",
"target": [
".agent-card:nth-child(3) > h4"
]
},
{
"html": "<h4>Benjamin Okonkwo</h4>",
"target": [
".agent-card:nth-child(4) > h4"
]
},
{
"html": "<h2>Answers From People Who Do This Every Day</h2>",
"target": [
".faq-aside > h2"
]
},
{
"html": "<h2>Insights, Guides, and Local Intelligence</h2>",
"target": [
".res-layout > div > .section-head > h2"
]
},
{
"html": "<h4>The First-Time Buyer's Complete Pre-Approval Checklist</h4>",
"target": [
"article:nth-child(1) > .body > h4"
]
},
{
"html": "<h4>7 Staging Strategies That Add Real Dollars to Your Sale Price</h4>",
"target": [
"article:nth-child(2) > .body > h4"
]
},
{
"html": "<h4>1031 Exchanges Explained: A Practical Walkthrough for Investors</h4>",
"target": [
"article:nth-child(3) > .body > h4"
]
},
{
"html": "<h4>Living in a Historic District: The Rules Nobody Tells You</h4>",
"target": [
"article:nth-child(4) > .body > h4"
]
},
{
"html": "<h4>Market Trends</h4>",
"target": [
".widget:nth-child(1) > h4"
]
},
{
"html": "<h4>New This Week</h4>",
"target": [
".widget:nth-child(2) > h4"
]
},
{
"html": "<h5>2240 Oak Marsh Dr.</h5>",
"target": [
".widget:nth-child(2) > .new-list-item:nth-child(2) > .info > h5"
]
},
{
"html": "<h5>118 Indigo Reef Way</h5>",
"target": [
".widget:nth-child(2) > .new-list-item:nth-child(3) > .info > h5"
]
},
{
"html": "<h5>14 Live Oak Lane</h5>",
"target": [
".new-list-item:nth-child(4) > .info > h5"
]
},
{
"html": "<h4>Price Reductions</h4>",
"target": [
".widget:nth-child(3) > h4"
]
},
{
"html": "<h5>Harborview #1208</h5>",
"target": [
".widget:nth-child(3) > .new-list-item:nth-child(2) > .info > h5"
]
},
{
"html": "<h5>908 Folly Creek Ct.</h5>",
"target": [
".widget:nth-child(3) > .new-list-item:nth-child(3) > .info > h5"
]
},
{
"html": "<h4>Thinking of Selling?</h4>",
"target": [
".cta-widget > h4"
]
},
{
"html": "<h5>Buy & Sell</h5>",
"target": [
".footer-col:nth-child(2) > h5"
]
},
{
"html": "<h5>Rentals</h5>",
"target": [
".footer-col:nth-child(3) > h5"
]
},
{
"html": "<h5>Tools & Insights</h5>",
"target": [
".footer-col:nth-child(4) > h5"
]
},
{
"html": "<h5>Company</h5>",
"target": [
".footer-col:nth-child(5) > h5"
]
}
],
"impact": "serious",
"message": "Page has a heading"
}
],
"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": "#e8dcc4",
"bgColor": "#1a3a52",
"contrastRatio": 8.73,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 8.73"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<span>\ud83d\udccd 124 Harbor Lane, Suite 400, Charleston, SC 29401</span>",
"target": [
".container > span"
]
}
]
},
{
"id": "document-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"TTv5",
"TT12.a",
"EN-301-549",
"EN-9.2.4.2",
"ACT"
],
"description": "Ensure each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document has a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "form-field-multiple-labels",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag332",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.3.3.2"
],
"description": "Ensure form field does not have multiple label elements",
"help": "Form field must not have multiple label elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "multiple-label",
"data": null,
"relatedNodes": [],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<input type=\"text\" placeholder=\"City, neighborhood, or ZIP\">",
"target": [
"input[type=\"text\"]"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://placehold.co/96x96/1a3a52/c9a961?text=H&font=playfair+display\" alt=\"Haven Estates Logo\">",
"target": [
"img[alt=\"Haven Estates Logo\"]"
]
}
]
},
{
"id": "label",
"impact": "critical",
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "non-empty-placeholder",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a placeholder attribute"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<input type=\"text\" placeholder=\"City, neighborhood, or ZIP\">",
"target": [
"input[type=\"text\"]"
]
}
]
},
{
"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=\"body\">",
"target": [
"article:nth-child(1) > .body"
]
}
],
"impact": "serious",
"message": "Links can be distinguished from surrounding text by visual styling"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" class=\"read\">Read article \u2192</a>",
"target": [
"article:nth-child(1) > .body > .read[href=\"#\"]"
]
}
]
},
{
"id": "link-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a href=\"#contact\">\ud83d\udcde (843) 555-0192</a>",
"target": [
".links > a[href$=\"#contact\"]:nth-child(1)"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul>",
"target": [
"nav > ul"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li><a href=\"#home\">Home</a></li>",
"target": [
"nav > ul > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://placehold.co/96x96/1a3a52/c9a961?text=H&font=playfair+display\" alt=\"Haven Estates Logo\">",
"target": [
"img[alt=\"Haven Estates Logo\"]"
]
}
]
},
{
"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-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#contact\">\ud83d\udcde (843) 555-0192</a>",
"target": [
".links > a[href$=\"#contact\"]:nth-child(1)"
]
}
]
},
{
"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": [
{
"any": [],
"all": [
{
"id": "td-headers-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The headers attribute is exclusively used to refer to other cells in the table"
}
],
"none": [],
"impact": null,
"html": "<table class=\"compare-table\">",
"target": [
"table"
]
}
]
},
{
"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": [
{
"any": [],
"all": [
{
"id": "th-has-data-cells",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "All table header cells refer to data cells"
}
],
"none": [],
"impact": null,
"html": "<table class=\"compare-table\">",
"target": [
"table"
]
}
]
}
],
"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": {
"fontSize": "42.0pt (56px)",
"fontWeight": "normal",
"messageKey": "pseudoContent",
"expectedContrastRatio": "3:1"
},
"relatedNodes": [
{
"html": "<section class=\"hero\" id=\"home\">",
"target": [
"#home"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a pseudo element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<h1>Find the Home Your <span>Future Self</span> Will Thank You For.</h1>",
"target": [
"h1"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a pseudo element"
}
]
}
],
"violations": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<header class=\"main\">",
"target": [
"header"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"tagline\">Where Every Address Becomes a Haven</div>",
"target": [
".tagline"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"market\" id=\"market\">",
"target": [
"#market"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"eyebrow\">Market Analysis \u00b7 Q4 2025</span>",
"target": [
".market-text > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"stat-card\">\n <div class=\"label\">Median Sale Price</div>\n <div class=\"value\">$487,200</div>\n <div class=\"change\">\u25b2 5.8% YoY</div>\n </div>",
"target": [
".stat-card:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"label\">Median Sale Price</div>",
"target": [
".stat-card:nth-child(1) > .label"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"stat-card\">\n <div class=\"label\">Days on Market</div>\n <div class=\"value\">23</div>\n <div class=\"change down\">\u25bc 4 days vs. last quarter</div>\n </div>",
"target": [
".stat-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"label\">Days on Market</div>",
"target": [
".stat-card:nth-child(2) > .label"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"stat-card\">\n <div class=\"label\">List-to-Sale Ratio</div>\n <div class=\"value\">99.4%</div>\n <div class=\"change\">\u25b2 1.2 pts</div>\n </div>",
"target": [
".stat-card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"label\">List-to-Sale Ratio</div>",
"target": [
".stat-card:nth-child(3) > .label"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"stat-card\">\n <div class=\"label\">Months of Supply</div>\n <div class=\"value\">2.7</div>\n <div class=\"change down\">\u25bc 0.6 \u2014 seller market</div>\n </div>",
"target": [
".stat-card:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"label\">Months of Supply</div>",
"target": [
".stat-card:nth-child(4) > .label"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#ffffff",
"contrastRatio": 2.25,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"listings\" id=\"listings\">",
"target": [
"#listings"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.25 (foreground color: #c9a961, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"eyebrow\">Featured Properties</span>",
"target": [
"#listings > .container > .section-head > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.25 (foreground color: #c9a961, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"listing-card\">",
"target": [
".listing-card:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"location\">\ud83d\udccd Kiawah Island, SC 29455</div>",
"target": [
".listing-card:nth-child(1) > .listing-body > .location"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"listing-card\">",
"target": [
".listing-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"location\">\ud83d\udccd 47 Tradd Street, Charleston, SC</div>",
"target": [
".listing-card:nth-child(2) > .listing-body > .location"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"listing-card\">",
"target": [
".listing-card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"location\">\ud83d\udccd Mount Pleasant, SC 29464</div>",
"target": [
".listing-card:nth-child(3) > .listing-body > .location"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"listing-card\">",
"target": [
".listing-card:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"location\">\ud83d\udccd Daniel Island, SC 29492</div>",
"target": [
".listing-card:nth-child(4) > .listing-body > .location"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"listing-card\">",
"target": [
".listing-card:nth-child(5)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"location\">\ud83d\udccd North Charleston, SC 29405</div>",
"target": [
".listing-card:nth-child(5) > .listing-body > .location"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"listing-card\">",
"target": [
".listing-card:nth-child(6)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"location\">\ud83d\udccd Seabrook Island, SC 29455</div>",
"target": [
".listing-card:nth-child(6) > .listing-body > .location"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<th>\n <img src=\"https://picsum.photos/300/200?random=21\" alt=\"Kiawah listing\">\n <div>Kiawah Marshfront</div>\n <div class=\"price\">$1,295,000</div>\n </th>",
"target": [
"th:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"price\">$1,295,000</div>",
"target": [
"th:nth-child(2) > .price"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<th>\n <img src=\"https://picsum.photos/300/200?random=22\" alt=\"Tradd Street listing\">\n <div>Tradd Street</div>\n <div class=\"price\">$875,000</div>\n </th>",
"target": [
"th:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"price\">$875,000</div>",
"target": [
"th:nth-child(3) > .price"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<th>\n <img src=\"https://picsum.photos/300/200?random=23\" alt=\"Harborview listing\">\n <div>Harborview #1208</div>\n <div class=\"price\">$649,500</div>\n </th>",
"target": [
"th:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"price\">$649,500</div>",
"target": [
"th:nth-child(4) > .price"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#ffffff",
"contrastRatio": 2.25,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"mortgage\" id=\"mortgage\">",
"target": [
"#mortgage"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.25 (foreground color: #c9a961, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"eyebrow\">Mortgage Options & Pre-Approval</span>",
"target": [
".mortgage-content > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.25 (foreground color: #c9a961, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"eyebrow\">Meet the Team</span>",
"target": [
".agents > .container > .section-head > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"agent-card\">",
"target": [
".agent-card:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"role\">Principal Broker</div>",
"target": [
".agent-card:nth-child(1) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"agent-card\">",
"target": [
".agent-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"role\">Historic District Specialist</div>",
"target": [
".agent-card:nth-child(2) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"agent-card\">",
"target": [
".agent-card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"role\">Mortgage Strategist</div>",
"target": [
".agent-card:nth-child(3) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#ffffff",
"contrastRatio": 3.54,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"agent-card\">",
"target": [
".agent-card:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"role\">Investment Property Lead</div>",
"target": [
".agent-card:nth-child(4) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.54 (foreground color: #888888, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"faq\" id=\"faq\">",
"target": [
"#faq"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"eyebrow\">Frequently Asked Questions</span>",
"target": [
".faq-aside > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#ffffff",
"contrastRatio": 2.25,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"resources\" id=\"blog\">",
"target": [
"#blog"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.25 (foreground color: #c9a961, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"eyebrow\">From the Haven Journal</span>",
"target": [
".res-layout > div > .section-head > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.25 (foreground color: #c9a961, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#fafaf7",
"contrastRatio": 3.38,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"blog-card\">",
"target": [
"article:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"meta\">Buyer Guides \u00b7 8 min read</div>",
"target": [
"article:nth-child(1) > .body > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"blog-card\">",
"target": [
"article:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"read\">Read article \u2192</a>",
"target": [
"article:nth-child(1) > .body > .read[href=\"#\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#fafaf7",
"contrastRatio": 3.38,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"blog-card\">",
"target": [
"article:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"meta\">Selling Tips \u00b7 6 min read</div>",
"target": [
"article:nth-child(2) > .body > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"blog-card\">",
"target": [
"article:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"read\">Read article \u2192</a>",
"target": [
"article:nth-child(2) > .body > .read[href=\"#\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#fafaf7",
"contrastRatio": 3.38,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"blog-card\">",
"target": [
"article:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"meta\">Investment \u00b7 10 min read</div>",
"target": [
"article:nth-child(3) > .body > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"blog-card\">",
"target": [
"article:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"read\">Read article \u2192</a>",
"target": [
"article:nth-child(3) > .body > .read[href=\"#\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#fafaf7",
"contrastRatio": 3.38,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"blog-card\">",
"target": [
"article:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"meta\">Local Life \u00b7 5 min read</div>",
"target": [
"article:nth-child(4) > .body > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"blog-card\">",
"target": [
"article:nth-child(4)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"read\">Read article \u2192</a>",
"target": [
"article:nth-child(4) > .body > .read[href=\"#\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#fafaf7",
"contrastRatio": 3.38,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>Awendaw, SC \u00b7 4bd</p>",
"target": [
".widget:nth-child(2) > .new-list-item:nth-child(2) > .info > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"p\">$789,000</div>",
"target": [
".widget:nth-child(2) > .new-list-item:nth-child(2) > .info > .p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#fafaf7",
"contrastRatio": 3.38,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>Sullivan's Island \u00b7 3bd</p>",
"target": [
".widget:nth-child(2) > .new-list-item:nth-child(3) > .info > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"p\">$2,395,000</div>",
"target": [
".widget:nth-child(2) > .new-list-item:nth-child(3) > .info > .p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#fafaf7",
"contrastRatio": 3.38,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>West Ashley \u00b7 3bd</p>",
"target": [
".new-list-item:nth-child(4) > .info > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"p\">$445,000</div>",
"target": [
".new-list-item:nth-child(4) > .info > .p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#fafaf7",
"contrastRatio": 3.38,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>Mount Pleasant \u00b7 2bd</p>",
"target": [
".widget:nth-child(3) > .new-list-item:nth-child(2) > .info > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"p\">$649,500 <s style=\"color:#999;font-weight:400\">$685K</s></div>",
"target": [
".widget:nth-child(3) > .new-list-item:nth-child(2) > .info > .p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#999999",
"bgColor": "#fafaf7",
"contrastRatio": 2.72,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.72 (foreground color: #999999, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<s style=\"color:#999;font-weight:400\">$685K</s>",
"target": [
".new-list-item:nth-child(2) > .info > .p > s"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.72 (foreground color: #999999, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#888888",
"bgColor": "#fafaf7",
"contrastRatio": 3.38,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>James Island \u00b7 4bd</p>",
"target": [
".widget:nth-child(3) > .new-list-item:nth-child(3) > .info > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #888888, background color: #fafaf7, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c9a961",
"bgColor": "#fafaf7",
"contrastRatio": 2.15,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"p\">$725,000 <s style=\"color:#999;font-weight:400\">$759K</s></div>",
"target": [
".widget:nth-child(3) > .new-list-item:nth-child(3) > .info > .p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.15 (foreground color: #c9a961, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#999999",
"bgColor": "#fafaf7",
"contrastRatio": 2.72,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.72 (foreground color: #999999, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<s style=\"color:#999;font-weight:400\">$759K</s>",
"target": [
".new-list-item:nth-child(3) > .info > .p > s"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.72 (foreground color: #999999, background color: #fafaf7, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7d8a96",
"bgColor": "#0f2536",
"contrastRatio": 4.44,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div>\u00a9 2025 Haven Estates, LLC. All rights reserved. Equal Housing Opportunity. South Carolina Real Estate Commission License #RL-19284.</div>",
"target": [
".footer-bottom > div:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7d8a96",
"bgColor": "#0f2536",
"contrastRatio": 4.44,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\">Privacy Policy</a>",
"target": [
".legal > a[href=\"#\"]:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7d8a96",
"bgColor": "#0f2536",
"contrastRatio": 4.44,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\">Terms of Service</a>",
"target": [
".legal > a[href=\"#\"]:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7d8a96",
"bgColor": "#0f2536",
"contrastRatio": 4.44,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\">Accessibility</a>",
"target": [
".legal > a[href=\"#\"]:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7d8a96",
"bgColor": "#0f2536",
"contrastRatio": 4.44,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\">Fair Housing Notice</a>",
"target": [
".legal > a[href=\"#\"]:nth-child(4)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7d8a96",
"bgColor": "#0f2536",
"contrastRatio": 4.44,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\">Sitemap</a>",
"target": [
"a[href=\"#\"]:nth-child(5)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.44 (foreground color: #7d8a96, background color: #0f2536, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
},
{
"id": "label",
"impact": "critical",
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "non-empty-placeholder",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no placeholder attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<input type=\"number\" id=\"hp\" value=\"525000\" oninput=\"calcMortgage()\">",
"target": [
"#hp"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element has no placeholder attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "non-empty-placeholder",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no placeholder attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<input type=\"number\" id=\"dp\" value=\"20\" oninput=\"calcMortgage()\">",
"target": [
"#dp"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element has no placeholder attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "non-empty-placeholder",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no placeholder attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<input type=\"number\" step=\"0.01\" id=\"ir\" value=\"6.75\" oninput=\"calcMortgage()\">",
"target": [
"#ir"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element has no placeholder attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "non-empty-placeholder",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no placeholder attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<input type=\"number\" id=\"lt\" value=\"30\" oninput=\"calcMortgage()\">",
"target": [
"#lt"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element has no placeholder attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
]
},
{
"id": "select-name",
"impact": "critical",
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<select><option>No minimum</option><option>$200,000</option><option>$400,000</option><option>$750,000</option></select>",
"target": [
".search-field:nth-child(2) > select"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<select><option>No maximum</option><option>$500,000</option><option>$1,000,000</option><option>$2,000,000+</option></select>",
"target": [
".search-field:nth-child(3) > select"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<select><option>Any</option><option>1+</option><option>2+</option><option>3+</option><option>4+</option></select>",
"target": [
".search-field:nth-child(4) > select"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<select><option>Any</option><option>Single Family</option><option>Condo</option><option>Townhouse</option><option>Land</option></select>",
"target": [
".search-field:nth-child(5) > select"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 9982
},
{
"y": 576,
"height": 9982
},
{
"y": 1152,
"height": 9982
},
{
"y": 1728,
"height": 9982
},
{
"y": 2304,
"height": 9982
},
{
"y": 2880,
"height": 9982
},
{
"y": 3456,
"height": 9982
},
{
"y": 4032,
"height": 9982
},
{
"y": 4608,
"height": 9982
},
{
"y": 5184,
"height": 9982
},
{
"y": 5760,
"height": 9982
},
{
"y": 6336,
"height": 9982
},
{
"y": 6912,
"height": 9982
},
{
"y": 7488,
"height": 9982
},
{
"y": 8064,
"height": 9982
},
{
"y": 8640,
"height": 9982
},
{
"y": 9216,
"height": 9982
},
{
"y": 9262,
"height": 9982
}
],
"scans": 19,
"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 "Real Estate" 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: "Real Estate"
- Description: Property listings, real estate agencies, home buying, rentals, and mortgage resources.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Real Estate" 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: "Rent", "Blog", "Market".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Real Estate" category. Consider themes similar to: "Market Analysis", "Mortgage Options", "Featured Listings".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "title insurance", "pre-approval", "contingency".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Save Search", "Get Valuation", "Contact Agent".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Real Estate" sector. Ideas similar but not limited to: "property comparison".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "market trends", "new listings", "price reductions".
- **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.