Z.ai GLM 4.7 Flash – Pets
via Cloudflare · Generated
- AIMAC Debt 7.12
- Cost $0.004
- Total Violations 8
- HTML Size 33 KB
- Em Dashes 0
Screenshot
View Live Page
Accessibility Issues Found
8 Serious
-
color-contrast serious 5 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<a href="#adoption" class="cta-button">Search Adoptables</a> -
link-name serious 3 instances
Links must have discernible text
Example HTML
<a href="#"><i class="fa-brands fa-facebook-f"></i></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>Paws & Pals Sanctuary & Wellness | Premium Pet Care</title>
<!-- Fonts -->
<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=Lora:ital,wght@0,400;0,600;1,400&family=Poppins:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<!-- Icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
:root {
--primary: #0F766E; /* Teal 700 */
--primary-dark: #115E59; /* Teal 800 */
--secondary: #F59E0B; /* Amber 500 */
--bg-light: #F3F4F6; /* Gray 100 */
--text-dark: #1F2937; /* Gray 800 */
--text-light: #6B7280; /* Gray 500 */
--white: #ffffff;
--max-width: 1200px;
--shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
--transition: all 0.3s ease;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Poppins', sans-serif;
color: var(--text-dark);
line-height: 1.6;
background-color: var(--bg-light);
}
h1, h2, h3, h4 {
font-family: 'Lora', serif;
color: var(--primary-dark);
margin-bottom: 1rem;
}
a {
text-decoration: none;
color: inherit;
}
ul {
list-style: none;
}
img {
max-width: 100%;
display: block;
object-fit: cover;
}
.container {
max-width: var(--max-width);
margin: 0 auto;
padding: 0 20px;
}
/* HEADER */
header {
background-color: var(--white);
box-shadow: var(--shadow);
position: sticky;
top: 0;
z-index: 1000;
}
.nav-container {
display: flex;
justify-content: space-between;
align-items: center;
height: 80px;
}
.logo {
display: flex;
align-items: center;
gap: 10px;
font-family: 'Poppins', sans-serif;
font-weight: 700;
font-size: 1.5rem;
color: var(--primary);
}
.logo i {
color: var(--secondary);
font-size: 1.8rem;
}
.nav-links {
display: flex;
gap: 30px;
}
.nav-links a {
font-weight: 500;
color: var(--text-dark);
transition: var(--transition);
position: relative;
}
.nav-links a:hover {
color: var(--primary);
}
.nav-links a::after {
content: '';
position: absolute;
width: 0;
height: 2px;
bottom: -5px;
left: 0;
background-color: var(--secondary);
transition: var(--transition);
}
.nav-links a:hover::after {
width: 100%;
}
.btn-header {
background-color: var(--primary);
color: var(--white) !important;
padding: 10px 20px;
border-radius: 50px;
transition: var(--transition);
}
.btn-header:hover {
background-color: var(--primary-dark);
transform: translateY(-2px);
box-shadow: var(--shadow);
}
.btn-header::after {
display: none;
}
/* HERO SECTION */
.hero {
background: linear-gradient(rgba(15, 118, 110, 0.8), rgba(17, 94, 89, 0.7)), url('https://picsum.photos/seed/dogsrunning/1920/800?grayscale');
background-size: cover;
background-position: center;
height: 600px;
display: flex;
align-items: center;
text-align: center;
color: var(--white);
}
.hero-content h1 {
color: var(--white);
font-size: 3.5rem;
margin-bottom: 20px;
line-height: 1.2;
}
.hero-content p {
font-size: 1.25rem;
margin-bottom: 30px;
max-width: 700px;
margin-left: auto;
margin-right: auto;
opacity: 0.9;
}
.cta-button {
display: inline-block;
background-color: var(--secondary);
color: var(--white);
padding: 15px 40px;
font-size: 1.1rem;
font-weight: 600;
border-radius: 5px;
transition: var(--transition);
border: 2px solid var(--secondary);
}
.cta-button:hover {
background-color: transparent;
border-color: var(--white);
}
/* LAYOUT GRID */
.page-layout {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 40px;
margin-top: 60px;
margin-bottom: 60px;
}
@media (max-width: 900px) {
.page-layout {
grid-template-columns: 1fr;
}
.nav-links {
display: none; /* Simplified for mobile demo */
}
.hero-content h1 {
font-size: 2.5rem;
}
}
/* MAIN CONTENT SECTIONS */
section {
margin-bottom: 60px;
background: var(--white);
padding: 40px;
border-radius: 10px;
box-shadow: var(--shadow);
}
.section-header {
text-align: center;
margin-bottom: 40px;
padding-bottom: 20px;
border-bottom: 2px solid var(--bg-light);
}
.section-header h2 {
font-size: 2rem;
}
.section-header p {
color: var(--text-light);
max-width: 600px;
margin: 0 auto;
}
/* SERVICES GRID */
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 30px;
}
.service-card {
text-align: center;
padding: 30px;
border: 1px solid var(--bg-light);
border-radius: 8px;
transition: var(--transition);
}
.service-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
border-color: var(--primary);
}
.service-icon {
font-size: 3rem;
color: var(--secondary);
margin-bottom: 20px;
}
/* ADOPTION SECTION */
.adoption-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 30px;
}
.pet-card {
background: var(--white);
border: 1px solid #e5e7eb;
border-radius: 12px;
overflow: hidden;
transition: var(--transition);
}
.pet-card:hover {
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.pet-image {
height: 220px;
width: 100%;
}
.pet-info {
padding: 20px;
}
.pet-tags {
display: flex;
gap: 10px;
margin-bottom: 15px;
}
.tag {
background-color: #DEF7EC;
color: var(--primary-dark);
padding: 4px 10px;
border-radius: 4px;
font-size: 0.8rem;
font-weight: 600;
}
.pet-info h3 {
font-size: 1.25rem;
margin-bottom: 10px;
color: var(--text-dark);
}
.pet-desc {
font-size: 0.9rem;
color: var(--text-light);
margin-bottom: 20px;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.pet-action {
display: flex;
justify-content: space-between;
align-items: center;
}
.btn-small {
background-color: var(--primary);
color: var(--white);
padding: 8px 16px;
border-radius: 4px;
font-size: 0.9rem;
transition: var(--transition);
}
.btn-small:hover {
background-color: var(--primary-dark);
}
/* TESTIMONIALS */
.testimonials-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 30px;
}
.testimonial-card {
background-color: var(--bg-light);
padding: 30px;
border-radius: 8px;
position: relative;
}
.quote-icon {
font-size: 2rem;
color: var(--secondary);
position: absolute;
top: 20px;
right: 20px;
opacity: 0.3;
}
.testimonial-text {
font-style: italic;
margin-bottom: 20px;
color: var(--text-dark);
}
.client-info {
display: flex;
align-items: center;
gap: 15px;
}
.client-avatar {
width: 50px;
height: 50px;
border-radius: 50%;
}
.client-details h4 {
margin-bottom: 0;
font-size: 1rem;
}
.client-details span {
font-size: 0.85rem;
color: var(--text-light);
}
/* FAQ ACCORDION */
.faq-item {
border-bottom: 1px solid var(--bg-light);
}
.faq-item:last-child {
border-bottom: none;
}
.faq-question {
width: 100%;
text-align: left;
background: none;
border: none;
padding: 20px 0;
font-size: 1.1rem;
font-weight: 600;
color: var(--primary-dark);
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
}
.faq-question i {
transition: var(--transition);
}
.faq-question.active i {
transform: rotate(180deg);
}
.faq-answer {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
color: var(--text-light);
}
.faq-answer p {
padding-bottom: 20px;
}
/* SIDEBAR */
aside {
display: flex;
flex-direction: column;
gap: 30px;
}
.widget {
background: var(--white);
padding: 25px;
border-radius: 10px;
box-shadow: var(--shadow);
}
.widget-title {
font-size: 1.2rem;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 2px solid var(--primary);
display: inline-block;
}
/* Featured Pets Sidebar */
.sidebar-pet-item {
display: flex;
gap: 15px;
margin-bottom: 20px;
align-items: center;
}
.sidebar-pet-img {
width: 80px;
height: 80px;
border-radius: 8px;
}
.sidebar-pet-info h5 {
margin-bottom: 5px;
font-size: 1rem;
}
/* Health Tip Widget */
.health-tip {
background-color: #DEF7EC;
padding: 15px;
border-radius: 5px;
margin-bottom: 15px;
}
.health-tip h4 {
font-size: 1rem;
color: var(--primary-dark);
margin-bottom: 5px;
font-family: 'Poppins', sans-serif;
}
.health-tip p {
font-size: 0.85rem;
margin-bottom: 0;
}
/* INTERACTIVE WIDGET: AGE CALCULATOR */
.calculator-form {
display: flex;
flex-direction: column;
gap: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: 500;
font-size: 0.9rem;
}
.form-group select, .form-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
font-family: inherit;
}
.btn-calc {
background-color: var(--primary-dark);
color: white;
border: none;
padding: 12px;
border-radius: 5px;
cursor: pointer;
font-weight: 600;
}
.result-box {
margin-top: 20px;
padding: 15px;
background-color: var(--bg-light);
border-radius: 5px;
text-align: center;
display: none; /* Hidden by default */
animation: fadeIn 0.5s;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(-10px); }
to { opacity: 1; transform: translateY(0); }
}
/* FOOTER */
footer {
background-color: var(--text-dark);
color: var(--white);
padding: 60px 0 20px;
margin-top: 60px;
}
.footer-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 40px;
margin-bottom: 40px;
}
.footer-col h3 {
color: var(--white);
margin-bottom: 20px;
font-family: 'Poppins', sans-serif;
font-size: 1.2rem;
}
.footer-links li {
margin-bottom: 10px;
}
.footer-links a {
color: #d1d5db;
transition: var(--transition);
}
.footer-links a:hover {
color: var(--secondary);
padding-left: 5px;
}
.social-links {
display: flex;
gap: 15px;
}
.social-links a {
width: 40px;
height: 40px;
background-color: rgba(255,255,255,0.1);
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
transition: var(--transition);
}
.social-links a:hover {
background-color: var(--secondary);
}
.footer-bottom {
text-align: center;
padding-top: 20px;
border-top: 1px solid rgba(255,255,255,0.1);
color: #9ca3af;
font-size: 0.9rem;
}
</style>
</head>
<body>
<!-- HEADER -->
<header>
<div class="container nav-container">
<a href="#" class="logo">
<i class="fa-solid fa-paw"></i>
Paws & Pals
</a>
<nav>
<ul class="nav-links">
<li><a href="#adoption">Adopt a Pet</a></li>
<li><a href="#services">Veterinary Services</a></li>
<li><a href="#health">Pet Health</a></li>
<li><a href="#resources">Resources</a></li>
<li><a href="#about">Our Story</a></li>
<li><a href="#" class="btn-header">Book Appointment</a></li>
</ul>
</nav>
</div>
</header>
<!-- HERO SECTION -->
<section class="hero">
<div class="container hero-content">
<h1>Beyond the Leash: <br>Where Every Pet Finds a Forever Home and a Healthy Life.</h1>
<p>We combine compassionate animal rescue with top-tier veterinary medicine to ensure your furry family members live their longest, happiest lives.</p>
<a href="#adoption" class="cta-button">Search Adoptables</a>
</div>
</section>
<!-- MAIN CONTENT LAYOUT -->
<div class="container page-layout">
<!-- MAIN COLUMN -->
<main>
<!-- SECTION 1: Services -->
<section id="services">
<div class="section-header">
<h2>Professional Veterinary Care</h2>
<p>Our state-of-the-art facility offers comprehensive medical care designed to keep your companion in peak condition.</p>
</div>
<div class="services-grid">
<div class="service-card">
<i class="fa-solid fa-syringe service-icon"></i>
<h3>Preventive Care</h3>
<p>Regular vaccinations and wellness exams are the foundation of a long life. We customize preventive plans based on breed and age.</p>
</div>
<div class="service-card">
<i class="fa-solid fa-stethoscope service-icon"></i>
<h3>Advanced Diagnostics</h3>
<p>Utilizing the latest in veterinary technology, including digital X-rays and ultrasound, for accurate and quick diagnoses.</p>
</div>
<div class="service-card">
<i class="fa-solid fa-heart-pulse service-icon"></i>
<h3>Surgery & Emergency</h3>
<p>Our surgical team is experienced in everything from routine spay/neuter to complex orthopedic procedures with around-the-clock monitoring.</p>
</div>
</div>
</section>
<!-- SECTION 2: Adoption -->
<section id="adoption">
<div class="section-header">
<h2>Meet Our Sanctuary Friends</h2>
<p>These animals are looking for a second chance at happiness. Learn more about our adoption process and meet your potential new best friend.</p>
</div>
<div class="adoption-list">
<!-- Pet 1 -->
<div class="pet-card">
<img src="https://picsum.photos/seed/sleepydog/400/300" alt="Golden Retriever Mix" class="pet-image">
<div class="pet-info">
<div class="pet-tags">
<span class="tag">Dog</span>
<span class="tag">2 Years</span>
</div>
<h3>Luna</h3>
<p class="pet-desc">Luna is a sweet-natured Golden Retriever mix who thrives on human companionship. She knows basic commands and gets along wonderfully with children. She was rescued from a local shelter.</p>
<div class="pet-action">
<span><i class="fa-solid fa-location-dot"></i> 2.5 miles away</span>
<a href="#" class="btn-small">View Profile</a>
</div>
</div>
</div>
<!-- Pet 2 -->
<div class="pet-card">
<img src="https://picsum.photos/seed/catzzz/400/300" alt="Orange Tabby Cat" class="pet-image">
<div class="pet-info">
<div class="pet-tags">
<span class="tag">Cat</span>
<span class="tag">4 Years</span>
</div>
<h3>Milo</h3>
<p class="pet-desc">A majestic orange tabby with a laid-back personality. Milo loves sunbeams and quiet afternoons. He is fully vetted and litter box trained. Perfect for an apartment lifestyle.</p>
<div class="pet-action">
<span><i class="fa-solid fa-location-dot"></i> 5 miles away</span>
<a href="#" class="btn-small">View Profile</a>
</div>
</div>
</div>
<!-- Pet 3 -->
<div class="pet-card">
<img src="https://picsum.photos/seed/bunny/400/300" alt="Holland Lop Rabbit" class="pet-image">
<div class="pet-info">
<div class="pet-tags">
<span class="tag">Exotic</span>
<span class="tag">1 Year</span>
</div>
<h3>Oreo</h3>
<p class="pet-desc">Oreo is an energetic Holland Lop rabbit with distinctive floppy ears. He requires plenty of enrichment and supervision when out of his cage. Great for families.</p>
<div class="pet-action">
<span><i class="fa-solid fa-location-dot"></i> 8 miles away</span>
<a href="#" class="btn-small">View Profile</a>
</div>
</div>
</div>
</div>
<div style="text-align: center; margin-top: 30px;">
<a href="#" class="btn-small" style="background: transparent; color: var(--primary); border: 1px solid var(--primary);">View All 45 Pets</a>
</div>
</section>
<!-- SECTION 3: Health Resources -->
<section id="health">
<div class="section-header">
<h2>Pet Health Insights</h2>
<p>Stay informed about the latest veterinary research, dietary guidelines, and behavioral tips.</p>
</div>
<div class="testimonials-grid">
<div class="testimonial-card">
<i class="fa-solid fa-quote-right quote-icon"></i>
<p class="testimonial-text">"Microchipping has saved countless pets from going missing. We strongly recommend it at the 6-week wellness visit. It's a permanent ID that can't fall off or be lost."</p>
<div class="client-info">
<img src="https://i.pravatar.cc/50?u=vet1" alt="Dr. Smith" class="client-avatar">
<div class="client-details">
<h4>Dr. Sarah Smith</h4>
<span>Lead Veterinarian</span>
</div>
</div>
</div>
<div class="testimonial-card">
<i class="fa-solid fa-quote-right quote-icon"></i>
<p class="testimonial-text">"Winter is hard on pets. Remember to check your dog's paws for ice buildup and road salt. A simple paw wash after a walk can prevent painful cracking and ingestion."</p>
<div class="client-info">
<img src="https://i.pravatar.cc/50?u=vet2" alt="Dr. Jones" class="client-avatar">
<div class="client-details">
<h4>Dr. Michael Jones</h4>
<span>Chief Surgeon</span>
</div>
</div>
</div>
</div>
</section>
<!-- SECTION 4: FAQ -->
<section id="resources">
<div class="section-header">
<h2>Frequently Asked Questions</h2>
</div>
<div class="faq-container">
<div class="faq-item">
<button class="faq-question">
What are the adoption fees?
<i class="fa-solid fa-chevron-down"></i>
</button>
<div class="faq-answer">
<p>Our adoption fees range from $150 to $300. This typically covers spay/neuter surgery, age-appropriate vaccinations, deworming, a microchip, and a free veterinary health exam at any of our partner clinics.</p>
</div>
</div>
<div class="faq-item">
<button class="faq-question">
Do you offer house calls?
<i class="fa-solid fa-chevron-down"></i>
</button>
<div class="faq-answer">
<p>Yes, we offer a mobile veterinary service for pets that are anxious in clinics or unable to travel. Please contact our reception team to schedule a home visit.</p>
</div>
</div>
<div class="faq-item">
<button class="faq-question">
How do I become a volunteer?
<i class="fa-solid fa-chevron-down"></i>
</button>
<div class="faq-answer">
<p>We have various volunteer opportunities, including walking dogs, cleaning, administrative help, and fostering. Please visit the 'Resources' page to fill out an application.</p>
</div>
</div>
</div>
</section>
</main>
<!-- SIDEBAR COLUMN -->
<aside>
<!-- Widget 1: Featured Pets -->
<div class="widget">
<h4 class="widget-title">Urgent Needs</h4>
<div class="sidebar-pet-item">
<img src="https://picsum.photos/seed/dogrun/100/100" alt="Pet" class="sidebar-pet-img">
<div class="sidebar-pet-info">
<h5>Max</h5>
<span style="font-size: 0.8rem; color: #ef4444;"><i class="fa-solid fa-triangle-exclamation"></i> Needs Surgery</span>
</div>
</div>
<div class="sidebar-pet-item">
<img src="https://picsum.photos/seed/kitten/100/100" alt="Pet" class="sidebar-pet-img">
<div class="sidebar-pet-info">
<h5>Bella</h5>
<span style="font-size: 0.8rem; color: #ef4444;"><i class="fa-solid fa-triangle-exclamation"></i> High Traffic</span>
</div>
</div>
</div>
<!-- Widget 2: Interactive Age Calculator -->
<div class="widget">
<h4 class="widget-title">Pet Age Calculator</h4>
<p style="font-size: 0.9rem; margin-bottom: 15px; color: var(--text-light);">Curious how old your pet is in "human" years?</p>
<div class="calculator-form">
<div class="form-group">
<label for="petType">Species</label>
<select id="petType">
<option value="dog">Dog</option>
<option value="cat">Cat</option>
</select>
</div>
<div class="form-group">
<label for="humanAge">Age in Human Years</label>
<input type="number" id="humanAge" placeholder="e.g. 5" min="0" max="30">
</div>
<button class="btn-calc" onclick="calculateAge()">Calculate</button>
</div>
<div id="resultBox" class="result-box">
<h5 id="resultText"></h5>
</div>
</div>
<!-- Widget 3: Health Tips -->
<div class="widget">
<h4 class="widget-title">Health Tip of the Month</h4>
<div class="health-tip">
<h4>Hydration Matters</h4>
<p>Many pets don't drink enough water. Try adding a small amount of low-sodium chicken broth to their dry kibble to encourage intake.</p>
</div>
<div class="health-tip">
<h4>Dental Health</h4>
<p>Dental disease is the most common health issue in pets. Establish a brushing routine early to prevent tooth loss.</p>
</div>
</div>
</aside>
</div>
<!-- FOOTER -->
<footer>
<div class="container">
<div class="footer-grid">
<div class="footer-col">
<a href="#" class="logo" style="color: white; margin-bottom: 15px; display: inline-block;">
<i class="fa-solid fa-paw" style="color: var(--secondary);"></i>
Paws & Pals
</a>
<p style="color: #d1d5db; font-size: 0.95rem;">Providing loving care and medical expertise to pets in our community since 1998.</p>
</div>
<div class="footer-col">
<h3>Quick Links</h3>
<ul class="footer-links">
<li><a href="#services">Services</a></li>
<li><a href="#adoption">Adoption Center</a></li>
<li><a href="#">Success Stories</a></li>
<li><a href="#">Careers</a></li>
</ul>
</div>
<div class="footer-col">
<h3>Contact Us</h3>
<ul class="footer-links">
<li><i class="fa-solid fa-location-dot"></i> 123 Compassion Lane, Pet City, PC 12345</li>
<li><i class="fa-solid fa-phone"></i> (555) 123-4567</li>
<li><i class="fa-solid fa-envelope"></i> help@pawsandpals.org</li>
</ul>
</div>
<div class="footer-col">
<h3>Follow Us</h3>
<div class="social-links">
<a href="#"><i class="fa-brands fa-facebook-f"></i></a>
<a href="#"><i class="fa-brands fa-instagram"></i></a>
<a href="#"><i class="fa-brands fa-twitter"></i></a>
</div>
</div>
</div>
<div class="footer-bottom">
<p>© 2023 Paws & Pals Sanctuary & Wellness. All rights reserved. | <a href="#" style="color: inherit; text-decoration: underline;">Privacy Policy</a> | <a href="#" style="color: inherit; text-decoration: underline;">Terms of Service</a></p>
</div>
</div>
</footer>
<!-- INTERACTIVE SCRIPTS -->
<script>
// FAQ Accordion Logic
document.querySelectorAll('.faq-question').forEach(button => {
button.addEventListener('click', () => {
const answer = button.nextElementSibling;
const isActive = button.classList.contains('active');
// Close all other open FAQs
document.querySelectorAll('.faq-question').forEach(btn => {
btn.classList.remove('active');
btn.nextElementSibling.style.maxHeight = null;
});
if (!isActive) {
button.classList.add('active');
answer.style.maxHeight = answer.scrollHeight + "px";
}
});
});
// Pet Age Calculator Logic
function calculateAge() {
const petType = document.getElementById('petType').value;
const humanAge = parseInt(document.getElementById('humanAge').value);
const resultBox = document.getElementById('resultBox');
const resultText = document.getElementById('resultText');
if (isNaN(humanAge) || humanAge < 0) {
resultText.innerText = "Please enter a valid age.";
resultBox.style.display = "block";
return;
}
let petAge = 0;
// Simple approximation formulas
if (petType === 'dog') {
if (humanAge <= 2) {
petAge = humanAge * 12; // First 2 years are rapid growth
} else {
petAge = (2 * 12) + ((humanAge - 2) * 5);
}
resultText.innerText = `Your dog is approximately ${petAge} years old in human years.`;
} else {
if (humanAge <= 2) {
petAge = humanAge * 11;
} else {
petAge = (2 * 11) + ((humanAge - 2) * 4);
}
resultText.innerText = `Your cat is approximately ${petAge} years old in human years.`;
}
resultBox.style.display = "block";
}
</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:40:52.907Z",
"url": "https://benchmark.aimac.invalid/0af33c89b58b83fa98394e94fccb36cb7a7a27ee7f90a1bf5f6ca47feeabb18c.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-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": []
},
{
"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-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": []
},
{
"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-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": []
},
{
"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": "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": []
},
{
"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": []
},
{
"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": "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-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": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "important-letter-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-word-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-line-height",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "line-height in the style attribute is not set to !important, or meets the minimum"
}
],
"none": [],
"impact": null,
"html": "<div style=\"text-align: center; margin-top: 30px;\">\n <a href=\"#\" class=\"btn-small\" style=\"background: transparent; color: var(--primary); border: 1px solid var(--primary);\">View All 45 Pets</a>\n </div>",
"target": [
"#adoption > div:nth-child(3)"
]
}
]
},
{
"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=\"faq-question\">\n What are the adoption fees?\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>",
"target": [
".faq-item:nth-child(1) > .faq-question"
]
}
]
},
{
"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>Beyond the Leash: <br>Where Every Pet Finds a Forever Home and a Healthy Life.</h1>",
"target": [
"h1"
]
},
{
"html": "<h2>Professional Veterinary Care</h2>",
"target": [
"#services > .section-header > h2"
]
},
{
"html": "<h3>Preventive Care</h3>",
"target": [
".service-card:nth-child(1) > h3"
]
},
{
"html": "<h3>Advanced Diagnostics</h3>",
"target": [
".service-card:nth-child(2) > h3"
]
},
{
"html": "<h3>Surgery & Emergency</h3>",
"target": [
".service-card:nth-child(3) > h3"
]
},
{
"html": "<h2>Meet Our Sanctuary Friends</h2>",
"target": [
"#adoption > .section-header > h2"
]
},
{
"html": "<h3>Luna</h3>",
"target": [
".pet-card:nth-child(1) > .pet-info > h3"
]
},
{
"html": "<h3>Milo</h3>",
"target": [
".pet-card:nth-child(2) > .pet-info > h3"
]
},
{
"html": "<h3>Oreo</h3>",
"target": [
".pet-card:nth-child(3) > .pet-info > h3"
]
},
{
"html": "<h2>Pet Health Insights</h2>",
"target": [
"#health > .section-header > h2"
]
},
{
"html": "<h4>Dr. Sarah Smith</h4>",
"target": [
".testimonial-card:nth-child(1) > .client-info > .client-details > h4"
]
},
{
"html": "<h4>Dr. Michael Jones</h4>",
"target": [
".testimonial-card:nth-child(2) > .client-info > .client-details > h4"
]
},
{
"html": "<h2>Frequently Asked Questions</h2>",
"target": [
"#resources > .section-header > h2"
]
},
{
"html": "<h4 class=\"widget-title\">Urgent Needs</h4>",
"target": [
".widget:nth-child(1) > .widget-title"
]
},
{
"html": "<h5>Max</h5>",
"target": [
".sidebar-pet-item:nth-child(2) > .sidebar-pet-info > h5"
]
},
{
"html": "<h5>Bella</h5>",
"target": [
".sidebar-pet-item:nth-child(3) > .sidebar-pet-info > h5"
]
},
{
"html": "<h4 class=\"widget-title\">Pet Age Calculator</h4>",
"target": [
".widget:nth-child(2) > .widget-title"
]
},
{
"html": "<h4 class=\"widget-title\">Health Tip of the Month</h4>",
"target": [
".widget:nth-child(3) > .widget-title"
]
},
{
"html": "<h4>Hydration Matters</h4>",
"target": [
".health-tip:nth-child(2) > h4"
]
},
{
"html": "<h4>Dental Health</h4>",
"target": [
".health-tip:nth-child(3) > h4"
]
},
{
"html": "<h3>Quick Links</h3>",
"target": [
".footer-col:nth-child(2) > h3"
]
},
{
"html": "<h3>Contact Us</h3>",
"target": [
".footer-col:nth-child(3) > h3"
]
},
{
"html": "<h3>Follow Us</h3>",
"target": [
".footer-col:nth-child(4) > h3"
]
}
],
"impact": "serious",
"message": "Page has a heading"
},
{
"id": "landmark",
"data": null,
"relatedNodes": [
{
"html": "<main>",
"target": [
"main"
]
}
],
"impact": "serious",
"message": "Page has a landmark region"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#0f766e",
"bgColor": "#ffffff",
"contrastRatio": 5.47,
"fontSize": "18.0pt (24px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 5.47"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" class=\"logo\">\n <i class=\"fa-solid fa-paw\"></i>\n Paws & Pals\n </a>",
"target": [
".nav-container > .logo[href=\"#\"]"
]
}
]
},
{
"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": "petType",
"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=\"petType\">\n <option value=\"dog\">Dog</option>\n <option value=\"cat\">Cat</option>\n </select>",
"target": [
"#petType"
]
}
]
},
{
"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=\"petType\">Species</label>",
"target": [
"label[for=\"petType\"]"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<select id=\"petType\">\n <option value=\"dog\">Dog</option>\n <option value=\"cat\">Cat</option>\n </select>",
"target": [
"#petType"
]
}
]
},
{
"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/sleepydog/400/300\" alt=\"Golden Retriever Mix\" class=\"pet-image\">",
"target": [
"img[alt=\"Golden Retriever Mix\"]"
]
}
]
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": {
"explicitLabel": "Age in Human Years"
},
"relatedNodes": [
{
"html": "<label for=\"humanAge\">Age in Human Years</label>",
"target": [
"label[for=\"humanAge\"]"
]
}
],
"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=\"humanAge\" placeholder=\"e.g. 5\" min=\"0\" max=\"30\">",
"target": [
"#humanAge"
]
}
]
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "link-in-text-block",
"data": null,
"relatedNodes": [
{
"html": "<p>\u00a9 2023 Paws & Pals Sanctuary & Wellness. All rights reserved. | <a href=\"#\" style=\"color: inherit; text-decoration: underline;\">Privacy Policy</a> | <a href=\"#\" style=\"color: inherit; text-decoration: underline;\">Terms of Service</a></p>",
"target": [
".footer-bottom > p"
]
}
],
"impact": "serious",
"message": "Links can be distinguished from surrounding text in some way other than by color"
},
{
"id": "link-in-text-block-style",
"data": null,
"relatedNodes": [
{
"html": "<p>\u00a9 2023 Paws & Pals Sanctuary & Wellness. All rights reserved. | <a href=\"#\" style=\"color: inherit; text-decoration: underline;\">Privacy Policy</a> | <a href=\"#\" style=\"color: inherit; text-decoration: underline;\">Terms of Service</a></p>",
"target": [
".footer-bottom > p"
]
}
],
"impact": "serious",
"message": "Links can be distinguished from surrounding text by visual styling"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" style=\"color: inherit; text-decoration: underline;\">Privacy Policy</a>",
"target": [
"p > a[href=\"#\"]:nth-child(1)"
]
}
]
},
{
"id": "link-name",
"impact": "serious",
"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=\"logo\">\n <i class=\"fa-solid fa-paw\"></i>\n Paws & Pals\n </a>",
"target": [
".nav-container > .logo[href=\"#\"]"
]
}
]
},
{
"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=\"nav-links\">",
"target": [
".nav-links"
]
}
]
},
{
"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=\"#adoption\">Adopt a Pet</a></li>",
"target": [
".nav-links > 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://picsum.photos/seed/sleepydog/400/300\" alt=\"Golden Retriever Mix\" class=\"pet-image\">",
"target": [
"img[alt=\"Golden Retriever Mix\"]"
]
}
]
},
{
"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": "Species"
},
"relatedNodes": [
{
"html": "<label for=\"petType\">Species</label>",
"target": [
"label[for=\"petType\"]"
]
}
],
"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=\"petType\">\n <option value=\"dog\">Dog</option>\n <option value=\"cat\">Cat</option>\n </select>",
"target": [
"#petType"
]
}
]
},
{
"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": 185.3,
"height": 38.4
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (185.3px by 38.4px, 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\">\n <i class=\"fa-solid fa-paw\"></i>\n Paws & Pals\n </a>",
"target": [
".nav-container > .logo[href=\"#\"]"
]
}
]
}
],
"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": "42.0pt (56px)",
"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": "<h1>Beyond the Leash: <br>Where Every Pet Finds a Forever Home and a Healthy Life.</h1>",
"target": [
"h1"
],
"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": "#ffffff",
"bgColor": "#f59e0b",
"contrastRatio": 2.14,
"fontSize": "13.2pt (17.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<a href=\"#adoption\" class=\"cta-button\">Search Adoptables</a>",
"target": [
".cta-button"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.14 (foreground color: #ffffff, background color: #f59e0b, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#adoption\" class=\"cta-button\">Search Adoptables</a>",
"target": [
".cta-button"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.14 (foreground color: #ffffff, background color: #f59e0b, font size: 13.2pt (17.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6b7280",
"bgColor": "#f3f4f6",
"contrastRatio": 4.39,
"fontSize": "10.2pt (13.6px)",
"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.39 (foreground color: #6b7280, background color: #f3f4f6, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Lead Veterinarian</span>",
"target": [
".testimonial-card:nth-child(1) > .client-info > .client-details > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.39 (foreground color: #6b7280, background color: #f3f4f6, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6b7280",
"bgColor": "#f3f4f6",
"contrastRatio": 4.39,
"fontSize": "10.2pt (13.6px)",
"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.39 (foreground color: #6b7280, background color: #f3f4f6, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Chief Surgeon</span>",
"target": [
".testimonial-card:nth-child(2) > .client-info > .client-details > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.39 (foreground color: #6b7280, background color: #f3f4f6, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ef4444",
"bgColor": "#ffffff",
"contrastRatio": 3.76,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.76 (foreground color: #ef4444, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span style=\"font-size: 0.8rem; color: #ef4444;\"><i class=\"fa-solid fa-triangle-exclamation\"></i> Needs Surgery</span>",
"target": [
".sidebar-pet-item:nth-child(2) > .sidebar-pet-info > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.76 (foreground color: #ef4444, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ef4444",
"bgColor": "#ffffff",
"contrastRatio": 3.76,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"widget\">",
"target": [
".widget:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.76 (foreground color: #ef4444, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span style=\"font-size: 0.8rem; color: #ef4444;\"><i class=\"fa-solid fa-triangle-exclamation\"></i> High Traffic</span>",
"target": [
".sidebar-pet-item:nth-child(3) > .sidebar-pet-info > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.76 (foreground color: #ef4444, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
},
{
"id": "link-name",
"impact": "serious",
"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 does not have text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has no title attribute"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is in tab order and does not have accessible text"
}
],
"impact": "serious",
"html": "<a href=\"#\"><i class=\"fa-brands fa-facebook-f\"></i></a>",
"target": [
".social-links > a[href=\"#\"]:nth-child(1)"
],
"failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"
},
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has no title attribute"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is in tab order and does not have accessible text"
}
],
"impact": "serious",
"html": "<a href=\"#\"><i class=\"fa-brands fa-instagram\"></i></a>",
"target": [
".social-links > a[href=\"#\"]:nth-child(2)"
],
"failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"
},
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has no title attribute"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is in tab order and does not have accessible text"
}
],
"impact": "serious",
"html": "<a href=\"#\"><i class=\"fa-brands fa-twitter\"></i></a>",
"target": [
"a[href=\"#\"]:nth-child(3)"
],
"failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 4532
},
{
"y": 576,
"height": 4532
},
{
"y": 1152,
"height": 4532
},
{
"y": 1728,
"height": 4532
},
{
"y": 2304,
"height": 4532
},
{
"y": 2880,
"height": 4532
},
{
"y": 3456,
"height": 4532
},
{
"y": 3812,
"height": 4532
}
],
"scans": 9,
"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: "Adopt a Pet", "Contact", "Resources".
- **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: "Breed Guides", "Pet Health", "Emergency Info".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "microchipping", "preventive care", "wellness exam".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Search Adoptables", "Find Pet", "Make Appointment".
- **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: "vaccination tracker".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "featured pets", "pet health tips", "volunteer opportunities".
- **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.