NVIDIA Nemotron 3 Ultra – Automotive
via BaseTen · Generated
- AIMAC Debt 4.37
- Cost $0.05
- Total Violations 12
- HTML Size 67 KB
- Em Dashes 7
Screenshot
View Live Page
Accessibility Issues Found
12 Serious
-
color-contrast serious 12 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<span class="logo-tagline">Where Precision Meets Pavement</span>
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Apex Auto Journal - Your definitive source for automotive news, in-depth car reviews, expert repair tips, and dealership resources. Explore new arrivals, certified pre-owned inventory, and service specials.">
<title>Apex Auto Journal | Where Precision Meets Pavement</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Oswald:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
/* --- CSS Variables & Reset --- */
:root {
--color-primary: #1a3c5e; /* Deep Automotive Blue */
--color-primary-dark: #0d253b;
--color-accent: #c0392b; /* Performance Red */
--color-accent-hover: #e74c3c;
--color-bg: #f8f9fa;
--color-surface: #ffffff;
--color-text: #2c3e50;
--color-text-muted: #5d6d7e;
--color-border: #e1e8ed;
--font-heading: 'Oswald', sans-serif;
--font-body: 'Inter', sans-serif;
--container-width: 1280px;
--header-height: 80px;
--transition-base: 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
--shadow-sm: 0 1px 3px rgba(0,0,0,0.05);
--shadow-md: 0 4px 12px rgba(0,0,0,0.08);
--shadow-lg: 0 10px 30px rgba(0,0,0,0.1);
--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 16px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: var(--font-body); background-color: var(--color-bg); color: var(--color-text); line-height: 1.65; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; border-radius: var(--radius-md); }
a { color: var(--color-primary); text-decoration: none; transition: color var(--transition-base); }
a:hover { color: var(--color-accent); }
ul { list-style: none; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); font-weight: 600; line-height: 1.25; color: var(--color-primary); text-transform: uppercase; letter-spacing: 0.5px; }
h1 { font-size: clamp(2.5rem, 5vw, 4rem); }
h2 { font-size: clamp(1.75rem, 3.5vw, 2.5rem); margin-bottom: 1rem; }
h3 { font-size: clamp(1.1rem, 2vw, 1.35rem); text-transform: none; font-weight: 600; color: var(--color-text); letter-spacing: 0; }
p { margin-bottom: 1rem; color: var(--color-text-muted); font-size: 1rem; }
.container { width: 100%; max-width: var(--container-width); margin: 0 auto; padding: 0 1.5rem; }
.section { padding: 5rem 0; }
.section-header { text-align: center; max-width: 700px; margin: 0 auto 3.5rem; }
.section-header p { font-size: 1.1rem; color: var(--color-text); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.875rem 1.75rem; border-radius: var(--radius-sm); font-weight: 600; font-size: 0.9rem; letter-spacing: 0.5px; text-transform: uppercase; transition: all var(--transition-base); border: 2px solid transparent; cursor: pointer; font-family: var(--font-heading); }
.btn-primary { background: var(--color-accent); color: #fff; border-color: var(--color-accent); }
.btn-primary:hover { background: var(--color-accent-hover); border-color: var(--color-accent-hover); color: #fff; transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-secondary { background: transparent; color: var(--color-primary); border-color: var(--color-primary); }
.btn-secondary:hover { background: var(--color-primary); color: #fff; }
.btn-outline { background: transparent; color: var(--color-text); border-color: var(--color-border); }
.btn-outline:hover { border-color: var(--color-accent); color: var(--color-accent); }
.tag { display: inline-block; background: var(--color-primary); color: #fff; padding: 0.25rem 0.75rem; border-radius: 20px; font-size: 0.7rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 0.75rem; }
/* --- Header & Navigation --- */
.site-header { position: fixed; top: 0; left: 0; right: 0; height: var(--header-height); background: rgba(255,255,255,0.95); backdrop-filter: blur(10px); border-bottom: 1px solid var(--color-border); z-index: 1000; transition: box-shadow var(--transition-base); }
.site-header.scrolled { box-shadow: var(--shadow-md); }
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 100%; }
.logo { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; }
.logo-img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid var(--color-primary); }
.logo-text { display: flex; flex-direction: column; line-height: 1.1; }
.logo-name { font-family: var(--font-heading); font-size: 1.35rem; font-weight: 700; color: var(--color-primary); letter-spacing: 1px; text-transform: uppercase; }
.logo-tagline { font-size: 0.65rem; color: var(--color-accent); font-weight: 500; letter-spacing: 2px; text-transform: uppercase; font-family: var(--font-body); }
.main-nav { display: flex; align-items: center; gap: 0.5rem; }
.nav-link { padding: 0.5rem 1rem; font-size: 0.85rem; font-weight: 500; color: var(--color-text); text-transform: uppercase; letter-spacing: 0.5px; border-radius: var(--radius-sm); transition: all 0.2s ease; position: relative; font-family: var(--font-heading); }
.nav-link::after { content: ''; position: absolute; bottom: 0.25rem; left: 50%; width: 0; height: 2px; background: var(--color-accent); transition: all 0.3s ease; transform: translateX(-50%); }
.nav-link:hover, .nav-link.active { color: var(--color-primary); }
.nav-link:hover::after, .nav-link.active::after { width: 80%; }
.nav-cta { background: var(--color-primary); color: #fff !important; }
.nav-cta:hover { background: var(--color-accent); color: #fff !important; }
.nav-cta::after { display: none; }
.mobile-menu-btn { display: none; background: none; border: none; cursor: pointer; padding: 0.5rem; z-index: 1001; }
.mobile-menu-btn span { display: block; width: 24px; height: 2px; background: var(--color-primary); margin: 5px 0; transition: var(--transition-base); }
/* --- Hero Section --- */
.hero { min-height: 100vh; display: flex; align-items: center; padding-top: var(--header-height); background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%); color: #fff; position: relative; overflow: hidden; }
.hero::before { content: ''; position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 36v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 6V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); opacity: 0.5; }
.hero-content { position: relative; z-index: 1; width: 100%; max-width: 800px; margin: 0 auto; text-align: center; padding: 2rem 1.5rem; }
.hero .tag { background: var(--color-accent); color: #fff; }
.hero h1 { color: #fff; margin-bottom: 1.5rem; text-shadow: 0 4px 20px rgba(0,0,0,0.3); }
.hero .lead { font-size: clamp(1.1rem, 2.5vw, 1.35rem); color: rgba(255,255,255,0.85); max-width: 650px; margin: 0 auto 2.5rem; font-weight: 300; line-height: 1.7; }
.hero-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.hero .btn-primary { background: var(--color-accent); border-color: var(--color-accent); }
.hero .btn-secondary { border-color: #fff; color: #fff; }
.hero .btn-secondary:hover { background: #fff; color: var(--color-primary); }
.hero-scroll-indicator { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); animation: bounce 2s infinite; opacity: 0.7; }
@keyframes bounce { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(10px); } }
/* --- Payment Estimator (Interactive) --- */
.estimator-section { background: var(--color-surface); margin-top: -4rem; padding-top: 5rem; position: relative; z-index: 10; border-radius: var(--radius-lg) var(--radius-lg) 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.05); }
.estimator-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.estimator-form { background: var(--color-bg); padding: 2.5rem; border-radius: var(--radius-lg); border: 1px solid var(--color-border); }
.estimator-form h3 { margin-bottom: 0.5rem; }
.estimator-form > p { color: var(--color-text-muted); margin-bottom: 2rem; font-size: 0.95rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.form-group { margin-bottom: 1.5rem; }
.form-group label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: var(--color-text); margin-bottom: 0.5rem; font-family: var(--font-heading); }
.form-group input, .form-group select { width: 100%; padding: 0.875rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-family: var(--font-body); font-size: 1rem; color: var(--color-text); background: #fff; transition: border-color var(--transition-base), box-shadow var(--transition-base); }
.form-group input:focus, .form-group select:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(26, 60, 94, 0.15); }
.form-group input::placeholder { color: var(--color-text-muted); }
.estimator-result { background: var(--color-primary); color: #fff; padding: 2.5rem; border-radius: var(--radius-lg); text-align: center; }
.estimator-result h3 { color: #fff; margin-bottom: 1rem; }
.result-value { font-size: clamp(2.5rem, 5vw, 3.5rem); font-weight: 700; font-family: var(--font-heading); color: var(--color-accent); line-height: 1.1; margin-bottom: 0.5rem; }
.result-label { font-size: 0.9rem; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 2rem; }
.result-breakdown { text-align: left; background: rgba(255,255,255,0.05); padding: 1.5rem; border-radius: var(--radius-md); font-size: 0.9rem; }
.result-breakdown div { display: flex; justify-content: space-between; padding: 0.5rem 0; border-bottom: 1px solid rgba(255,255,255,0.1); }
.result-breakdown div:last-child { border-bottom: none; font-weight: 600; color: var(--color-accent); font-size: 1.1rem; }
.disclaimer { font-size: 0.7rem; color: rgba(255,255,255,0.5); margin-top: 1.5rem; line-height: 1.5; }
/* --- Featured Inventory Grid --- */
.vehicle-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; }
.vehicle-card { background: var(--color-surface); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); border: 1px solid var(--color-border); transition: transform var(--transition-base), box-shadow var(--transition-base); }
.vehicle-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); }
.vehicle-media { position: relative; aspect-ratio: 16/10; overflow: hidden; background: var(--color-bg); }
.vehicle-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.vehicle-card:hover .vehicle-media img { transform: scale(1.05); }
.vehicle-badge { position: absolute; top: 1rem; left: 1rem; z-index: 2; }
.badge-new { background: var(--color-accent); }
.badge-cpo { background: #27ae60; }
.vehicle-body { padding: 1.5rem; }
.vehicle-meta { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.75rem; font-size: 0.8rem; color: var(--color-text-muted); }
.vehicle-meta span { display: flex; align-items: center; gap: 0.25rem; background: var(--color-bg); padding: 0.25rem 0.5rem; border-radius: var(--radius-sm); }
.vehicle-title { font-family: var(--font-heading); font-size: 1.25rem; color: var(--color-primary); margin-bottom: 0.5rem; text-transform: none; letter-spacing: 0; }
.vehicle-price { font-size: 1.5rem; font-weight: 700; color: var(--color-text); font-family: var(--font-heading); margin-bottom: 1rem; }
.vehicle-price span { font-size: 0.9rem; font-weight: 400; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.vehicle-cta { width: 100%; }
/* --- Content Sections (News/Reviews/Service) --- */
.content-layout { display: grid; grid-template-columns: 1fr 350px; gap: 3rem; align-items: start; }
.article-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 2rem; transition: box-shadow var(--transition-base); }
.article-card:hover { box-shadow: var(--shadow-md); }
.article-media { aspect-ratio: 16/9; overflow: hidden; }
.article-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.article-card:hover .article-media img { transform: scale(1.03); }
.article-body { padding: 1.5rem 1.5rem 1.5rem; }
.article-meta { display: flex; gap: 1rem; font-size: 0.75rem; color: var(--color-text-muted); margin-bottom: 0.75rem; text-transform: uppercase; letter-spacing: 0.5px; }
.article-meta time { font-weight: 500; }
.article-title { font-size: 1.35rem; margin-bottom: 0.75rem; line-height: 1.3; text-transform: none; color: var(--color-primary); }
.article-excerpt { color: var(--color-text-muted); margin-bottom: 1rem; font-size: 0.95rem; line-height: 1.7; }
.article-link { font-weight: 600; font-size: 0.9rem; display: inline-flex; align-items: center; gap: 0.4rem; color: var(--color-primary); }
.article-link svg { transition: transform 0.2s ease; }
.article-link:hover svg { transform: translateX(4px); }
/* --- Sidebar Widgets --- */
.sidebar-widget { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 1.5rem; margin-bottom: 1.5rem; position: sticky; top: calc(var(--header-height) + 1.5rem); }
.widget-title { font-size: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: var(--color-primary); margin-bottom: 1.25rem; padding-bottom: 0.75rem; border-bottom: 2px solid var(--color-accent); display: inline-block; font-family: var(--font-heading); }
.review-item { display: flex; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--color-border); }
.review-item:last-child { border-bottom: none; padding-bottom: 0; }
.review-avatar { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 2px solid var(--color-border); }
.review-text { font-size: 0.85rem; line-height: 1.5; color: var(--color-text); }
.review-author { font-weight: 600; color: var(--color-primary); font-size: 0.8rem; margin-top: 0.25rem; display: block; }
.review-rating { color: #f39c12; font-size: 0.8rem; letter-spacing: 1px; }
.award-list li { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 0; border-bottom: 1px solid var(--color-border); font-size: 0.9rem; }
.award-list li:last-child { border-bottom: none; }
.award-icon { width: 36px; height: 36px; background: var(--color-primary); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.9rem; flex-shrink: 0; }
/* --- Testimonials --- */
.testimonials-section { background: var(--color-primary); color: #fff; }
.testimonials-section h2 { color: #fff; }
.testimonials-section .section-header p { color: rgba(255,255,255,0.7); }
.testimonial-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; }
.testimonial-card { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); padding: 2.5rem; border-radius: var(--radius-lg); backdrop-filter: blur(5px); transition: transform var(--transition-base); }
.testimonial-card:hover { transform: translateY(-5px); border-color: var(--color-accent); }
.testimonial-quote { font-size: 1.1rem; line-height: 1.7; color: rgba(255,255,255,0.9); margin-bottom: 1.5rem; font-style: italic; position: relative; padding-left: 1.5rem; }
.testimonial-quote::before { content: '“'; font-family: Georgia, serif; font-size: 4rem; color: var(--color-accent); position: absolute; left: -0.5rem; top: -1.5rem; line-height: 1; opacity: 0.4; }
.testimonial-author { display: flex; align-items: center; gap: 1rem; }
.testimonial-avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid var(--color-accent); }
.testimonial-info h4 { color: #fff; font-size: 1rem; margin-bottom: 0.15rem; text-transform: none; font-family: var(--font-body); font-weight: 600; }
.testimonial-info p { color: rgba(255,255,255,0.6); font-size: 0.85rem; margin: 0; text-transform: uppercase; letter-spacing: 0.5px; font-family: var(--font-heading); }
/* --- FAQ Accordion --- */
.faq-section { background: var(--color-bg); }
.faq-list { max-width: 800px; margin: 0 auto; }
.faq-item { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); margin-bottom: 1rem; overflow: hidden; transition: box-shadow var(--transition-base); }
.faq-item.open { box-shadow: var(--shadow-md); border-color: var(--color-primary); }
.faq-question { width: 100%; text-align: left; padding: 1.25rem 1.5rem; background: none; border: none; font-family: var(--font-heading); font-size: 1.05rem; font-weight: 500; color: var(--color-primary); cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq-question::after { content: '+'; font-size: 1.5rem; font-weight: 300; color: var(--color-accent); transition: transform 0.3s ease; flex-shrink: 0; }
.faq-item.open .faq-question::after { transform: rotate(45deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease; }
.faq-answer-inner { padding: 0 1.5rem 1.5rem; color: var(--color-text-muted); line-height: 1.7; font-size: 0.95rem; }
/* --- Footer --- */
.site-footer { background: var(--color-primary-dark); color: rgba(255,255,255,0.7); padding: 4rem 0 2rem; font-size: 0.9rem; }
.footer-grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 3rem; margin-bottom: 3rem; }
.footer-brand .logo-name { color: #fff; }
.footer-brand .logo-tagline { color: var(--color-accent); }
.footer-brand p { margin-top: 1rem; color: rgba(255,255,255,0.5); line-height: 1.7; }
.footer-column h4 { color: #fff; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 1.25rem; font-family: var(--font-heading); }
.footer-column ul li { margin-bottom: 0.6rem; }
.footer-column a { color: rgba(255,255,255,0.7); }
.footer-column a:hover { color: var(--color-accent); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 2rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; }
.social-links { display: flex; gap: 1rem; }
.social-links a { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: center; color: #fff; transition: all 0.2s ease; }
.social-links a:hover { background: var(--color-accent); transform: translateY(-2px); }
/* --- Animations --- */
.fade-up { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease, transform 0.6s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: 100ms; }
.delay-2 { transition-delay: 200ms; }
.delay-3 { transition-delay: 300ms; }
.delay-4 { transition-delay: 400ms; }
/* --- Responsive --- */
@media (max-width: 992px) {
.estimator-grid { grid-template-columns: 1fr; }
.content-layout { grid-template-columns: 1fr; }
.sidebar-widget { position: static; }
.footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
.main-nav { position: fixed; top: 0; right: -100%; width: 80%; max-width: 320px; height: 100vh; background: var(--color-surface); flex-direction: column; align-items: flex-start; padding: calc(var(--header-height) + 2rem) 2rem 2rem; gap: 0.5rem; box-shadow: var(--shadow-lg); transition: right 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); z-index: 999; }
.main-nav.open { right: 0; }
.mobile-menu-btn { display: block; }
.mobile-menu-btn.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.mobile-menu-btn.open span:nth-child(2) { opacity: 0; }
.mobile-menu-btn.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }
.nav-link { width: 100%; padding: 1rem 0; font-size: 1rem; }
.form-row { grid-template-columns: 1fr; }
.footer-grid { grid-template-columns: 1fr; }
.footer-bottom { flex-direction: column; text-align: center; }
}
@media (max-width: 480px) {
.hero-actions { flex-direction: column; align-items: center; }
.btn { width: 100%; max-width: 300px; }
}
</style>
</head>
<body>
<!-- Header -->
<header class="site-header" id="siteHeader" role="banner">
<div class="container header-inner">
<a href="#" class="logo" aria-label="Apex Auto Journal Home">
<img src="https://placehold.co/40x40/1a3c5e/ffffff?text=AAJ&font=oswald" alt="" class="logo-img" aria-hidden="true">
<div class="logo-text">
<span class="logo-name">Apex Auto Journal</span>
<span class="logo-tagline">Where Precision Meets Pavement</span>
</div>
</a>
<nav class="main-nav" id="mainNav" role="navigation" aria-label="Main Navigation">
<a href="#inventory" class="nav-link">Inventory</a>
<a href="#financing" class="nav-link">Financing</a>
<a href="#reviews" class="nav-link">Reviews</a>
<a href="#service" class="nav-link">Service Center</a>
<a href="#news" class="nav-link">News & Tips</a>
<a href="#about" class="nav-link">About</a>
<a href="#contact" class="nav-link nav-cta">Get a Quote</a>
</nav>
<button class="mobile-menu-btn" id="mobileMenuBtn" aria-label="Toggle Menu" aria-expanded="false" aria-controls="mainNav">
<span></span><span></span><span></span>
</button>
</div>
</header>
<main id="mainContent">
<!-- Hero Section -->
<section class="hero" aria-labelledby="hero-title">
<div class="hero-content">
<span class="tag fade-up">Trusted Automotive Authority Since 2010</span>
<h1 id="hero-title" class="fade-up">Drive Smarter. Buy Confidently. Maintain Expertly.</h1>
<p class="lead fade-up delay-1">Apex Auto Journal bridges the gap between showroom specs and real-world ownership. From breaking industry news and comparative reviews to DIY maintenance guides and transparent financing tools, we empower every mile of your journey.</p>
<div class="hero-actions fade-up delay-2">
<a href="#inventory" class="btn btn-primary">Browse New Arrivals</a>
<a href="#estimator" class="btn btn-secondary">Estimate Payments</a>
</div>
</div>
<div class="hero-scroll-indicator" aria-hidden="true">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14M19 12l-7 7-7-7"/></svg>
</div>
</section>
<!-- Interactive Payment Estimator -->
<section class="estimator-section" id="estimator" aria-labelledby="estimator-title">
<div class="container">
<div class="estimator-grid">
<div class="estimator-form fade-up">
<span class="tag" style="background: var(--color-accent);">Financial Tools</span>
<h3 id="estimator-title">Monthly Payment Estimator</h3>
<p>Adjust the sliders below to get an instant estimate of your monthly obligation. Calculations assume a 60-month term on approved credit. Tax, title, and license fees extra.</p>
<form id="paymentForm" novalidate>
<div class="form-row">
<div class="form-group">
<label for="vehiclePrice">Vehicle Price (MSRP)</label>
<input type="number" id="vehiclePrice" name="vehiclePrice" min="10000" max="200000" step="1000" value="42000" placeholder="$42,000" required aria-describedby="priceHelp">
</div>
<div class="form-group">
<label for="downPayment">Down Payment / Trade Equity</label>
<input type="number" id="downPayment" name="downPayment" min="0" max="100000" step="500" value="5000" placeholder="$5,000" required>
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="apr">Estimated APR (%)</label>
<input type="number" id="apr" name="apr" min="0" max="25" step="0.1" value="6.9" placeholder="6.9%" required>
</div>
<div class="form-group">
<label for="term">Loan Term (Months)</label>
<select id="term" name="term" required>
<option value="36">36 Months</option>
<option value="48">48 Months</option>
<option value="60" selected>60 Months</option>
<option value="72">72 Months</option>
<option value="84">84 Months</option>
</select>
</div>
</div>
<button type="submit" class="btn btn-primary" style="width: 100%;">Calculate Payment</button>
</form>
</div>
<div class="estimator-result fade-up delay-1" aria-live="polite" id="resultContainer">
<h3>Estimated Monthly Payment</h3>
<div class="result-value" id="monthlyPayment">$0</div>
<div class="result-label">Based on your inputs above</div>
<div class="result-breakdown" id="breakdown">
<div><span>Amount Financed</span><span id="financedAmt">$0</span></div>
<div><span>Total Interest</span><span id="totalInterest">$0</span></div>
<div><span>Total of Payments</span><span id="totalPayments">$0</span></div>
</div>
<p class="disclaimer">*Estimate only. Actual payments vary based on creditworthiness, lender programs, and local taxes. Contact our <a href="#financing" style="color: var(--color-accent); text-decoration: underline;">Financing Department</a> for a personalized quote.</p>
</div>
</div>
</div>
</section>
<!-- Featured Inventory -->
<section class="section" id="inventory" aria-labelledby="inventory-title">
<div class="container">
<header class="section-header fade-up">
<span class="tag">New Arrivals</span>
<h2 id="inventory-title">Fresh Metal On The Lot</h2>
<p>Hand-selected inventory featuring the latest model year releases, manufacturer incentives, and limited-edition trims. Every vehicle undergoes a 150-point inspection before delivery.</p>
</header>
<div class="vehicle-grid">
<!-- Vehicle 1 -->
<article class="vehicle-card fade-up">
<div class="vehicle-media">
<img src="https://picsum.photos/seed/apex-sedan-2025/600/375.jpg" alt="2025 Apex GT Sedan in Magnetic Grey" loading="lazy">
<span class="vehicle-badge badge-new">New</span>
</div>
<div class="vehicle-body">
<div class="vehicle-meta">
<span>🛞 AWD</span><span>⛽ 2.0T</span><span>🔧 8-Speed AT</span>
</div>
<h3 class="vehicle-title">2025 Apex GT Sedan Premium</h3>
<div class="vehicle-price">$42,895 <span>/ mo est. $680*</span></div>
<p style="font-size: 0.9rem; color: var(--color-text-muted); margin-bottom: 1rem;">Features: Adaptive Cruise, 12.3" Digital Cluster, Leather-Accented Seats, Brembo Brakes. MSRP includes destination. <strong>VIN: #A25GT88421</strong></p>
<a href="#" class="btn btn-outline vehicle-cta">View Window Sticker</a>
</div>
</article>
<!-- Vehicle 2 -->
<article class="vehicle-card fade-up delay-1">
<div class="vehicle-media">
<img src="https://picsum.photos/seed/apex-suv-2024/600/375.jpg" alt="2024 Apex CX-9 SUV in Pearl White" loading="lazy">
<span class="vehicle-badge badge-cpo">Certified</span>
</div>
<div class="vehicle-body">
<div class="vehicle-meta">
<span>🛞 4WD</span><span>⛽ 3.5L V6</span><span>👨👩👧👦 7-Passenger</span>
</div>
<h3 class="vehicle-title">2024 Apex CX-9 Limited 4WD</h3>
<div class="vehicle-price">$38,450 <span>/ mo est. $610*</span></div>
<p style="font-size: 0.9rem; color: var(--color-text-muted); margin-bottom: 1rem;">CPO Warranty: 12-mo/12k mi Comprehensive + 7-yr/100k mi Powertrain. One-owner, clean Carfax. Panoramic roof, HUD, Ventilated Seats. <strong>VIN: #C24CX11903</strong></p>
<a href="#" class="btn btn-outline vehicle-cta">View CARFAX Report</a>
</div>
</article>
<!-- Vehicle 3 -->
<article class="vehicle-card fade-up delay-2">
<div class="vehicle-media">
<img src="https://picsum.photos/seed/apex-ev-2025/600/375.jpg" alt="2025 Apex Ion EV in Electric Blue" loading="lazy">
<span class="vehicle-badge badge-new">New</span>
</div>
<div class="vehicle-body">
<div class="vehicle-meta">
<span>⚡ AWD Dual Motor</span><span>🔋 310 mi Range</span><span>⚡ 150kW DC Fast</span>
</div>
<h3 class="vehicle-title">2025 Apex Ion EV Performance</h3>
<div class="vehicle-price">$54,990 <span>/ mo est. $820*</span></div>
<p style="font-size: 0.9rem; color: var(--color-text-muted); margin-bottom: 1rem;">Qualifies for $7,500 Federal Tax Credit (MSRP Cap). 0-60 in 3.5s. Heat Pump, Matrix LED, V2L Capability. Eligible for HOV Lane Access. <strong>VIN: #E25ION00455</strong></p>
<a href="#" class="btn btn-primary vehicle-cta">Reserve Yours</a>
</div>
</article>
</div>
<div style="text-align: center; margin-top: 2.5rem;" class="fade-up delay-3">
<a href="#" class="btn btn-secondary">View Full Inventory (140+ Vehicles)</a>
</div>
</div>
</section>
<!-- Content & Sidebar Layout -->
<section class="section" style="background: var(--color-surface);" id="reviews">
<div class="container">
<div class="content-layout">
<!-- Main Content Column -->
<div class="main-column">
<header class="section-header" style="text-align: left; margin: 0 0 2rem; max-width: none;">
<span class="tag" style="margin: 0 0 1rem;">Expert Analysis</span>
<h2>Latest Reviews & Road Tests</h2>
<p>Our engineers and journalists put hundreds of miles on every test vehicle. We measure 0-60, braking distances, skidpad grip, and real-world EV range—not just press kit specs.</p>
</header>
<article class="article-card fade-up">
<div class="article-media">
<img src="https://picsum.photos/seed/review-sport-sedan/800/450.jpg" alt="Sport sedan on track" loading="lazy">
</div>
<div class="article-body">
<div class="article-meta">
<span class="tag" style="background: var(--color-accent); font-size: 0.65rem; padding: 0.15rem 0.5rem;">Road Test</span>
<time datetime="2024-05-15">May 15, 2024</time>
<span>12 Min Read</span>
</div>
<h3 class="article-title">2025 Apex GT vs. European Rivals: Can Value Beat Prestige?</h3>
<p class="article-excerpt">We line up the new GT against the segment benchmarks from Munich and Stuttgart. The numbers are shocking: the Apex outperforms the M340i xDrive in figure-eight latency and stops shorter than the S4 from 70mph. But does the chassis tuning deliver the emotional engagement enthusiasts crave? We dissect the steering rack ratio, bushing compliance, and torque vectoring logic to find out.</p>
<a href="#" class="article-link">Read Full Review <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg></a>
</div>
</article>
<article class="article-card fade-up delay-1">
<div class="article-media">
<img src="https://picsum.photos/seed/review-ev-suv/800/450.jpg" alt="Electric SUV charging" loading="lazy">
</div>
<div class="article-body">
<div class="article-meta">
<span class="tag" style="background: #27ae60; font-size: 0.65rem; padding: 0.15rem 0.5rem;">EV Focus</span>
<time datetime="2024-05-10">May 10, 2024</time>
<span>8 Min Read</span>
</div>
<h3 class="article-title">Long-Term Ion EV Update: 15,000 Miles & Winter Range Reality</h3>
<p class="article-excerpt">After a brutal Midwest winter, our long-term Ion EV returned 82% of its EPA rated range at 20°F with the heat pump active. We detail the degradation curve, DC fast charging curve stability at 800V architecture, and the hidden costs of tire wear on 2,500lb EVs. Plus: a deep dive into the new OTA update fixing the brake-by-wire pedal feel.</p>
<a href="#" class="article-link">Read Update <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg></a>
</div>
</article>
<article class="article-card fade-up delay-2" id="service">
<div class="article-media">
<img src="https://picsum.photos/seed/repair-tips/800/450.jpg" alt="Mechanic working on engine" loading="lazy">
</div>
<div class="article-body">
<div class="article-meta">
<span class="tag" style="background: #f39c12; font-size: 0.65rem; padding: 0.15rem 0.5rem;">Service Tips</span>
<time datetime="2024-05-05">May 5, 2024</time>
<span>6 Min Read</span>
</div>
<h3 class="article-title">The 30k/60k/90k Service Interval Myth: What Your Manual Actually Says</h3>
<p class="article-excerpt">Dealership service advisors often push "wallet flush" packages at 30k miles. We break down the factory maintenance schedule for the top 10 selling platforms. Spoiler: Most modern engines don't need transmission fluid service until 100k+ miles, and "induction cleaning" is rarely required on port-injected engines. Save thousands by knowing the difference between <em>required</em> maintenance and <em>recommended</em> upsells.</p>
<a href="#" class="article-link">Read Guide <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg></a>
</div>
</article>
</div>
<!-- Sidebar -->
<aside class="sidebar" aria-label="Sidebar Widgets">
<!-- Widget: Customer Reviews -->
<div class="sidebar-widget fade-up">
<h4 class="widget-title">Verified Owner Reviews</h4>
<div class="review-item">
<img src="https://i.pravatar.cc/50?u=sarahj" alt="" class="review-avatar" loading="lazy">
<div>
<span class="review-rating">★★★★★</span>
<p class="review-text">"The financing team at Apex matched my credit union rate 4.9% vs 5.2% and handled the trade-in paperwork in 20 mins. Zero pressure."</p>
<span class="review-author">Sarah J. — 2024 CX-9 Buyer</span>
</div>
</div>
<div class="review-item">
<img src="https://i.pravatar.cc/50?u=mikeb" alt="" class="review-avatar" loading="lazy">
<div>
<span class="review-rating">★★★★☆</span>
<p class="review-text">"Service dept diagnosed a phantom CEL on my GT that the dealer missed. Turned out to be a loose ground strap. Honest labor billing."</p>
<span class="review-author">Mike B. — 2023 GT Owner</span>
</div>
</div>
<div class="review-item">
<img src="https://i.pravatar.cc/50?u=lisak" alt="" class="review-avatar" loading="lazy">
<div>
<span class="review-rating">★★★★★</span>
<p class="review-text">"Best car buying experience in 20 years. Home delivery, digital signing, detailed walkthrough video sent prior to arrival. Modern retail."</p>
<span class="review-author">Lisa K. — 2025 Ion EV Lessee</span>
</div>
</div>
<a href="#" style="display:block; text-align:center; margin-top: 0.5rem; font-size: 0.85rem; font-weight: 500;">View All 1,240+ Reviews →</a>
</div>
<!-- Widget: Dealer Awards -->
<div class="sidebar-widget fade-up delay-1">
<h4 class="widget-title">Dealer Awards & Certifications</h4>
<ul class="award-list">
<li><span class="award-icon">🏆</span><div><strong>J.D. Power Dealer of Excellence</strong><br><small style="color:var(--color-text-muted)">2021, 2022, 2023, 2024</small></div></li>
<li><span class="award-icon">⭐</span><div><strong>CARFAX Top-Rated Dealer</strong><br><small style="color:var(--color-text-muted)">4.9/5.0 Average Rating</small></div></li>
<li><span class="award-icon">🔧</span><div><strong>ASE Blue Seal Certified Shop</strong><br><small style="color:var(--color-text-muted)">100% Master Techs on Staff</small></div></li>
<li><span class="award-icon">🌱</span><div><strong>Green Dealer Certification</strong><br><small style="color:var(--color-text-muted)">Solar Array & Solvent Recycling</small></div></li>
</ul>
</div>
<!-- Widget: Service Specials -->
<div class="sidebar-widget fade-up delay-2">
<h4 class="widget-title">Current Service Specials</h4>
<ul class="award-list" style="padding: 0;">
<li style="display:block; padding: 1rem 0; border-bottom: 1px dashed var(--color-border);">
<strong style="color: var(--color-primary);">Synthetic Oil Change + Tire Rotation</strong><br>
<small style="color: var(--color-text-muted);">$69.95 | Up to 5qts 0W-20/5W-30. Includes 27-pt Inspection & Battery Test.</small>
</li>
<li style="display:block; padding: 1rem 0; border-bottom: 1px dashed var(--color-border);">
<strong style="color: var(--color-primary);">Brake Pad Replacement (Per Axle)</strong><br>
<small style="color: var(--color-text-muted);">$189.95 | Ceramic Pads. Resurface Rotors + Hardware Kit Included. Lifetime Warranty.</small>
</li>
<li style="display:block; padding: 1rem 0;">
<strong style="color: var(--color-primary);">EV Coolant Flush & Battery Health Scan</strong><br>
<small style="color: var(--color-text-muted);">$149.95 | OEM Spec Fluid. Thermal Imaging Report Included. Required at 50k mi.</small>
</li>
</ul>
<a href="#contact" class="btn btn-outline" style="width: 100%; margin-top: 1rem; font-size: 0.8rem; padding: 0.75rem;">Schedule Service Appointment</a>
</div>
</aside>
</div>
</div>
</section>
<!-- News & Industry Insights -->
<section class="section" id="news" aria-labelledby="news-title">
<div class="container">
<header class="section-header fade-up">
<span class="tag">Industry Pulse</span>
<h2 id="news-title">News, Trends & Buying Guides</h2>
<p>Stay ahead of the curve with analysis on manufacturer incentives, regulatory changes affecting emissions, and deep-dive buying guides for every segment.</p>
</header>
<div class="vehicle-grid" style="grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));">
<article class="article-card fade-up" style="margin: 0;">
<div class="article-media">
<img src="https://picsum.photos/seed/news-incentives/600/340.jpg" alt="Cash back incentives graphic" loading="lazy">
</div>
<div class="article-body">
<div class="article-meta"><time datetime="2024-05-18">May 18, 2024</time><span>Market Watch</span></div>
<h3 class="article-title">June Incentive Forecast: High Inventory Trims to Watch</h3>
<p class="article-excerpt">Manufacturers are sitting on 75+ days supply on key sedans. We predict aggressive lease subvention on 2024 models ahead of 2025 changeover. See which trim levels have hidden conquest cash.</p>
<a href="#" class="article-link">Analyze Incentives</a>
</div>
</article>
<article class="article-card fade-up delay-1" style="margin: 0;">
<div class="article-media">
<img src="https://picsum.photos/seed/news-tariffs/600/340.jpg" alt="Global supply chain map" loading="lazy">
</div>
<div class="article-body">
<div class="article-meta"><time datetime="2024-05-12">May 12, 2024</time><span>Policy</span></div>
<h3 class="article-title">New Tariff Structure Impact on European Import Pricing</h3>
<p class="article-excerpt">The latest 25% duty on specific EU auto imports takes effect Q3. We model the MSRP impact on German luxury sedans and SUVs. Domestic competitors may see pricing power shift.</p>
<a href="#" class="article-link">Read Analysis</a>
</div>
</article>
<article class="article-card fade-up delay-2" style="margin: 0;">
<div class="article-media">
<img src="https://picsum.photos/seed/guide-first-car/600/340.jpg" alt="First time buyer guide" loading="lazy">
</div>
<div class="article-body">
<div class="article-meta"><time datetime="2024-05-01">May 1, 2024</time><span>Buying Guide</span></div>
<h3 class="article-title">First-Time Buyer Checklist: Credit, GAP, & Extended Warranties</h3>
<p class="article-excerpt">Navigating the F&I office for the first time? We explain Loan-to-Value ratios, why GAP insurance is critical on low-down-payment deals, and how to evaluate third-party vehicle service contracts vs OEM.</p>
<a href="#" class="article-link">Download Checklist</a>
</div>
</article>
</div>
</div>
</section>
<!-- Testimonials -->
<section class="section testimonials-section" aria-labelledby="testimonials-title">
<div class="container">
<header class="section-header fade-up">
<span class="tag" style="background: var(--color-accent);">Client Partners</span>
<h2 id="testimonials-title">Trusted by Drivers Nationwide</h2>
<p>We don't just sell cars; we build relationships. Hear from customers who trusted Apex for their latest purchase, lease, or major repair.</p>
</header>
<div class="testimonial-grid">
<blockquote class="testimonial-card fade-up">
<p class="testimonial-quote">"I flew in from Chicago to buy my Ion EV. The 'Buy Online' process was flawless—my trade was sight-unseen appraised via video call within $200 of final offer. Delivered to my door with 80% charge. This is how 2024 car buying should work."</p>
<div class="testimonial-author">
<img src="https://i.pravatar.cc/100?u=exec1" alt="David R." class="testimonial-avatar" loading="lazy">
<div class="testimonial-info"><h4>David R.</h4><p>Tech Executive, IL</p></div>
</div>
</blockquote>
<blockquote class="testimonial-card fade-up delay-1">
<p class="testimonial-quote">"My 2018 sedan threw a rod at 92k miles—outside powertrain warranty. The Service Director fought the district rep for a goodwill repair. They covered 80% of the $6,800 bill. That loyalty keeps my fleet of 3 with Apex."</p>
<div class="testimonial-author">
<img src="https://i.pravatar.cc/100?u=owner2" alt="Maria S." class="testimonial-avatar" loading="lazy">
<div class="testimonial-info"><h4>Maria S.</h4><p>Small Business Owner, TX</p></div>
</div>
</blockquote>
<blockquote class="testimonial-card fade-up delay-2">
<p class="testimonial-quote">"As a first-gen buyer with thin credit, I expected the 'subprime' runaround. The F&I manager structured a 60-month at 8.9% with a co-signer release clause at 24 months on-time. Transparent, educational, zero games."</p>
<div class="testimonial-author">
<img src="https://i.pravatar.cc/100?u=buyer3" alt="James L." class="testimonial-avatar" loading="lazy">
<div class="testimonial-info"><h4>James L.</h4><p>Recent Grad, GA</p></div>
</div>
</blockquote>
</div>
</div>
</section>
<!-- FAQ Accordion -->
<section class="section faq-section" id="faq" aria-labelledby="faq-title">
<div class="container">
<header class="section-header fade-up">
<span class="tag">Support</span>
<h2 id="faq-title">Frequently Asked Questions</h2>
<p>Quick answers to common questions about purchasing, financing, service intervals, and our certified pre-owned program.</p>
</header>
<div class="faq-list">
<div class="faq-item fade-up">
<button class="faq-question" aria-expanded="false" aria-controls="faq1-answer">What is included in the Apex Certified Pre-Owned (CPO) warranty?</button>
<div id="faq1-answer" class="faq-answer" role="region" aria-hidden="true">
<div class="faq-answer-inner">Our CPO program includes a 12-month/12,000-mile comprehensive limited warranty (bumper-to-bumper) with $0 deductible, layered on top of the remaining 7-year/100,000-mile factory powertrain warranty from the original in-service date. It also includes 24/7 roadside assistance, trip interruption coverage ($500/day), and a 3-day/150-mile exchange policy. Every CPO vehicle passes a mandatory 165-point inspection by an ASE Master Technician and includes a free CARFAX Vehicle History Report.</div>
</div>
</div>
<div class="faq-item fade-up delay-1">
<button class="faq-question" aria-expanded="false" aria-controls="faq2-answer">Can I complete the entire purchase process online without visiting the dealership?</button>
<div id="faq2-answer" class="faq-answer" role="region" aria-hidden="true">
<div class="faq-answer-inner">Yes. Our "Apex Direct" platform allows you to select inventory, value your trade-in via live video appraisal, secure financing with multiple lenders, sign all docu-sign compliant contracts, and arrange home delivery within a 150-mile radius (fee applies beyond 50 miles). A notary can be dispatched to your location for states requiring wet signatures. Temporary tags are issued electronically.</div>
</div>
</div>
<div class="faq-item fade-up delay-2">
<button class="faq-question" aria-expanded="false" aria-controls="faq3-answer">Do you accept outside financing or must I use your lenders?</button>
<div id="faq3-answer" class="faq-answer" role="region" aria-hidden="true">
<div class="faq-answer-inner">We absolutely welcome outside financing. If you have a pre-approval from your credit union or bank, bring the check or draft. We will verify the funding and process the title work. However, we encourage you to let us submit your application to our network of 25+ lending partners (including major captives like Ally, Chase, USBank, and local credit unions). We often beat outside rates due to volume incentives, and we handle all the paperwork instantly.</div>
</div>
</div>
<div class="faq-item fade-up delay-3">
<button class="faq-question" aria-expanded="false" aria-controls="faq4-answer">What is your policy on 'Market Adjustment' fees above MSRP?</button>
<div id="faq4-answer" class="faq-answer" role="region" aria-hidden="true">
<div class="faq-answer-inner"><strong>Apex Auto Journal does not charge Market Adjustment fees (Additional Dealer Markup) on any new vehicle.</strong> We sell every new vehicle at or below MSRP (minus available manufacturer rebates). We believe transparent pricing builds lifetime value. Our profit margin is derived from volume bonuses, F&I products, and fixed operations—not price gouging on high-demand models like the Ion EV or GT Sedan.</div>
</div>
</div>
<div class="faq-item fade-up delay-4">
<button class="faq-question" aria-expanded="false" aria-controls="faq5-answer">How often should I service my EV compared to a gas vehicle?</button>
<div id="faq5-answer" class="faq-answer" role="region" aria-hidden="true">
<div class="faq-answer-inner">EVs require significantly less routine maintenance. There are no oil changes, spark plugs, transmission fluid services (usually), or exhaust components. The primary service intervals are: Tire Rotation every 7,500 miles, Cabin Air Filter every 2 years, Brake Fluid Flush every 3 years (due to hygroscopic nature), and Battery Coolant Check/Flush per manufacturer schedule (typically 150k miles or 10 years). Regenerative braking extends friction pad life to 80k+ miles typically.</div>
</div>
</div>
</div>
</div>
</section>
</main>
<!-- Footer -->
<footer class="site-footer" id="contact" role="contentinfo">
<div class="container">
<div class="footer-grid">
<div class="footer-brand">
<a href="#" class="logo" style="margin-bottom: 1rem;">
<img src="https://placehold.co/40x40/1a3c5e/ffffff?text=AAJ&font=oswald" alt="" class="logo-img" aria-hidden="true">
<div class="logo-text">
<span class="logo-name" style="color: #fff;">Apex Auto Journal</span>
<span class="logo-tagline">Where Precision Meets Pavement</span>
</div>
</a>
<p>Your definitive source for automotive intelligence. Independent journalism, transparent retail, and expert service since 2010. We drive the industry forward.</p>
</div>
<div class="footer-column">
<h4>Shopping Tools</h4>
<ul>
<li><a href="#inventory">New Vehicle Inventory</a></li>
<li><a href="#inventory">Certified Pre-Owned</a></li>
<li><a href="#estimator">Payment Calculator</a></li>
<li><a href="#">Value Your Trade</a></li>
<li><a href="#">Compare Models</a></li>
<li><a href="#">Incentives & Rebates</a></li>
</ul>
</div>
<div class="footer-column">
<h4>Ownership & Service</h4>
<ul>
<li><a href="#">Schedule Service</a></li>
<li><a href="#">Service Specials</a></li>
<li><a href="#">Parts & Accessories</a></li>
<li><a href="#">Recall Lookup (VIN)</a></li>
<li><a href="#">Protection Plans</a></li>
<li><a href="#">Owner Manuals</a></li>
</ul>
</div>
<div class="footer-column">
<h4>Company & Legal</h4>
<ul>
<li><a href="#about">About Apex Auto Journal</a></li>
<li><a href="#">Careers</a></li>
<li><a href="#">Press Room</a></li>
<li><a href="#">Privacy Policy</a></li>
<li><a href="#">Terms of Use</a></li>
<li><a href="#">Do Not Sell My Info</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p style="font-size: 0.8rem; color: rgba(255,255,255,0.4);">© 2024 Apex Auto Journal, LLC. All Rights Reserved. Licensed Dealer #DL-192834.</p>
<div class="social-links">
<a href="#" aria-label="Facebook"><svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg></a>
<a href="#" aria-label="Instagram"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"/><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"/><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"/></svg></a>
<a href="#" aria-label="YouTube"><svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg></a>
<a href="#" aria-label="X (Twitter)"><svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 9.364H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg></a>
<a href="#" aria-label="LinkedIn"><svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg></a>
</div>
</div>
</div>
</footer>
<script>
// --- DOM Elements ---
const header = document.getElementById('siteHeader');
const mobileMenuBtn = document.getElementById('mobileMenuBtn');
const mainNav = document.getElementById('mainNav');
const paymentForm = document.getElementById('paymentForm');
const faqItems = document.querySelectorAll('.faq-item');
// --- Header Scroll Effect ---
window.addEventListener('scroll', () => {
if (window.scrollY > 50) {
header.classList.add('scrolled');
} else {
header.classList.remove('scrolled');
}
}, { passive: true });
// --- Mobile Menu Toggle ---
mobileMenuBtn.addEventListener('click', () => {
const isOpen = mainNav.classList.toggle('open');
mobileMenuBtn.classList.toggle('open');
mobileMenuBtn.setAttribute('aria-expanded', isOpen);
});
// Close mobile menu on link click
mainNav.querySelectorAll('.nav-link').forEach(link => {
link.addEventListener('click', () => {
if (window.innerWidth <= 768) {
mainNav.classList.remove('open');
mobileMenuBtn.classList.remove('open');
mobileMenuBtn.setAttribute('aria-expanded', 'false');
}
});
});
// --- Payment Estimator Logic ---
function calculatePayment(P, down, apr, months) {
const financed = P - down;
if (financed <= 0) return { payment: 0, interest: 0, total: 0, financed: 0 };
const monthlyRate = apr / 100 / 12;
let payment;
if (monthlyRate === 0) {
payment = financed / months;
} else {
payment = financed * (monthlyRate * Math.pow(1 + monthlyRate, months)) / (Math.pow(1 + monthlyRate, months) - 1);
}
const totalPaid = payment * months;
const totalInterest = totalPaid - financed;
return { payment, interest: totalInterest, total: totalPaid, financed };
}
function formatCurrency(val) {
return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(val);
}
paymentForm.addEventListener('input', (e) => {
// Live calculation on input change for better UX
if (e.target.type === 'number' || e.target.tagName === 'SELECT') {
updateEstimator();
}
});
paymentForm.addEventListener('submit', (e) => {
e.preventDefault();
updateEstimator();
});
function updateEstimator() {
const price = parseFloat(document.getElementById('vehiclePrice').value) || 0;
const down = parseFloat(document.getElementById('downPayment').value) || 0;
const apr = parseFloat(document.getElementById('apr').value) || 0;
const term = parseInt(document.getElementById('term').value, 10) || 60;
const res = calculatePayment(price, down, apr, term);
document.getElementById('monthlyPayment').textContent = formatCurrency(res.payment);
document.getElementById('financedAmt').textContent = formatCurrency(res.financed);
document.getElementById('totalInterest').textContent = formatCurrency(res.interest);
document.getElementById('totalPayments').textContent = formatCurrency(res.total);
}
// Initialize estimator
updateEstimator();
// --- FAQ Accordion ---
faqItems.forEach(item => {
const question = item.querySelector('.faq-question');
const answer = item.querySelector('.faq-answer');
const answerInner = item.querySelector('.faq-answer-inner');
question.addEventListener('click', () => {
const isOpen = item.classList.toggle('open');
question.setAttribute('aria-expanded', isOpen);
answer.setAttribute('aria-hidden', !isOpen);
if (isOpen) {
answer.style.maxHeight = answerInner.scrollHeight + 'px';
} else {
answer.style.maxHeight = '0px';
}
});
});
// --- Intersection Observer for Scroll Animations ---
const observerOptions = {
root: null,
rootMargin: '0px',
threshold: 0.1
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
observer.unobserve(entry.target);
}
});
}, observerOptions);
document.querySelectorAll('.fade-up').forEach(el => {
observer.observe(el);
});
// --- Smooth Scroll Polyfill for older browsers (optional but good) ---
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
const targetId = this.getAttribute('href');
if (targetId === '#') return;
const targetEl = document.querySelector(targetId);
if (targetEl) {
e.preventDefault();
const headerOffset = header.offsetHeight;
const elementPosition = targetEl.getBoundingClientRect().top;
const offsetPosition = elementPosition + window.pageYOffset - headerOffset;
window.scrollTo({
top: offsetPosition,
behavior: 'smooth'
});
}
});
});
</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:26.933Z",
"url": "https://benchmark.aimac.invalid/5d199a2f49d4a86166fffeb2e2fbeccd726c0256a415d88a6f81109d20a9d1f6.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "summary-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure summary elements have discernible text",
"help": "Summary elements must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
"nodes": []
},
{
"id": "svg-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
"help": "<svg> elements with an img role must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "td-headers-attr",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
"help": "Table cells that use the headers attribute must only refer to cells in the same table",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
"nodes": []
},
{
"id": "th-has-data-cells",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
"help": "Table headers in a data table must refer to data cells",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
"nodes": []
},
{
"id": "valid-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2aa",
"wcag312",
"TTv5",
"TT11.b",
"EN-301-549",
"EN-9.3.1.2",
"ACT"
],
"description": "Ensure lang attributes have valid values",
"help": "lang attribute must have a valid value",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
"nodes": []
},
{
"id": "video-caption",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag122",
"section508",
"section508.22.a",
"TTv5",
"TT17.a",
"EN-301-549",
"EN-9.1.2.2"
],
"description": "Ensure <video> elements have captions",
"help": "<video> elements must have captions",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
"nodes": []
},
{
"id": "no-autoplay-audio",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag142",
"TTv5",
"TT2.a",
"EN-301-549",
"EN-9.1.4.2",
"ACT"
],
"description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
"help": "<video> or <audio> elements must not play automatically",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
"nodes": []
}
],
"passes": [
{
"id": "aria-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-allowed-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attributes are used correctly for the defined role"
}
],
"none": [
{
"id": "aria-unsupported-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute is supported"
}
],
"impact": null,
"html": "<a href=\"#\" class=\"logo\" aria-label=\"Apex Auto Journal Home\">",
"target": [
"a[aria-label=\"Apex Auto Journal Home\"]"
]
}
]
},
{
"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=\"#\" class=\"logo\" aria-label=\"Apex Auto Journal Home\">",
"target": [
"a[aria-label=\"Apex Auto Journal Home\"]"
]
}
]
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "deprecatedrole",
"data": null,
"relatedNodes": [],
"impact": "minor",
"message": "ARIA role is not deprecated"
}
],
"impact": null,
"html": "<header class=\"site-header\" id=\"siteHeader\" role=\"banner\">",
"target": [
"#siteHeader"
]
}
]
},
{
"id": "aria-hidden-body",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"wcag412",
"EN-301-549",
"EN-9.1.3.1",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden=\"true\" is not present on the document body.",
"help": "aria-hidden=\"true\" must not be present on the document body",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-hidden-body",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "No aria-hidden attribute is present on document body"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<body>",
"target": [
"body"
]
}
]
},
{
"id": "aria-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "focusable-modal-open",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements while a modal is open"
},
{
"id": "focusable-disabled",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
},
{
"id": "focusable-not-tabbable",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
}
],
"none": [],
"impact": null,
"html": "<img src=\"https://placehold.co/40x40/1a3c5e/ffffff?text=AAJ&font=oswald\" alt=\"\" class=\"logo-img\" aria-hidden=\"true\">",
"target": [
"a[aria-label=\"Apex Auto Journal Home\"] > .logo-img[alt=\"\"][aria-hidden=\"true\"]"
]
}
]
},
{
"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=\"#\" class=\"logo\" aria-label=\"Apex Auto Journal Home\">",
"target": [
"a[aria-label=\"Apex Auto Journal Home\"]"
]
}
]
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-required-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "All required ARIA attributes are present"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<header class=\"site-header\" id=\"siteHeader\" role=\"banner\">",
"target": [
"#siteHeader"
]
}
]
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "invalidrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is valid"
},
{
"id": "abstractrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Abstract roles are not used"
},
{
"id": "unsupportedrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is supported"
}
],
"impact": null,
"html": "<header class=\"site-header\" id=\"siteHeader\" role=\"banner\">",
"target": [
"#siteHeader"
]
}
]
},
{
"id": "aria-valid-attr-value",
"impact": "critical",
"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=\"#\" class=\"logo\" aria-label=\"Apex Auto Journal Home\">",
"target": [
"a[aria-label=\"Apex Auto Journal Home\"]"
]
}
]
},
{
"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=\"#\" class=\"logo\" aria-label=\"Apex Auto Journal Home\">",
"target": [
"a[aria-label=\"Apex Auto Journal Home\"]"
]
}
]
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "important-letter-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-word-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-line-height",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "line-height in the style attribute is not set to !important, or meets the minimum"
}
],
"none": [],
"impact": null,
"html": "<section class=\"section\" style=\"background: var(--color-surface);\" id=\"reviews\">",
"target": [
"#reviews"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button type=\"submit\" class=\"btn btn-primary\" style=\"width: 100%;\">Calculate Payment</button>",
"target": [
"button[type=\"submit\"]"
]
}
]
},
{
"id": "bypass",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag241",
"section508",
"section508.22.o",
"TTv5",
"TT9.a",
"EN-301-549",
"EN-9.2.4.1"
],
"description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
"help": "Page must have means to bypass repeated blocks",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "internal-link-present",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Valid skip link found"
},
{
"id": "header-present",
"data": null,
"relatedNodes": [
{
"html": "<h1 id=\"hero-title\" class=\"fade-up visible\">Drive Smarter. Buy Confidently. Maintain Expertly.</h1>",
"target": [
"#hero-title"
]
},
{
"html": "<h3 id=\"estimator-title\">Monthly Payment Estimator</h3>",
"target": [
"#estimator-title"
]
},
{
"html": "<h3>Estimated Monthly Payment</h3>",
"target": [
"#resultContainer > h3"
]
},
{
"html": "<h2 id=\"inventory-title\">Fresh Metal On The Lot</h2>",
"target": [
"#inventory-title"
]
},
{
"html": "<h3 class=\"vehicle-title\">2025 Apex GT Sedan Premium</h3>",
"target": [
".vehicle-card:nth-child(1) > .vehicle-body > .vehicle-title"
]
},
{
"html": "<h3 class=\"vehicle-title\">2024 Apex CX-9 Limited 4WD</h3>",
"target": [
".vehicle-card.delay-1 > .vehicle-body > .vehicle-title"
]
},
{
"html": "<h3 class=\"vehicle-title\">2025 Apex Ion EV Performance</h3>",
"target": [
".vehicle-card.delay-2 > .vehicle-body > .vehicle-title"
]
},
{
"html": "<h2>Latest Reviews & Road Tests</h2>",
"target": [
".main-column > .section-header > h2"
]
},
{
"html": "<h3 class=\"article-title\">2025 Apex GT vs. European Rivals: Can Value Beat Prestige?</h3>",
"target": [
".main-column > .article-card:nth-child(2) > .article-body > .article-title"
]
},
{
"html": "<h3 class=\"article-title\">Long-Term Ion EV Update: 15,000 Miles & Winter Range Reality</h3>",
"target": [
".main-column > .article-card.delay-1 > .article-body > .article-title"
]
},
{
"html": "<h3 class=\"article-title\">The 30k/60k/90k Service Interval Myth: What Your Manual Actually Says</h3>",
"target": [
"#service > .article-body > .article-title"
]
},
{
"html": "<h4 class=\"widget-title\">Verified Owner Reviews</h4>",
"target": [
".sidebar-widget.fade-up:nth-child(1) > .widget-title"
]
},
{
"html": "<h4 class=\"widget-title\">Dealer Awards & Certifications</h4>",
"target": [
".sidebar-widget.delay-1.fade-up > .widget-title"
]
},
{
"html": "<h4 class=\"widget-title\">Current Service Specials</h4>",
"target": [
".sidebar-widget.delay-2.fade-up > .widget-title"
]
},
{
"html": "<h2 id=\"news-title\">News, Trends & Buying Guides</h2>",
"target": [
"#news-title"
]
},
{
"html": "<h3 class=\"article-title\">June Incentive Forecast: High Inventory Trims to Watch</h3>",
"target": [
".article-card:nth-child(1) > .article-body > .article-title"
]
},
{
"html": "<h3 class=\"article-title\">New Tariff Structure Impact on European Import Pricing</h3>",
"target": [
".vehicle-grid > .article-card.delay-1 > .article-body > .article-title"
]
},
{
"html": "<h3 class=\"article-title\">First-Time Buyer Checklist: Credit, GAP, & Extended Warranties</h3>",
"target": [
".vehicle-grid > .article-card.delay-2 > .article-body > .article-title"
]
},
{
"html": "<h2 id=\"testimonials-title\">Trusted by Drivers Nationwide</h2>",
"target": [
"#testimonials-title"
]
},
{
"html": "<h4>David R.</h4>",
"target": [
"blockquote:nth-child(1) > .testimonial-author > .testimonial-info > h4"
]
},
{
"html": "<h4>Maria S.</h4>",
"target": [
"blockquote:nth-child(2) > .testimonial-author > .testimonial-info > h4"
]
},
{
"html": "<h4>James L.</h4>",
"target": [
"blockquote:nth-child(3) > .testimonial-author > .testimonial-info > h4"
]
},
{
"html": "<h2 id=\"faq-title\">Frequently Asked Questions</h2>",
"target": [
"#faq-title"
]
},
{
"html": "<h4>Shopping Tools</h4>",
"target": [
".footer-column:nth-child(2) > h4"
]
},
{
"html": "<h4>Ownership & Service</h4>",
"target": [
".footer-column:nth-child(3) > h4"
]
},
{
"html": "<h4>Company & Legal</h4>",
"target": [
".footer-column:nth-child(4) > h4"
]
}
],
"impact": "serious",
"message": "Page has a heading"
},
{
"id": "landmark",
"data": null,
"relatedNodes": [
{
"html": "<main id=\"mainContent\">",
"target": [
"#mainContent"
]
}
],
"impact": "serious",
"message": "Page has a landmark region"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#1a3c5e",
"contrastRatio": 11.33,
"fontSize": "10.2pt (13.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 11.33"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#contact\" class=\"nav-link nav-cta\">Get a Quote</a>",
"target": [
".nav-cta"
]
}
]
},
{
"id": "document-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"TTv5",
"TT12.a",
"EN-301-549",
"EN-9.2.4.2",
"ACT"
],
"description": "Ensure each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document has a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "duplicate-id-aria",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every id attribute value used in ARIA and in labels is unique",
"help": "IDs used in ARIA and labels must be unique",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "duplicate-id-aria",
"data": "mainNav",
"relatedNodes": [],
"impact": "critical",
"message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<nav class=\"main-nav\" id=\"mainNav\" role=\"navigation\" aria-label=\"Main Navigation\">",
"target": [
"#mainNav"
]
}
]
},
{
"id": "form-field-multiple-labels",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag332",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.3.3.2"
],
"description": "Ensure form field does not have multiple label elements",
"help": "Form field must not have multiple label elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "multiple-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"vehiclePrice\">Vehicle Price (MSRP)</label>",
"target": [
"label[for=\"vehiclePrice\"]"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<input type=\"number\" id=\"vehiclePrice\" name=\"vehiclePrice\" min=\"10000\" max=\"200000\" step=\"1000\" value=\"42000\" placeholder=\"$42,000\" required=\"\" aria-describedby=\"priceHelp\">",
"target": [
"#vehiclePrice"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://picsum.photos/seed/apex-sedan-2025/600/375.jpg\" alt=\"2025 Apex GT Sedan in Magnetic Grey\" loading=\"lazy\">",
"target": [
".vehicle-card:nth-child(1) > .vehicle-media > img[loading=\"lazy\"]"
]
}
]
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"vehiclePrice\">Vehicle Price (MSRP)</label>",
"target": [
"label[for=\"vehiclePrice\"]"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
},
{
"id": "non-empty-placeholder",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a placeholder attribute"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<input type=\"number\" id=\"vehiclePrice\" name=\"vehiclePrice\" min=\"10000\" max=\"200000\" step=\"1000\" value=\"42000\" placeholder=\"$42,000\" required=\"\" aria-describedby=\"priceHelp\">",
"target": [
"#vehiclePrice"
]
}
]
},
{
"id": "link-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute exists and is not empty"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a href=\"#\" class=\"logo\" aria-label=\"Apex Auto Journal Home\">",
"target": [
"a[aria-label=\"Apex Auto Journal Home\"]"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul class=\"award-list\">",
"target": [
".sidebar-widget.delay-1.fade-up > .award-list"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li><span class=\"award-icon\">\ud83c\udfc6</span><div><strong>J.D. Power Dealer of Excellence</strong><br><small style=\"color:var(--color-text-muted)\">2021, 2022, 2023, 2024</small></div></li>",
"target": [
".sidebar-widget.delay-1.fade-up > .award-list > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<option value=\"36\">36 Months</option>",
"target": [
"option[value=\"36\"]"
]
}
]
},
{
"id": "select-name",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"term\">Loan Term (Months)</label>",
"target": [
"label[for=\"term\"]"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<select id=\"term\" name=\"term\" required=\"\">",
"target": [
"#term"
]
}
]
},
{
"id": "target-size",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag22aa",
"wcag258"
],
"description": "Ensure touch targets have sufficient size and space",
"help": "All touch targets must be 24px large, or leave sufficient space",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "target-size",
"data": {
"minSize": 24,
"width": 305.4,
"height": 40
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (305.4px by 40px, should be at least 24px by 24px)"
},
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" class=\"logo\" aria-label=\"Apex Auto Journal Home\">",
"target": [
"a[aria-label=\"Apex Auto Journal Home\"]"
]
}
]
}
],
"incomplete": [
{
"id": "aria-valid-attr-value",
"impact": "critical",
"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": {
"messageKey": "noId",
"needsReview": "aria-describedby=\"priceHelp\""
},
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute element ID does not exist on the page: aria-describedby=\"priceHelp\""
}
],
"none": [],
"impact": "critical",
"html": "<input type=\"number\" id=\"vehiclePrice\" name=\"vehiclePrice\" min=\"10000\" max=\"200000\" step=\"1000\" value=\"42000\" placeholder=\"$42,000\" required=\"\" aria-describedby=\"priceHelp\">",
"target": [
"#vehiclePrice"
],
"failureSummary": "Fix all of the following:\n ARIA attribute element ID does not exist on the page: aria-describedby=\"priceHelp\""
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": null,
"bgColor": null,
"contrastRatio": 0,
"fontSize": "16.2pt (21.6px)",
"fontWeight": "bold",
"messageKey": "bgGradient",
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<header class=\"site-header\" id=\"siteHeader\" role=\"banner\">",
"target": [
"#siteHeader"
]
},
{
"html": "<section class=\"hero\" aria-labelledby=\"hero-title\">",
"target": [
".hero"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a background gradient"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"logo-name\">Apex Auto Journal</span>",
"target": [
"a[aria-label=\"Apex Auto Journal Home\"] > .logo-text > .logo-name"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background gradient"
}
]
}
],
"violations": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c0392b",
"bgColor": "#0d253b",
"contrastRatio": 2.87,
"fontSize": "7.8pt (10.4px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site-footer\" id=\"contact\" role=\"contentinfo\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.87 (foreground color: #c0392b, background color: #0d253b, font size: 7.8pt (10.4px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"logo-tagline\">Where Precision Meets Pavement</span>",
"target": [
".footer-brand > .logo[href=\"#\"] > .logo-text > .logo-tagline"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.87 (foreground color: #c0392b, background color: #0d253b, font size: 7.8pt (10.4px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6e7c89",
"bgColor": "#0d253b",
"contrastRatio": 3.64,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer class=\"site-footer\" id=\"contact\" role=\"contentinfo\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.64 (foreground color: #6e7c89, background color: #0d253b, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p style=\"font-size: 0.8rem; color: rgba(255,255,255,0.4);\">\u00a9 2024 Apex Auto Journal, LLC. All Rights Reserved. Licensed Dealer #DL-192834.</p>",
"target": [
".footer-bottom > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.64 (foreground color: #6e7c89, background color: #0d253b, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c0392b",
"bgColor": "#1a3c5e",
"contrastRatio": 2.08,
"fontSize": "42.0pt (56px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"estimator-result fade-up delay-1 visible\" aria-live=\"polite\" id=\"resultContainer\">",
"target": [
"#resultContainer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.08 (foreground color: #c0392b, background color: #1a3c5e, font size: 42.0pt (56px), font weight: bold). Expected contrast ratio of 3:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"result-value\" id=\"monthlyPayment\">$731</div>",
"target": [
"#monthlyPayment"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.08 (foreground color: #c0392b, background color: #1a3c5e, font size: 42.0pt (56px), font weight: bold). Expected contrast ratio of 3:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c0392b",
"bgColor": "#254666",
"contrastRatio": 1.79,
"fontSize": "13.2pt (17.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"result-breakdown\" id=\"breakdown\">",
"target": [
"#breakdown"
]
},
{
"html": "<div class=\"estimator-result fade-up delay-1 visible\" aria-live=\"polite\" id=\"resultContainer\">",
"target": [
"#resultContainer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.79 (foreground color: #c0392b, background color: #254666, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Total of Payments</span>",
"target": [
"#breakdown > div:nth-child(3) > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.79 (foreground color: #c0392b, background color: #254666, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c0392b",
"bgColor": "#254666",
"contrastRatio": 1.79,
"fontSize": "13.2pt (17.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"result-breakdown\" id=\"breakdown\">",
"target": [
"#breakdown"
]
},
{
"html": "<div class=\"estimator-result fade-up delay-1 visible\" aria-live=\"polite\" id=\"resultContainer\">",
"target": [
"#resultContainer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.79 (foreground color: #c0392b, background color: #254666, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span id=\"totalPayments\">$43,854</span>",
"target": [
"#totalPayments"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.79 (foreground color: #c0392b, background color: #254666, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8d9eaf",
"bgColor": "#1a3c5e",
"contrastRatio": 4.12,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"estimator-result fade-up delay-1 visible\" aria-live=\"polite\" id=\"resultContainer\">",
"target": [
"#resultContainer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.12 (foreground color: #8d9eaf, background color: #1a3c5e, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"disclaimer\">*Estimate only. Actual payments vary based on creditworthiness, lender programs, and local taxes. Contact our <a href=\"#financing\" style=\"color: var(--color-accent); text-decoration: underline;\">Financing Department</a> for a personalized quote.</p>",
"target": [
".disclaimer"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.12 (foreground color: #8d9eaf, background color: #1a3c5e, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#c0392b",
"bgColor": "#1a3c5e",
"contrastRatio": 2.08,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"estimator-result fade-up delay-1 visible\" aria-live=\"polite\" id=\"resultContainer\">",
"target": [
"#resultContainer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.08 (foreground color: #c0392b, background color: #1a3c5e, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#financing\" style=\"color: var(--color-accent); text-decoration: underline;\">Financing Department</a>",
"target": [
".disclaimer > a[href$=\"#financing\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.08 (foreground color: #c0392b, background color: #1a3c5e, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#2c3e50",
"bgColor": "#c0392b",
"contrastRatio": 2.01,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<span class=\"vehicle-badge badge-new\">New</span>",
"target": [
".vehicle-card:nth-child(1) > .vehicle-media > .badge-new.vehicle-badge"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.01 (foreground color: #2c3e50, background color: #c0392b, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"vehicle-badge badge-new\">New</span>",
"target": [
".vehicle-card:nth-child(1) > .vehicle-media > .badge-new.vehicle-badge"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.01 (foreground color: #2c3e50, background color: #c0392b, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#2c3e50",
"bgColor": "#27ae60",
"contrastRatio": 3.82,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<span class=\"vehicle-badge badge-cpo\">Certified</span>",
"target": [
".badge-cpo"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.82 (foreground color: #2c3e50, background color: #27ae60, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"vehicle-badge badge-cpo\">Certified</span>",
"target": [
".badge-cpo"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.82 (foreground color: #2c3e50, background color: #27ae60, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#2c3e50",
"bgColor": "#c0392b",
"contrastRatio": 2.01,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<span class=\"vehicle-badge badge-new\">New</span>",
"target": [
".vehicle-card.delay-2 > .vehicle-media > .badge-new.vehicle-badge"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.01 (foreground color: #2c3e50, background color: #c0392b, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"vehicle-badge badge-new\">New</span>",
"target": [
".vehicle-card.delay-2 > .vehicle-media > .badge-new.vehicle-badge"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.01 (foreground color: #2c3e50, background color: #c0392b, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#27ae60",
"contrastRatio": 2.87,
"fontSize": "7.8pt (10.4px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<span class=\"tag\" style=\"background: #27ae60; font-size: 0.65rem; padding: 0.15rem 0.5rem;\">EV Focus</span>",
"target": [
".article-card.delay-1 > .article-body > .article-meta > .tag"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.87 (foreground color: #ffffff, background color: #27ae60, font size: 7.8pt (10.4px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"tag\" style=\"background: #27ae60; font-size: 0.65rem; padding: 0.15rem 0.5rem;\">EV Focus</span>",
"target": [
".article-card.delay-1 > .article-body > .article-meta > .tag"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.87 (foreground color: #ffffff, background color: #27ae60, font size: 7.8pt (10.4px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#f39c12",
"contrastRatio": 2.19,
"fontSize": "7.8pt (10.4px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<span class=\"tag\" style=\"background: #f39c12; font-size: 0.65rem; padding: 0.15rem 0.5rem;\">Service Tips</span>",
"target": [
"#service > .article-body > .article-meta > .tag"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.19 (foreground color: #ffffff, background color: #f39c12, font size: 7.8pt (10.4px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"tag\" style=\"background: #f39c12; font-size: 0.65rem; padding: 0.15rem 0.5rem;\">Service Tips</span>",
"target": [
"#service > .article-body > .article-meta > .tag"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.19 (foreground color: #ffffff, background color: #f39c12, font size: 7.8pt (10.4px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 8145
},
{
"y": 576,
"height": 8145
},
{
"y": 1152,
"height": 8145
},
{
"y": 1728,
"height": 8145
},
{
"y": 2304,
"height": 8145
},
{
"y": 2880,
"height": 8145
},
{
"y": 3456,
"height": 8145
},
{
"y": 4032,
"height": 8145
},
{
"y": 4608,
"height": 8145
},
{
"y": 5184,
"height": 8145
},
{
"y": 5760,
"height": 8145
},
{
"y": 6336,
"height": 8145
},
{
"y": 6912,
"height": 8145
},
{
"y": 7425,
"height": 8145
}
],
"scans": 15,
"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 "Automotive" 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: "Automotive"
- Description: Automotive news, car reviews, repair tips, and dealership resources.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Automotive" 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: "Inventory", "Financing", "About".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Automotive" category. Consider themes similar to: "New Arrivals", "Certified Pre-Owned", "Service Specials".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "service interval", "MSRP", "warranty coverage".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Compare Models", "View Inventory", "Request Financing".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Automotive" sector. Ideas similar but not limited to: "payment estimator".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "certified selection", "dealer awards", "customer reviews".
- **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
- **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.