StepFun Step 3.7 Flash – Pets
via Novita · Generated
- AIMAC Debt 4.37
- Cost $0.013
- Total Violations 12
- HTML Size 38 KB
- Em Dashes 0
Screenshot
View Live Page
Accessibility Issues Found
12 Serious
-
color-contrast serious 12 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<a href="#" class="active">Home</a>
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PawHaven | Your Complete Partner in Pet Wellness, Adoption & Care</title>
<style>
:root {
--primary: #2A9D8F;
--secondary: #E9C46A;
--accent: #F4A261;
--dark: #264653;
--light: #F8F9FA;
--white: #FFFFFF;
--gray: #6C757D;
--light-gray: #E9ECEF;
--shadow: 0 4px 12px rgba(0,0,0,0.08);
--radius: 12px;
--transition: all 0.3s ease;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Open Sans', sans-serif;
}
body {
color: var(--dark);
line-height: 1.6;
background-color: var(--light);
}
a {
text-decoration: none;
color: inherit;
}
ul {
list-style: none;
}
img {
max-width: 100%;
height: auto;
border-radius: var(--radius);
}
.container {
max-width: 1280px;
margin: 0 auto;
padding: 0 20px;
}
/* Header */
header {
background-color: var(--white);
box-shadow: var(--shadow);
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 1000;
}
.header-content {
display: flex;
flex-direction: column;
gap: 1rem;
}
.logo-area {
display: flex;
align-items: center;
gap: 1rem;
}
.logo {
width: 150px;
height: 50px;
object-fit: contain;
}
.site-info h1 {
font-size: 1.8rem;
color: var(--primary);
margin-bottom: 0.2rem;
}
.tagline {
color: var(--gray);
font-size: 0.9rem;
}
nav ul {
display: flex;
flex-wrap: wrap;
gap: 1.5rem;
justify-content: center;
}
nav a {
font-weight: 600;
color: var(--dark);
transition: var(--transition);
padding: 0.5rem 0;
position: relative;
}
nav a:hover, nav a.active {
color: var(--primary);
}
nav a::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 2px;
background-color: var(--primary);
transition: var(--transition);
}
nav a:hover::after, nav a.active::after {
width: 100%;
}
.mobile-menu-btn {
display: none;
background: none;
border: none;
font-size: 1.5rem;
cursor: pointer;
color: var(--dark);
}
/* Hero Section */
.hero {
background: linear-gradient(rgba(38, 70, 83, 0.7), rgba(38, 70, 83, 0.7)), url('https://picsum.photos/seed/pethero/1200/600') no-repeat center center/cover;
color: var(--white);
padding: 5rem 0;
text-align: center;
}
.hero h2 {
font-size: 3rem;
margin-bottom: 1rem;
}
.hero p {
font-size: 1.2rem;
max-width: 700px;
margin: 0 auto 2rem;
opacity: 0.9;
}
.btn {
display: inline-block;
padding: 0.8rem 2rem;
border-radius: 50px;
font-weight: 600;
transition: var(--transition);
cursor: pointer;
border: none;
}
.btn-primary {
background-color: var(--accent);
color: var(--dark);
}
.btn-primary:hover {
background-color: #e76f51;
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(244, 162, 97, 0.4);
}
.btn-secondary {
background-color: var(--primary);
color: var(--white);
margin-left: 1rem;
}
.btn-secondary:hover {
background-color: #21867a;
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(42, 157, 143, 0.4);
}
/* Main Content Layout */
.main-content {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 2rem;
padding: 4rem 0;
}
/* Section Styles */
.section {
background-color: var(--white);
border-radius: var(--radius);
padding: 2rem;
margin-bottom: 2rem;
box-shadow: var(--shadow);
}
.section h3 {
font-size: 1.8rem;
color: var(--primary);
margin-bottom: 1.5rem;
padding-bottom: 0.5rem;
border-bottom: 2px solid var(--light-gray);
}
.section p {
margin-bottom: 1rem;
color: var(--gray);
}
/* Adoption Section */
.adoption-filter {
display: flex;
flex-wrap: wrap;
gap: 1rem;
margin-bottom: 2rem;
padding: 1.5rem;
background-color: var(--light);
border-radius: var(--radius);
}
.filter-group {
display: flex;
flex-direction: column;
gap: 0.5rem;
flex: 1;
min-width: 150px;
}
.filter-group label {
font-weight: 600;
font-size: 0.9rem;
}
.filter-group select, .filter-group input {
padding: 0.6rem;
border: 1px solid var(--light-gray);
border-radius: 6px;
font-size: 1rem;
}
.adoption-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 1.5rem;
}
.adoption-card {
border: 1px solid var(--light-gray);
border-radius: var(--radius);
overflow: hidden;
transition: var(--transition);
}
.adoption-card:hover {
transform: translateY(-4px);
box-shadow: var(--shadow);
}
.adoption-card img {
width: 100%;
height: 200px;
object-fit: cover;
border-radius: 0;
}
.adoption-card-content {
padding: 1.5rem;
}
.adoption-card h4 {
font-size: 1.2rem;
margin-bottom: 0.5rem;
}
.adoption-card .pet-details {
color: var(--gray);
font-size: 0.9rem;
margin-bottom: 1rem;
}
/* Feature Grid for Care Resources */
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
}
.feature-card {
text-align: center;
padding: 2rem;
border: 1px solid var(--light-gray);
border-radius: var(--radius);
transition: var(--transition);
}
.feature-card:hover {
background-color: var(--light);
transform: translateY(-4px);
}
.feature-icon {
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--primary);
}
.feature-card h4 {
font-size: 1.2rem;
margin-bottom: 1rem;
}
/* Testimonials */
.testimonial-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}
.testimonial-card {
background-color: var(--light);
padding: 2rem;
border-radius: var(--radius);
text-align: center;
}
.testimonial-card img {
width: 80px;
height: 80px;
border-radius: 50%;
object-fit: cover;
margin-bottom: 1rem;
}
.testimonial-card p {
font-style: italic;
margin-bottom: 1rem;
}
.testimonial-card .author {
font-weight: 600;
color: var(--primary);
}
/* FAQ Accordion */
.accordion-item {
border-bottom: 1px solid var(--light-gray);
}
.accordion-header {
width: 100%;
padding: 1rem 0;
background: none;
border: none;
text-align: left;
font-size: 1.1rem;
font-weight: 600;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
color: var(--dark);
}
.accordion-header::after {
content: '+';
font-size: 1.5rem;
color: var(--primary);
}
.accordion-header.active::after {
content: '-';
}
.accordion-content {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
padding-right: 1rem;
}
.accordion-content p {
padding-bottom: 1rem;
color: var(--gray);
}
/* Sidebar */
.sidebar-section {
background-color: var(--white);
border-radius: var(--radius);
padding: 1.5rem;
margin-bottom: 2rem;
box-shadow: var(--shadow);
}
.sidebar-section h4 {
font-size: 1.2rem;
color: var(--primary);
margin-bottom: 1rem;
padding-bottom: 0.5rem;
border-bottom: 2px solid var(--light-gray);
}
.rescue-spotlight img {
width: 100%;
height: 180px;
object-fit: cover;
margin-bottom: 1rem;
}
.community-gallery {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 0.5rem;
margin-bottom: 1rem;
}
.community-gallery img {
width: 100%;
height: 80px;
object-fit: cover;
border-radius: 6px;
transition: var(--transition);
}
.community-gallery img:hover {
transform: scale(1.05);
}
.emergency-list li {
padding: 0.5rem 0;
border-bottom: 1px solid var(--light-gray);
color: var(--gray);
font-size: 0.9rem;
}
.emergency-list li:last-child {
border-bottom: none;
}
.emergency-number {
font-weight: 700;
color: #e63946;
font-size: 1.1rem;
margin-top: 0.5rem;
display: block;
}
/* Footer */
footer {
background-color: var(--dark);
color: var(--white);
padding: 3rem 0 1.5rem;
}
.footer-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin-bottom: 2rem;
}
.footer-col h4 {
font-size: 1.2rem;
margin-bottom: 1rem;
color: var(--secondary);
}
.footer-col p, .footer-col a {
color: rgba(255,255,255,0.8);
margin-bottom: 0.5rem;
display: block;
transition: var(--transition);
}
.footer-col a:hover {
color: var(--secondary);
padding-left: 5px;
}
.social-links {
display: flex;
gap: 1rem;
margin-top: 1rem;
}
.social-links a {
width: 40px;
height: 40px;
background-color: rgba(255,255,255,0.1);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
transition: var(--transition);
}
.social-links a:hover {
background-color: var(--primary);
padding-left: 0;
}
.footer-bottom {
text-align: center;
padding-top: 1.5rem;
border-top: 1px solid rgba(255,255,255,0.1);
color: rgba(255,255,255,0.6);
font-size: 0.9rem;
}
.footer-bottom a {
color: rgba(255,255,255,0.8);
margin: 0 0.5rem;
}
.footer-bottom a:hover {
color: var(--secondary);
}
/* Responsive */
@media (max-width: 992px) {
.main-content {
grid-template-columns: 1fr;
}
.hero h2 {
font-size: 2.2rem;
}
}
@media (max-width: 768px) {
.header-content {
align-items: center;
}
.logo-area {
flex-direction: column;
text-align: center;
}
nav ul {
display: none;
flex-direction: column;
gap: 0.5rem;
width: 100%;
text-align: center;
}
nav ul.active {
display: flex;
}
.mobile-menu-btn {
display: block;
}
.btn-secondary {
margin-left: 0;
margin-top: 1rem;
}
.hero {
padding: 3rem 0;
}
.hero h2 {
font-size: 1.8rem;
}
.hero p {
font-size: 1rem;
}
}
</style>
</head>
<body>
<!-- Header -->
<header>
<div class="container">
<div class="header-content">
<div class="logo-area">
<img src="https://placehold.co/150x50/2A9D8F/FFFFFF?text=PawHaven&font=poppins" alt="PawHaven Logo" class="logo">
<div class="site-info">
<h1>PawHaven</h1>
<p class="tagline">Your Complete Partner in Pet Wellness, Adoption & Care</p>
</div>
</div>
<button class="mobile-menu-btn" aria-label="Toggle menu">☰</button>
<nav>
<ul>
<li><a href="#" class="active">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#adoption">Adoption</a></li>
<li><a href="#training">Training</a></li>
<li><a href="#nutrition">Nutrition</a></li>
<li><a href="#help">Find Help</a></li>
<li><a href="#emergency">Emergency</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</div>
</div>
</header>
<!-- Hero Section -->
<section class="hero">
<div class="container">
<h2>Find Your New Best Friend</h2>
<p>Connect with adoptable pets, access expert veterinary guidance, and build a lifelong bond with your companion through our comprehensive pet care resources.</p>
<a href="#adoption" class="btn btn-primary">Browse Adoptable Pets</a>
<a href="#about" class="btn btn-secondary">Learn About Our Mission</a>
</div>
</section>
<!-- Main Content -->
<div class="container">
<div class="main-content">
<!-- Main Column -->
<div class="main-column">
<!-- Adoption Section -->
<section class="section" id="adoption">
<h3>Adoption Center</h3>
<p>Our adoption program partners with over 30 local shelters and rescue groups across Central Texas to connect loving families with pets in need of a forever home. Every animal in our care receives a full veterinary screening, age-appropriate vaccinations, spay/neuter surgery, and a behavioral assessment to ensure they are healthy and ready for their new family. The adoption process typically takes 3-7 days, including a meet-and-greet, application review, and home check for certain animals to ensure the best match for both pets and people.</p>
<p>We believe every pet deserves a loving home, which is why we offer waived adoption fees for senior pets, pets with special needs, and animals that have been in our care for over 3 months. All adopters also receive a free initial veterinary consultation, 30 days of pet insurance, and a gift basket with food, toys, and care supplies to help your new companion settle in.</p>
<!-- Interactive Adoption Filter -->
<div class="adoption-filter">
<div class="filter-group">
<label for="pet-type">Pet Type</label>
<select id="pet-type">
<option value="all">All Pets</option>
<option value="dog">Dogs</option>
<option value="cat">Cats</option>
<option value="other">Small Animals & Exotics</option>
</select>
</div>
<div class="filter-group">
<label for="pet-age">Age Range</label>
<select id="pet-age">
<option value="all">All Ages</option>
<option value="young">Puppy/Kitten (Under 1 year)</option>
<option value="adult">Adult (1-7 years)</option>
<option value="senior">Senior (8+ years)</option>
</select>
</div>
<div class="filter-group">
<label for="pet-location">Location</label>
<select id="pet-location">
<option value="all">All Locations</option>
<option value="austin">Austin</option>
<option value="round-rock">Round Rock</option>
<option value="cedar-park">Cedar Park</option>
</select>
</div>
</div>
<!-- Adoption Listings -->
<div class="adoption-grid" id="adoption-listings">
<div class="adoption-card" data-type="dog" data-age="young" data-location="austin">
<img src="https://picsum.photos/seed/goldenpuppy/400/300" alt="Golden Retriever puppy">
<div class="adoption-card-content">
<h4>Buddy</h4>
<p class="pet-details">4 month old Male Golden Retriever | Austin, TX</p>
<p>Friendly, playful, and already knows basic sit and stay commands. Great with kids and other pets.</p>
<a href="#" class="btn btn-primary" style="padding: 0.5rem 1.5rem; font-size: 0.9rem;">Learn More</a>
</div>
</div>
<div class="adoption-card" data-type="cat" data-age="adult" data-location="round-rock">
<img src="https://picsum.photos/seed/tabbycat/400/300" alt="Tabby cat">
<div class="adoption-card-content">
<h4>Luna</h4>
<p class="pet-details">3 year old Female Domestic Shorthair | Round Rock, TX</p>
<p>Calm, affectionate lap cat who loves to sunbathe. Perfect for quiet homes and first-time cat owners.</p>
<a href="#" class="btn btn-primary" style="padding: 0.5rem 1.5rem; font-size: 0.9rem;">Learn More</a>
</div>
</div>
<div class="adoption-card" data-type="dog" data-age="senior" data-location="austin">
<img src="https://picsum.photos/seed/seniordog/400/300" alt="Senior Labrador">
<div class="adoption-card-content">
<h4>Max</h4>
<p class="pet-details">9 year old Male Labrador Retriever | Austin, TX</p>
<p>Gentle, low-energy companion who loves short walks and cozy naps. Adoption fee waived for senior pet.</p>
<a href="#" class="btn btn-primary" style="padding: 0.5rem 1.5rem; font-size: 0.9rem;">Learn More</a>
</div>
</div>
<div class="adoption-card" data-type="other" data-age="young" data-location="cedar-park">
<img src="https://picsum.photos/seed/rabbit/400/300" alt="Domestic rabbit">
<div class="adoption-card-content">
<h4>Thumper</h4>
<p class="pet-details">6 month old Male Holland Lop Rabbit | Cedar Park, TX</p>
<p>Curious, litter-trained rabbit who loves fresh veggies and gentle pets. Great for apartment living.</p>
<a href="#" class="btn btn-primary" style="padding: 0.5rem 1.5rem; font-size: 0.9rem;">Learn More</a>
</div>
</div>
</div>
<div style="text-align: center; margin-top: 2rem;">
<a href="#" class="btn btn-secondary">View All Adoptable Pets</a>
</div>
</section>
<!-- Pet Care Resources Section -->
<section class="section" id="resources">
<h3>Pet Care Resources</h3>
<p>We know that caring for a pet is a lifelong journey filled with questions, challenges, and joyful moments. Our team of licensed veterinarians, certified trainers, and animal behaviorists has compiled expert-backed resources to help you provide the best possible care for your companion at every stage of life. From nutrition guidance to emergency preparedness, we're here to support you every step of the way.</p>
<div class="feature-grid">
<div class="feature-card" id="nutrition">
<div class="feature-icon">🥗</div>
<h4>Nutrition Guidance</h4>
<p>Proper nutrition is the foundation of your pet's long-term health. All our recommendations meet AAFCO standards, and we provide species-specific guidance for life stage diets, pets with chronic conditions, and safe homemade food options.</p>
<a href="#" class="btn btn-primary" style="padding: 0.5rem 1.5rem; font-size: 0.9rem; margin-top: 1rem;">Get Nutrition Guidance</a>
</div>
<div class="feature-card" id="training">
<div class="feature-icon">🎓</div>
<h4>Training & Behavior</h4>
<p>Our positive reinforcement training programs use evidence-based, force-free methods to build trust and strengthen your bond with your pet. We offer group classes for puppies and adult dogs, plus private sessions for behavior issues like separation anxiety and leash reactivity.</p>
<a href="#" class="btn btn-primary" style="padding: 0.5rem 1.5rem; font-size: 0.9rem; margin-top: 1rem;">Book Training</a>
</div>
<div class="feature-card" id="preventive-care">
<div class="feature-icon">🩺</div>
<h4>Preventive Care</h4>
<p>Preventive care is the key to catching health issues early and extending your pet's lifespan. We provide guides on vaccination schedules, parasite prevention, dental care, and annual wellness exam checklists to keep your pet healthy year-round.</p>
<a href="#" class="btn btn-primary" style="padding: 0.5rem 1.5rem; font-size: 0.9rem; margin-top: 1rem;">Learn More</a>
</div>
</div>
</section>
<!-- Testimonials Section -->
<section class="section">
<h3>Success Stories</h3>
<p>Hear from members of our pet parent community about how PawHaven has helped them care for their companions and find their perfect furry family members.</p>
<div class="testimonial-grid">
<div class="testimonial-card">
<img src="https://i.pravatar.cc/80?u=sarah" alt="Sarah M.">
<p>"After struggling with our rescue dog's severe separation anxiety for months, the PawHaven training team gave us practical, compassionate tools that transformed his behavior in just 6 weeks. We can finally leave the house without coming home to destroyed furniture!"</p>
<p class="author">Sarah M. | Dog Parent</p>
</div>
<div class="testimonial-card">
<img src="https://i.pravatar.cc/80?u=mike" alt="Mike T.">
<p>"We adopted our cat Luna from PawHaven last year, and the adoption team made the entire process so easy. They matched us with the perfect cat for our quiet home, and Luna has brought so much joy to our family. The post-adoption support has been incredible too."</p>
<p class="author">Mike T. | Cat Parent</p>
</div>
<div class="testimonial-card">
<img src="https://i.pravatar.cc/80?u=emma" alt="Emma L.">
<p>"The nutrition guidance we received from PawHaven's vet team helped us manage our senior dog's kidney disease and extend his quality of life by almost 2 years. They never pushed expensive products, just gave us honest, evidence-based advice."</p>
<p class="author">Emma L. | Senior Dog Parent</p>
</div>
</div>
</section>
<!-- FAQ Section -->
<section class="section">
<h3>Frequently Asked Questions</h3>
<div class="accordion">
<div class="accordion-item">
<button class="accordion-header">How much does adoption cost?</button>
<div class="accordion-content">
<p>Adoption fees range from $75 to $250 depending on the animal's age, species, and veterinary needs. This fee covers spay/neuter surgery, age-appropriate vaccinations, microchip registration, and a basic veterinary exam. We regularly run adoption promotions and offer waived fees for senior pets, animals with special needs, and pets that have been in our care for over 3 months.</p>
</div>
</div>
<div class="accordion-item">
<button class="accordion-header">What should I do if my pet ingests something toxic?</button>
<div class="accordion-content">
<p>If you suspect your pet has ingested a toxic substance, call our 24/7 emergency vet line immediately at (512) 555-1234, or contact the ASPCA Animal Poison Control Center at (888) 426-4435. Do not induce vomiting unless instructed by a veterinary professional. Keep a list of toxic foods (chocolate, xylitol, grapes, onions, etc.) and household chemicals out of your pet's reach at all times.</p>
</div>
</div>
<div class="accordion-item">
<button class="accordion-header">Do you offer low-cost veterinary services?</button>
<div class="accordion-content">
<p>Yes! We partner with local veterinary clinics to offer discounted wellness exams, vaccination clinics, and spay/neuter services for low-income pet owners and rescue animals. We also offer payment plans for emergency veterinary care through our Pet Care Assistance Program. Contact our team to learn more about eligibility and available services.</p>
</div>
</div>
<div class="accordion-item">
<button class="accordion-header">How long does the training program take?</button>
<div class="accordion-content">
<p>Our basic obedience group classes run for 6 weeks, with 1-hour sessions once per week. Private training programs are tailored to your pet's specific needs and typically range from 4 to 12 weeks, depending on the behavior being addressed. All training uses positive reinforcement techniques, and we provide ongoing support and follow-up sessions after program completion.</p>
</div>
</div>
</div>
</section>
</div>
<!-- Sidebar -->
<aside class="sidebar">
<!-- Rescue Spotlight -->
<div class="sidebar-section">
<h4>Rescue Spotlight</h4>
<div class="rescue-spotlight">
<img src="https://picsum.photos/seed/rescue/400/200" alt="Austin Animal Rescue">
<h5>Austin Animal Rescue</h5>
<p style="font-size: 0.9rem; margin: 0.5rem 0;">A local no-kill shelter dedicated to rescuing abandoned and abused animals in Central Texas. They rely entirely on donations and volunteer support to care for over 200 animals at a time.</p>
<a href="#" class="btn btn-primary" style="padding: 0.5rem 1rem; font-size: 0.9rem; width: 100%; text-align: center;">Donate or Volunteer</a>
</div>
</div>
<!-- Community Paws -->
<div class="sidebar-section">
<h4>Community Paws</h4>
<div class="community-gallery">
<img src="https://picsum.photos/seed/community1/200/150" alt="Community pet photo">
<img src="https://picsum.photos/seed/community2/200/150" alt="Community pet photo">
<img src="https://picsum.photos/seed/community3/200/150" alt="Community pet photo">
<img src="https://picsum.photos/seed/community4/200/150" alt="Community pet photo">
<img src="https://picsum.photos/seed/community5/200/150" alt="Community pet photo">
<img src="https://picsum.photos/seed/community6/200/150" alt="Community pet photo">
</div>
<a href="#" class="btn btn-secondary" style="padding: 0.5rem 1rem; font-size: 0.9rem; width: 100%; text-align: center;">Submit Your Photo</a>
</div>
<!-- Emergency Reference -->
<div class="sidebar-section" id="emergency">
<h4>Quick Emergency Reference</h4>
<p style="font-size: 0.9rem; margin-bottom: 1rem;">If your pet is experiencing any of the following symptoms, seek veterinary care immediately:</p>
<ul class="emergency-list">
<li>Difficulty breathing or pale gums</li>
<li>Uncontrolled bleeding or seizures</li>
<li>Collapse or loss of consciousness</li>
<li>Ingestion of toxic substances</li>
<li>Prolonged vomiting or diarrhea</li>
<li>Signs of pain or trauma</li>
</ul>
<span class="emergency-number">24/7 Emergency Vet Line: (512) 555-1234</span>
</div>
<!-- Find Help CTA -->
<div class="sidebar-section" id="help">
<h4>Need Help Finding Resources?</h4>
<p style="font-size: 0.9rem; margin-bottom: 1rem;">Our team can connect you with low-cost vet services, pet food banks, temporary foster care, and behavior support in your area.</p>
<a href="#contact" class="btn btn-secondary" style="padding: 0.5rem 1rem; font-size: 0.9rem; width: 100%; text-align: center;">Contact Our Support Team</a>
</div>
</aside>
</div>
</div>
<!-- Footer -->
<footer id="contact">
<div class="container">
<div class="footer-grid">
<div class="footer-col">
<h4>PawHaven</h4>
<p>Your complete partner in pet wellness, adoption, and care. Serving Central Texas pet owners since 2018.</p>
<div class="social-links">
<a href="#" aria-label="Facebook">📘</a>
<a href="#" aria-label="Instagram">📸</a>
<a href="#" aria-label="TikTok">🎵</a>
<a href="#" aria-label="Twitter">🐦</a>
</div>
</div>
<div class="footer-col">
<h4>Contact Us</h4>
<p>📍 123 Pet Care Lane, Austin, TX 78701</p>
<p>📞 (512) 555-5678</p>
<p>✉️ hello@pawhaven.org</p>
<p>🕒 Mon-Fri: 8am-6pm, Sat: 9am-4pm, Sun: 10am-2pm</p>
</div>
<div class="footer-col">
<h4>Quick Links</h4>
<a href="#adoption">Adoption Program</a>
<a href="#training">Training Classes</a>
<a href="#nutrition">Nutrition Resources</a>
<a href="#emergency">Emergency Care</a>
<a href="#">Volunteer Opportunities</a>
<a href="#">Donate</a>
</div>
<div class="footer-col">
<h4>Legal</h4>
<a href="#">Privacy Policy</a>
<a href="#">Terms of Service</a>
<a href="#">Accessibility Statement</a>
<a href="#">Cookie Policy</a>
</div>
</div>
<div class="footer-bottom">
<p>© 2024 PawHaven. All rights reserved. Designed with ❤️ for pets and their people.</p>
</div>
</div>
</footer>
<script>
// Mobile menu toggle
const mobileMenuBtn = document.querySelector('.mobile-menu-btn');
const navUl = document.querySelector('nav ul');
mobileMenuBtn.addEventListener('click', () => {
navUl.classList.toggle('active');
});
// Adoption filter functionality
const petTypeFilter = document.getElementById('pet-type');
const petAgeFilter = document.getElementById('pet-age');
const petLocationFilter = document.getElementById('pet-location');
const adoptionCards = document.querySelectorAll('.adoption-card');
function filterAdoptions() {
const type = petTypeFilter.value;
const age = petAgeFilter.value;
const location = petLocationFilter.value;
adoptionCards.forEach(card => {
const cardType = card.getAttribute('data-type');
const cardAge = card.getAttribute('data-age');
const cardLocation = card.getAttribute('data-location');
const typeMatch = type === 'all' || cardType === type;
const ageMatch = age === 'all' || cardAge === age;
const locationMatch = location === 'all' || cardLocation === location;
if (typeMatch && ageMatch && locationMatch) {
card.style.display = 'block';
} else {
card.style.display = 'none';
}
});
}
petTypeFilter.addEventListener('change', filterAdoptions);
petAgeFilter.addEventListener('change', filterAdoptions);
petLocationFilter.addEventListener('change', filterAdoptions);
// FAQ accordion functionality
const accordionHeaders = document.querySelectorAll('.accordion-header');
accordionHeaders.forEach(header => {
header.addEventListener('click', () => {
header.classList.toggle('active');
const content = header.nextElementSibling;
if (content.style.maxHeight) {
content.style.maxHeight = null;
} else {
content.style.maxHeight = content.scrollHeight + 'px';
}
});
});
// Smooth scroll for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
window.scrollTo({
top: target.offsetTop - 80,
behavior: 'smooth'
});
// Close mobile menu if open
navUl.classList.remove('active');
}
});
});
</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:43:40.813Z",
"url": "https://benchmark.aimac.invalid/3d286f38c0fa7cfad3d28252436796a4486592af3a830bc42f085f8b63c1115e.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": []
},
{
"id": "aria-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": []
},
{
"id": "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=\"#\" aria-label=\"Facebook\">\ud83d\udcd8</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-conditional-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"none": [],
"impact": null,
"html": "<a href=\"#\" aria-label=\"Facebook\">\ud83d\udcd8</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"id": "aria-hidden-body",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"wcag412",
"EN-301-549",
"EN-9.1.3.1",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden=\"true\" is not present on the document body.",
"help": "aria-hidden=\"true\" must not be present on the document body",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-hidden-body",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "No aria-hidden attribute is present on document body"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<body>",
"target": [
"body"
]
}
]
},
{
"id": "aria-prohibited-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"impact": null,
"html": "<a href=\"#\" aria-label=\"Facebook\">\ud83d\udcd8</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-valid-attr-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute values are valid"
},
{
"id": "aria-errormessage",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
},
{
"id": "aria-level",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-level values are valid"
}
],
"none": [],
"impact": null,
"html": "<a href=\"#\" aria-label=\"Facebook\">\ud83d\udcd8</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-valid-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute name is valid"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" aria-label=\"Facebook\">\ud83d\udcd8</a>",
"target": [
"a[aria-label=\"Facebook\"]"
]
}
]
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "important-letter-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-word-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-line-height",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "line-height in the style attribute is not set to !important, or meets the minimum"
}
],
"none": [],
"impact": null,
"html": "<a href=\"#\" class=\"btn btn-primary\" style=\"padding: 0.5rem 1.5rem; font-size: 0.9rem;\">Learn More</a>",
"target": [
"div[data-type=\"dog\"][data-age=\"young\"][data-location=\"austin\"] > .adoption-card-content > .btn-primary.btn[href=\"#\"]"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button class=\"accordion-header\">How much does adoption cost?</button>",
"target": [
".accordion-item:nth-child(1) > .accordion-header"
]
}
]
},
{
"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>PawHaven</h1>",
"target": [
"h1"
]
},
{
"html": "<h2>Find Your New Best Friend</h2>",
"target": [
"h2"
]
},
{
"html": "<h3>Adoption Center</h3>",
"target": [
"#adoption > h3"
]
},
{
"html": "<h4>Buddy</h4>",
"target": [
"div[data-type=\"dog\"][data-age=\"young\"][data-location=\"austin\"] > .adoption-card-content > h4"
]
},
{
"html": "<h4>Luna</h4>",
"target": [
"div[data-type=\"cat\"] > .adoption-card-content > h4"
]
},
{
"html": "<h4>Max</h4>",
"target": [
"div[data-age=\"senior\"] > .adoption-card-content > h4"
]
},
{
"html": "<h4>Thumper</h4>",
"target": [
"div[data-type=\"other\"] > .adoption-card-content > h4"
]
},
{
"html": "<h3>Pet Care Resources</h3>",
"target": [
"#resources > h3"
]
},
{
"html": "<h4>Nutrition Guidance</h4>",
"target": [
"#nutrition > h4"
]
},
{
"html": "<h4>Training & Behavior</h4>",
"target": [
"#training > h4"
]
},
{
"html": "<h4>Preventive Care</h4>",
"target": [
"#preventive-care > h4"
]
},
{
"html": "<h3>Success Stories</h3>",
"target": [
".section:nth-child(3) > h3"
]
},
{
"html": "<h3>Frequently Asked Questions</h3>",
"target": [
".section:nth-child(4) > h3"
]
},
{
"html": "<h4>Rescue Spotlight</h4>",
"target": [
".sidebar-section:nth-child(1) > h4"
]
},
{
"html": "<h5>Austin Animal Rescue</h5>",
"target": [
"h5"
]
},
{
"html": "<h4>Community Paws</h4>",
"target": [
".sidebar-section:nth-child(2) > h4"
]
},
{
"html": "<h4>Quick Emergency Reference</h4>",
"target": [
"#emergency > h4"
]
},
{
"html": "<h4>Need Help Finding Resources?</h4>",
"target": [
"#help > h4"
]
},
{
"html": "<h4>PawHaven</h4>",
"target": [
".footer-col:nth-child(1) > h4"
]
},
{
"html": "<h4>Contact Us</h4>",
"target": [
".footer-col:nth-child(2) > h4"
]
},
{
"html": "<h4>Quick Links</h4>",
"target": [
".footer-col:nth-child(3) > h4"
]
},
{
"html": "<h4>Legal</h4>",
"target": [
".footer-col:nth-child(4) > h4"
]
}
],
"impact": "serious",
"message": "Page has a heading"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#2a9d8f",
"bgColor": "#ffffff",
"contrastRatio": 3.32,
"fontSize": "21.6pt (28.8px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 3.32"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<h1>PawHaven</h1>",
"target": [
"h1"
]
}
]
},
{
"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": "pet-type",
"relatedNodes": [],
"impact": "critical",
"message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<select id=\"pet-type\">",
"target": [
"#pet-type"
]
}
]
},
{
"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=\"pet-type\">Pet Type</label>",
"target": [
"label[for=\"pet-type\"]"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<select id=\"pet-type\">",
"target": [
"#pet-type"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://placehold.co/150x50/2A9D8F/FFFFFF?text=PawHaven&font=poppins\" alt=\"PawHaven Logo\" class=\"logo\">",
"target": [
".logo"
]
}
]
},
{
"id": "link-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a href=\"#\" class=\"active\">Home</a>",
"target": [
".active"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul>",
"target": [
"nav > ul"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li><a href=\"#\" class=\"active\">Home</a></li>",
"target": [
"nav > ul > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://placehold.co/150x50/2A9D8F/FFFFFF?text=PawHaven&font=poppins\" alt=\"PawHaven Logo\" class=\"logo\">",
"target": [
".logo"
]
}
]
},
{
"id": "select-name",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": {
"explicitLabel": "Pet Type"
},
"relatedNodes": [
{
"html": "<label for=\"pet-type\">Pet Type</label>",
"target": [
"label[for=\"pet-type\"]"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<select id=\"pet-type\">",
"target": [
"#pet-type"
]
}
]
},
{
"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": 44.5,
"height": 34
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (44.5px by 34px, 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=\"active\">Home</a>",
"target": [
".active"
]
}
]
}
],
"incomplete": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": null,
"bgColor": null,
"contrastRatio": 0,
"fontSize": "36.0pt (48px)",
"fontWeight": "bold",
"messageKey": "bgGradient",
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"hero\">",
"target": [
".hero"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a background gradient"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<h2>Find Your New Best Friend</h2>",
"target": [
"h2"
],
"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": "#2a9d8f",
"bgColor": "#ffffff",
"contrastRatio": 3.32,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<header>",
"target": [
"header"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.32 (foreground color: #2a9d8f, background color: #ffffff, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"active\">Home</a>",
"target": [
".active"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.32 (foreground color: #2a9d8f, background color: #ffffff, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#2a9d8f",
"contrastRatio": 3.32,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<a href=\"#about\" class=\"btn btn-secondary\">Learn About Our Mission</a>",
"target": [
".btn-secondary.btn[href$=\"#about\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.32 (foreground color: #ffffff, background color: #2a9d8f, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#about\" class=\"btn btn-secondary\">Learn About Our Mission</a>",
"target": [
".btn-secondary.btn[href$=\"#about\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.32 (foreground color: #ffffff, background color: #2a9d8f, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#2a9d8f",
"contrastRatio": 3.32,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<a href=\"#\" class=\"btn btn-secondary\">View All Adoptable Pets</a>",
"target": [
"div:nth-child(6) > .btn-secondary.btn[href=\"#\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.32 (foreground color: #ffffff, background color: #2a9d8f, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"btn btn-secondary\">View All Adoptable Pets</a>",
"target": [
"div:nth-child(6) > .btn-secondary.btn[href=\"#\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.32 (foreground color: #ffffff, background color: #2a9d8f, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6c757d",
"bgColor": "#f8f9fa",
"contrastRatio": 4.44,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"testimonial-card\">",
"target": [
".testimonial-card:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.44 (foreground color: #6c757d, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>\"After struggling with our rescue dog's severe separation anxiety for months, the PawHaven training team gave us practical, compassionate tools that transformed his behavior in just 6 weeks. We can finally leave the house without coming home to destroyed furniture!\"</p>",
"target": [
".testimonial-card:nth-child(1) > p:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.44 (foreground color: #6c757d, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#2a9d8f",
"bgColor": "#f8f9fa",
"contrastRatio": 3.15,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"testimonial-card\">",
"target": [
".testimonial-card:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.15 (foreground color: #2a9d8f, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"author\">Sarah M. | Dog Parent</p>",
"target": [
".testimonial-card:nth-child(1) > .author"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.15 (foreground color: #2a9d8f, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6c757d",
"bgColor": "#f8f9fa",
"contrastRatio": 4.44,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"testimonial-card\">",
"target": [
".testimonial-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.44 (foreground color: #6c757d, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>\"We adopted our cat Luna from PawHaven last year, and the adoption team made the entire process so easy. They matched us with the perfect cat for our quiet home, and Luna has brought so much joy to our family. The post-adoption support has been incredible too.\"</p>",
"target": [
".testimonial-card:nth-child(2) > p:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.44 (foreground color: #6c757d, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#2a9d8f",
"bgColor": "#f8f9fa",
"contrastRatio": 3.15,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"testimonial-card\">",
"target": [
".testimonial-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.15 (foreground color: #2a9d8f, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"author\">Mike T. | Cat Parent</p>",
"target": [
".testimonial-card:nth-child(2) > .author"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.15 (foreground color: #2a9d8f, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6c757d",
"bgColor": "#f8f9fa",
"contrastRatio": 4.44,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"testimonial-card\">",
"target": [
".testimonial-card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.44 (foreground color: #6c757d, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>\"The nutrition guidance we received from PawHaven's vet team helped us manage our senior dog's kidney disease and extend his quality of life by almost 2 years. They never pushed expensive products, just gave us honest, evidence-based advice.\"</p>",
"target": [
".testimonial-card:nth-child(3) > p:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.44 (foreground color: #6c757d, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#2a9d8f",
"bgColor": "#f8f9fa",
"contrastRatio": 3.15,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"testimonial-card\">",
"target": [
".testimonial-card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.15 (foreground color: #2a9d8f, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"author\">Emma L. | Senior Dog Parent</p>",
"target": [
".testimonial-card:nth-child(3) > .author"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.15 (foreground color: #2a9d8f, background color: #f8f9fa, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#2a9d8f",
"contrastRatio": 3.32,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<a href=\"#\" class=\"btn btn-secondary\" style=\"padding: 0.5rem 1rem; font-size: 0.9rem; width: 100%; text-align: center;\">Submit Your Photo</a>",
"target": [
".sidebar-section:nth-child(2) > .btn-secondary.btn[href=\"#\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.32 (foreground color: #ffffff, background color: #2a9d8f, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#\" class=\"btn btn-secondary\" style=\"padding: 0.5rem 1rem; font-size: 0.9rem; width: 100%; text-align: center;\">Submit Your Photo</a>",
"target": [
".sidebar-section:nth-child(2) > .btn-secondary.btn[href=\"#\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.32 (foreground color: #ffffff, background color: #2a9d8f, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e63946",
"bgColor": "#ffffff",
"contrastRatio": 4.16,
"fontSize": "13.2pt (17.6px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"sidebar-section\" id=\"emergency\">",
"target": [
"#emergency"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.16 (foreground color: #e63946, background color: #ffffff, font size: 13.2pt (17.6px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"emergency-number\">24/7 Emergency Vet Line: (512) 555-1234</span>",
"target": [
"span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.16 (foreground color: #e63946, background color: #ffffff, font size: 13.2pt (17.6px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#2a9d8f",
"contrastRatio": 3.32,
"fontSize": "10.8pt (14.4px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<a href=\"#contact\" class=\"btn btn-secondary\" style=\"padding: 0.5rem 1rem; font-size: 0.9rem; width: 100%; text-align: center;\">Contact Our Support Team</a>",
"target": [
".btn-secondary.btn[href$=\"#contact\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.32 (foreground color: #ffffff, background color: #2a9d8f, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#contact\" class=\"btn btn-secondary\" style=\"padding: 0.5rem 1rem; font-size: 0.9rem; width: 100%; text-align: center;\">Contact Our Support Team</a>",
"target": [
".btn-secondary.btn[href$=\"#contact\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.32 (foreground color: #ffffff, background color: #2a9d8f, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 5480
},
{
"y": 576,
"height": 5480
},
{
"y": 1152,
"height": 5480
},
{
"y": 1728,
"height": 5480
},
{
"y": 2304,
"height": 5480
},
{
"y": 2880,
"height": 5480
},
{
"y": 3456,
"height": 5480
},
{
"y": 4032,
"height": 5480
},
{
"y": 4608,
"height": 5480
},
{
"y": 4760,
"height": 5480
}
],
"scans": 11,
"max_states": 512,
"settle_ms": 5000,
"page_timeout_seconds": 150,
"layout_stability": "consecutive 100ms size samples within one CSS pixel",
"animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
"interactive_states": "not exercised",
"horizontal_scroll": "not exercised"
}
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Pets" 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: "Pets"
- Description: Pet care, adoption, veterinary resources, training, and animal rescue information.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Pets" 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: "About", "Training", "Find Help".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Pets" category. Consider themes similar to: "Nutrition Advice", "Emergency Info", "Adoption Stories".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "nutrition requirements", "preventive care", "positive reinforcement".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Contact Shelter", "Book Training", "Find Pet".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Pets" sector. Ideas similar but not limited to: "adoption search".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "community photos", "rescue spotlights", "adoption success stories".
- **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.