Qwen Qwen3 Coder Next – Hobbies and Interests
via Parasail · Generated
- AIMAC Debt 7.87
- Cost $0.01
- Total Violations 14
- HTML Size 39 KB
- Em Dashes 12
Screenshot
View Live Page
Accessibility Issues Found
14 Serious
-
color-contrast serious 11 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<button class="btn btn-sm btn-primary">Start Creating</button> -
link-name serious 3 instances
Links must have discernible text
Example HTML
<a href="#" class="social-icon">
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>Maker’s Atelier | Cultivating Curiosity Through Creation</title>
<meta name="description" content="A vibrant hub for hobbyists, creators, and makers — where craft meets community. Discover projects, share your work, and master new skills with confidence." />
<meta name="theme-color" content="#0f2926" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@600;700;800&display=swap" rel="stylesheet">
<style>
:root {
--color-primary: #0f2926;
--color-accent: #d6a67e;
--color-accent-hover: #c0916a;
--color-bg: #fcfbfa;
--color-surface: #ffffff;
--color-text: #1a1f1e;
--color-muted: #6b7280;
--color-gray-light: #f3f4f6;
--color-gray-medium: #e5e7eb;
--radius-md: 12px;
--radius-lg: 24px;
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--transition-fast: 150ms ease;
--transition-base: 250ms ease;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'Inter', sans-serif;
color: var(--color-text);
line-height: 1.65;
background-color: var(--color-bg);
}
h1, h2, h3, h4 {
font-family: 'Playfair Display', serif;
line-height: 1.1;
letter-spacing: -0.02em;
color: var(--color-primary);
}
h2 {
font-size: 2.25rem;
margin-bottom: 1.5rem;
}
h3 {
font-size: 1.5rem;
margin-bottom: 0.75rem;
}
p {
margin-bottom: 1.25rem;
color: #374151;
}
a {
color: inherit;
text-decoration: none;
}
ul {
list-style: none;
}
img {
max-width: 100%;
height: auto;
display: block;
border-radius: var(--radius-md);
}
.container {
max-width: 1120px;
margin: 0 auto;
padding: 0 20px;
}
/* Utility Classes */
.text-center { text-align: center; }
.text-lg { font-size: 1.125rem; }
.text-muted { color: var(--color-muted); }
.mt-2 { margin-top: 1.5rem; }
.mt-3 { margin-top: 2.5rem; }
/* Button */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0.875rem 1.75rem;
font-weight: 600;
border-radius: 9999px;
transition: all var(--transition-base);
cursor: pointer;
border: none;
}
.btn-primary {
background-color: var(--color-accent);
color: white;
box-shadow: 0 4px 6px -1px rgba(214, 166, 126, 0.3);
}
.btn-primary:hover {
background-color: var(--color-accent-hover);
transform: translateY(-2px);
box-shadow: 0 10px 15px -3px rgba(214, 166, 126, 0.4);
}
.btn-outline {
background-color: transparent;
color: var(--color-primary);
border: 2px solid var(--color-gray-medium);
}
.btn-outline:hover {
border-color: var(--color-primary);
background-color: var(--color-gray-light);
}
/* Header */
header {
position: sticky;
top: 0;
z-index: 50;
background-color: var(--color-surface);
box-shadow: var(--shadow-sm);
}
.nav-container {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem 0;
}
.logo {
display: flex;
align-items: center;
gap: 12px;
}
.logo img {
width: 48px;
height: 48px;
border-radius: 50%;
}
.logo-text {
font-family: 'Playfair Display', serif;
font-size: 1.5rem;
font-weight: 700;
color: var(--color-primary);
}
.logo-sub {
font-size: 0.875rem;
color: var(--color-muted);
font-weight: 300;
}
.nav-links {
display: flex;
gap: 2rem;
}
.nav-links li {
position: relative;
}
.nav-links a {
font-weight: 500;
transition: color var(--transition-fast);
}
.nav-links a:hover {
color: var(--color-accent);
}
.nav-links::after {
content: '';
position: absolute;
bottom: -6px;
left: 0;
right: 0;
height: 2px;
background-color: var(--color-accent);
transform: scaleX(0);
transform-origin: left center;
transition: transform var(--transition-base);
display: none;
}
.nav-links:hover::after {
display: block;
transform: scaleX(1);
}
.nav-actions {
display: flex;
gap: 1rem;
align-items: center;
}
.btn-sm {
padding: 0.625rem 1.25rem;
font-size: 0.875rem;
}
/* Hero Section */
.hero {
padding: 5rem 0 4rem;
background: linear-gradient(to bottom, var(--color-primary), var(--color-accent));
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
top: -50%;
left: -20%;
width: 150%;
height: 120%;
background: url('https://picsum.photos/seed/maker-atelier/1200/800?grayscale') center/cover no-repeat;
opacity: 0.2;
filter: blur(20px);
}
.hero-content {
position: relative;
z-index: 1;
max-width: 720px;
}
.hero h1 {
font-size: 3.5rem;
line-height: 1.15;
margin-bottom: 1.75rem;
color: white;
}
.hero p {
font-size: 1.25rem;
max-width: 560px;
color: rgba(255, 255, 255, 0.9);
margin-bottom: 2.5rem;
}
.hero-cta-group {
display: flex;
gap: 1rem;
flex-wrap: wrap;
}
.hero-cta-group .btn {
background-color: white;
color: var(--color-primary);
}
.hero-cta-group .btn-outline {
background-color: rgba(255, 255, 255, 0.1);
color: white;
border-color: rgba(255, 255, 255, 0.3);
}
.hero-cta-group .btn-outline:hover {
background-color: rgba(255, 255, 255, 0.15);
}
/* Section Styles */
section {
padding: 5rem 0;
}
.section-header {
text-align: center;
margin-bottom: 4rem;
}
.section-header h2 {
font-size: 2.5rem;
margin-bottom: 1.25rem;
}
.section-header p {
font-size: 1.2rem;
max-width: 720px;
margin: 0 auto;
}
/* Featured Creators */
.creators {
background-color: white;
border-top: 1px solid var(--color-gray-medium);
}
.creators-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2.5rem;
}
.creator-card {
background: var(--color-surface);
border-radius: var(--radius-lg);
overflow: hidden;
box-shadow: var(--shadow-md);
transition: transform var(--transition-base), box-shadow var(--transition-base);
}
.creator-card:hover {
transform: translateY(-6px);
box-shadow: var(--shadow-lg);
}
.creator-image {
width: 100%;
height: 300px;
object-fit: cover;
border-bottom: 1px solid var(--color-gray-light);
}
.creator-content {
padding: 1.5rem;
}
.creator-meta {
font-size: 0.875rem;
color: var(--color-accent);
font-weight: 600;
margin-bottom: 0.5rem;
}
.creator-title {
font-size: 1.25rem;
font-weight: 700;
margin-bottom: 0.75rem;
}
.creator-desc {
font-size: 1rem;
margin-bottom: 1.5rem;
}
.creator-link {
display: inline-flex;
align-items: center;
font-weight: 600;
color: var(--color-primary);
}
.creator-link span {
margin-left: 6px;
transition: transform var(--transition-base);
}
.creator-link:hover span {
transform: translateX(4px);
}
/* Skill Tracker Section */
.skill-tracker {
background-color: var(--color-primary);
color: white;
}
.tracker-container {
display: grid;
grid-template-columns: 1.2fr 1fr;
gap: 3.5rem;
align-items: center;
}
.tracker-content h2 {
color: white;
margin-bottom: 1.5rem;
}
.tracker-features {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1.5rem;
margin-bottom: 2.5rem;
}
.tracker-item {
padding: 1.5rem;
background: rgba(255, 255, 255, 0.05);
border-radius: var(--radius-md);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.tracker-item h4 {
color: var(--color-accent);
margin-bottom: 0.5rem;
}
.tracker-visual {
position: relative;
border-radius: var(--radius-lg);
overflow: hidden;
min-height: 420px;
}
.tracker-image {
width: 100%;
height: 100%;
object-fit: cover;
filter: grayscale(100%);
transition: all var(--transition-base);
}
.tracker-image:hover {
filter: grayscale(0%);
transform: scale(1.03);
}
/* Projects Gallery */
.projects {
background-color: var(--color-gray-light);
}
.projects-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
gap: 2rem;
}
.project-card {
background: white;
border-radius: var(--radius-lg);
overflow: hidden;
box-shadow: var(--shadow-sm);
transition: all var(--transition-base);
}
.project-card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-lg);
}
.project-image {
height: 260px;
width: 100%;
object-fit: cover;
}
.project-content {
padding: 1.5rem;
}
.project-tag {
display: inline-block;
font-size: 0.75rem;
font-weight: 700;
padding: 0.25rem 0.75rem;
border-radius: 9999px;
background-color: var(--color-gray-light);
color: var(--color-primary);
margin-bottom: 0.75rem;
}
.project-title {
font-size: 1.375rem;
margin-bottom: 0.75rem;
font-weight: 600;
}
.project-meta {
font-size: 0.875rem;
color: var(--color-muted);
display: flex;
align-items: center;
gap: 0.75rem;
}
.project-cta {
margin-top: 1.5rem;
padding-top: 1.5rem;
border-top: 1px solid var(--color-gray-light);
}
.read-more-link {
font-weight: 600;
color: var(--color-primary);
display: inline-flex;
align-items: center;
gap: 6px;
}
/* Tools & Techniques */
.techniques {
background-color: white;
border-top: 1px solid var(--color-gray-medium);
}
.techniques-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2.5rem;
}
.technique-card {
padding: 2rem;
background: white;
border-radius: var(--radius-lg);
border: 1px solid var(--color-gray-medium);
transition: transform var(--transition-base);
}
.technique-card:hover {
transform: translateY(-4px);
}
.technique-icon {
width: 48px;
height: 48px;
margin-bottom: 1rem;
background: var(--color-accent);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
}
.technique-title {
font-size: 1.25rem;
margin-bottom: 1rem;
}
/* FAQ Accordion */
.faq {
background-color: var(--color-surface);
}
.faq-container {
max-width: 800px;
margin: 0 auto;
}
.faq-item {
border-bottom: 1px solid var(--color-gray-medium);
margin-bottom: 0;
}
.faq-question {
width: 100%;
padding: 1.5rem 0;
text-align: left;
font-size: 1.125rem;
font-weight: 600;
color: var(--color-primary);
background: none;
border: none;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
transition: color var(--transition-fast);
}
.faq-question:hover {
color: var(--color-accent);
}
.faq-icon {
font-size: 1.5rem;
color: var(--color-accent);
}
.faq-answer {
max-height: 0;
overflow: hidden;
transition: max-height var(--transition-base);
padding-left: 0;
}
.faq-item.active .faq-answer {
max-height: 500px;
padding-bottom: 1.5rem;
}
/* CTA Section */
.cta-section {
background: linear-gradient(135deg, var(--color-primary) 0%, #1f4b45 100%);
color: white;
padding: 5rem 0;
text-align: center;
}
.cta-section h2 {
color: white;
font-size: 2.5rem;
margin-bottom: 1.5rem;
}
.cta-section p {
color: rgba(255, 255, 255, 0.85);
font-size: 1.125rem;
max-width: 640px;
margin: 0 auto 2.5rem;
}
/* Footer */
footer {
background-color: #0b1f1c;
color: rgba(255, 255, 255, 0.8);
padding: 4rem 0 2rem;
}
.footer-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 3rem;
margin-bottom: 3rem;
}
.footer-col h4 {
color: white;
font-size: 1.125rem;
margin-bottom: 1.5rem;
}
.footer-col ul li {
margin-bottom: 0.75rem;
}
.footer-col a {
color: rgba(255, 255, 255, 0.7);
transition: color var(--transition-fast);
}
.footer-col a:hover {
color: white;
}
.social-links {
display: flex;
gap: 1rem;
}
.social-icon {
width: 40px;
height: 40px;
border-radius: 50%;
background-color: rgba(255, 255, 255, 0.1);
display: flex;
align-items: center;
justify-content: center;
transition: background-color var(--transition-base);
}
.social-icon:hover {
background-color: var(--color-accent);
}
.footer-bottom {
border-top: 1px solid rgba(255, 255, 255, 0.1);
padding-top: 2rem;
text-align: center;
font-size: 0.875rem;
color: rgba(255, 255, 255, 0.6);
}
.footer-bottom a {
color: rgba(255, 255, 255, 0.8);
}
/* Responsive */
@media (max-width: 968px) {
.hero h1 { font-size: 2.5rem; }
.tracker-container { grid-template-columns: 1fr; }
.nav-links { display: none; }
}
@media (max-width: 768px) {
h2 { font-size: 1.875rem; }
.hero { padding: 3rem 0 2.5rem; }
.hero-content { text-align: center; }
.hero p { margin: 1.25rem auto 2rem; }
.hero-cta-group { justify-content: center; }
.tracker-item { padding: 1rem; }
}
</style>
</head>
<body>
<!-- Header -->
<header id="header">
<div class="container nav-container">
<div class="logo">
<img src="https://placehold.co/48x48/d6a67e/ffffff?text=MA&font=roboto" alt="Maker's Atelier Logo">
<div>
<div class="logo-text">Maker’s Atelier</div>
<div class="logo-sub">Where curiosity becomes craft</div>
</div>
</div>
<nav>
<ul class="nav-links">
<li><a href="#home">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#creators">Spotlights</a></li>
<li><a href="#projects">Gallery</a></li>
<li><a href="#techniques">Techniques</a></li>
<li><a href="#faq">FAQ</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
<div class="nav-actions">
<button class="btn btn-sm btn-outline">Sign In</button>
<button class="btn btn-sm btn-primary">Start Creating</button>
</div>
</div>
</header>
<!-- Hero Section -->
<section class="hero" id="home">
<div class="container hero-content">
<h1>Cultivate Curiosity. Master Your Craft.</h1>
<p>
Join over 85,000 makers, hobbyists, and creative explorers building, restoring, and reimagining the world around them. From upcycled furniture to hand-stitched textiles, discover resources, community, and inspiration to bring your ideas to life—no matter where you begin.
</p>
<div class="hero-cta-group">
<button class="btn btn-primary">Start Your Project</button>
<button class="btn btn-outline">Explore Categories</button>
</div>
</div>
</section>
<!-- Featured Creators Section -->
<section class="creators" id="creators">
<div class="container">
<div class="section-header">
<h2>Creator Spotlights</h2>
<p>Meet the exceptional makers reshaping what’s possible in their craft—and learn how they overcame challenges with our tools and community support.</p>
</div>
<div class="creators-grid">
<!-- Creator 1 -->
<article class="creator-card">
<img src="https://picsum.photos/seed/ceramics/600/400" alt="Hand-thrown ceramic vessel" class="creator-image">
<div class="creator-content">
<div class="creator-meta">Ceramics & Sculpture</div>
<h3 class="creator-title">Elara Vance’s Wheel-Written Stories</h3>
<p class="creator-desc">
Elara’s stoneware vessels draw inspiration from coastal erosion and urban architecture. Her “Cracked Horizon” series—crafted using coiling and slip-casting techniques—recently earned her a feature in <em>Ceramic Review</em>. She credits our kiln calibration guides for mastering reduction firing.
</p>
<a href="#" class="creator-link">Read Her Journey <span>→</span></a>
</div>
</article>
<!-- Creator 2 -->
<article class="creator-card">
<img src="https://picsum.photos/seed/woodworking/600/400" alt="Woodworking workspace" class="creator-image">
<div class="creator-content">
<div class="creator-meta">Woodworking & Furniture</div>
<h3 class="creator-title">Jamal Reyes: From Scrap to Seating</h3>
<p class="creator-desc">
Jamal’s community workshop repurposes fallen urban timber into sculptural seating. His “Reclamation Stool”—built from reclaimed oak floorboards—won “Best Upcycled Design” at the 2024 Midwest Makers Fair. Learn how he integrates joinery techniques with sustainable sourcing.
</p>
<a href="#" class="creator-link">Watch the Build <span>→</span></a>
</div>
</article>
<!-- Creator 3 -->
<article class="creator-card">
<img src="https://picsum.photos/seed/textiles/600/400" alt="Hand-embroidered textile close-up" class="creator-image">
<div class="creator-content">
<div class="creator-meta">Textiles & Embroidery</div>
<h3 class="creator-title">Priya Nair’s Botanical Threads</h3>
<p class="creator-desc">
Priya’s embroidered wall hangings blend traditional chikankari with modern minimalism. Her “Forest Floor” collection—featuring intricate French knots and satin stitches—has been exhibited at the Textile Museum of Canada. Discover how she digitizes patterns using open-source tools.
</p>
<a href="#" class="creator-link">Download Her Pattern <span>→</span></a>
</div>
</article>
</div>
</div>
</section>
<!-- Skill Tracker & Interactive Section -->
<section class="skill-tracker" id="skill-tracker">
<div class="container tracker-container">
<div class="tracker-content">
<h2>Track Your Maker Progress</h2>
<p>
Our skill-tracking tool helps you measure growth across 15+ craft domains—from paper marbling to Arduino prototyping. Set milestones, log practice hours, and earn digital badges as you advance.
</p>
<div class="tracker-features">
<div class="tracker-item">
<h4>Personalized Dashboard</h4>
<p>Visualize your learning path with custom progress bars, completion history, and skill gaps.</p>
</div>
<div class="tracker-item">
<h4>Community Challenges</h4>
<p>Participate in themed maker sprints (e.g., “7 Days of Needle Felting”) and compete with peers.</p>
</div>
<div class="tracker-item">
<h4>Resource Recommendations</h4>
<p>AI-curated tutorials and tool lists adapt as you advance to your next project level.</p>
</div>
</div>
<button class="btn btn-primary" style="background: white; color: #0f2926;">Start Tracking My Skills</button>
</div>
<div class="tracker-visual">
<img src="https://placehold.co/640x480/0f2926/ffffff?text=Skill+Tracker+Dashboard&font=playfair+display" alt="Digital skill tracker interface mockup" class="tracker-image">
</div>
</div>
</section>
<!-- Projects Gallery -->
<section class="projects" id="projects">
<div class="container">
<div class="section-header">
<h2>Community Projects</h2>
<p>Explore thousands of user-submitted projects across categories. Each includes step-by-step guides, material lists, and tips from fellow makers.</p>
</div>
<div class="projects-grid">
<!-- Project 1 -->
<article class="project-card">
<img src="https://picsum.photos/seed/ecofriendly-bags/600/400" alt="Reusable produce bags" class="project-image">
<div class="project-content">
<span class="project-tag">Sewing • Upcycling</span>
<h3 class="project-title">Zero-Waste Produce Bags</h3>
<div class="project-meta">
<span>By <strong>Maya Chen</strong></span>
<span>•</span>
<span>1.2k views</span>
</div>
<p class="text-muted mt-2">
Transform thrifted cotton sheets into functional, washable produce bags in under 2 hours. Includes pattern PDF, seam-finish techniques, and washing tips to extend longevity.
</p>
<div class="project-cta">
<a href="#" class="read-more-link">View Project Plan →</a>
</div>
</div>
</article>
<!-- Project 2 -->
<article class="project-card">
<img src="https://picsum.photos/seed/rustic-shelving/600/400" alt="Reclaimed wood floating shelf" class="project-image">
<div class="project-content">
<span class="project-tag">Woodworking • Restoration</span>
<h3 class="project-title">Floating Reclaimed Shelf</h3>
<div class="project-meta">
<span>By <strong>Tony Miller</strong></span>
<span>•</span>
<span>2.8k views</span>
</div>
<p class="text-muted mt-2">
Build a wall-mounted shelf using salvaged oak flooring. Features hidden cleat mounting, sanding sequences, and oil-finishing instructions for a smooth, durable surface.
</p>
<div class="project-cta">
<a href="#" class="read-more-link">View Project Plan →</a>
</div>
</div>
</article>
<!-- Project 3 -->
<article class="project-card">
<img src="https://picsum.photos/seed/embroidery-embellishment/600/400" alt="Clothesline embroidery wall art" class="project-image">
<div class="project-content">
<span class="project-tag">Embroidery • Art</span>
<h3 class="project-title">Clothesline Embroidery</h3>
<div class="project-meta">
<span>By <strong>Sofia López</strong></span>
<span>•</span>
<span>3.4k views</span>
</div>
<p class="text-muted mt-2">
A playful wall hanging using real clothesline and crewel stitches to create shadowed “clothes” with tiny embroidered details. Tutorial includes photo reference and pattern transfer guide.
</p>
<div class="project-cta">
<a href="#" class="read-more-link">View Project Plan →</a>
</div>
</div>
</article>
<!-- Project 4 -->
<article class="project-card">
<img src="https://picsum.photos/seed/upcycled-lamp/600/400" alt="Vintage lamp restoration" class="project-image">
<div class="project-content">
<span class="project-tag">DIY • Restoration</span>
<h3 class="project-title">Vintage Brass Desk Lamp Restoration</h3>
<div class="project-meta">
<span>By <strong>Alex Kim</strong></span>
<span>•</span>
<span>950 views</span>
</div>
<p class="text-muted mt-2">
Clean, rewire, and polish a 1940s lamp. Includes safety guidelines for rewiring, copper-polishing recipes, and socket replacement steps. Perfect for beginners in lighting mods.
</p>
<div class="project-cta">
<a href="#" class="read-more-link">View Project Plan →</a>
</div>
</div>
</article>
</div>
<div class="text-center mt-3">
<button class="btn btn-outline" style="border-color: #d1d5db; color: var(--color-primary);">Browse All 12,800+ Projects</button>
</div>
</div>
</section>
<!-- Techniques & Tools -->
<section class="techniques" id="techniques">
<div class="container">
<div class="section-header">
<h2>Master Techniques</h2>
<p>Deep-dive lessons from master artisans—covering tools, materials, and methods used in professional studios.</p>
</div>
<div class="techniques-grid">
<!-- Technique 1 -->
<div class="technique-card">
<div class="technique-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 20C6 19.4477 6.44772 19 7 19H17C17.5523 19 18 19.4477 18 20V21C18 21.5523 17.5523 22 17 22H7C6.44772 22 6 21.5523 6 21V20Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9 19V9C9 8.44772 9.44772 8 10 8H14C14.5523 8 15 8.44772 15 9V19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 12V16" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 5C6 4.44772 6.44772 4 7 4H17C17.5523 4 18 4.44772 18 5V8C18 8.55228 17.5523 9 17 9H7C6.44772 9 6 8.55228 6 8V5Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
<h3 class="technique-title">Wood Joinery Fundamentals</h3>
<p>
Master dovetails, mortise-and-tenon, and box joints with step-by-step jigs and measurement tips. Includes printable templates for home shop setups.
</p>
<a href="#" class="read-more-link">Learn Joinery →</a>
</div>
<!-- Technique 2 -->
<div class="technique-card">
<div class="technique-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 16V12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 8H12.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
<h3 class="technique-title">Circuit Design for Makers</h3>
<p>
Create safe, functional PCBs using free tools like KiCad. Includes breadboard optimization, soldering best practices, and component selection strategies.
</p>
<a href="#" class="read-more-link">Explore Circuits →</a>
</div>
<!-- Technique 3 -->
<div class="technique-card">
<div class="technique-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.5 4H9.5C8.67157 4 8 4.67157 8 5.5V18.5C8 19.3284 8.67157 20 9.5 20H14.5C15.3284 20 16 19.3284 16 18.5V5.5C16 4.67157 15.3284 4 14.5 4Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8 14H16" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 18V14" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
<h3 class="technique-title">Sustainable Dyeing Methods</h3>
<p>
Experiment with plant-based dyes, natural mordants, and low-waste batch recipes. Includes pH charts, fabric prep guides, and color-mixing notes.
</p>
<a href="#" class="read-more-link">Dye Naturally →</a>
</div>
<!-- Technique 4 -->
<div class="technique-card">
<div class="technique-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.7 6.3C14.7 5.60465 14.118 5.06672 13.444 5.04397L13.333 5.04167C12.666 5.01905 12.0474 5.4279 11.768 6.0556L10.433 9.04724C10.113 9.81998 10.434 10.665 11.164 11.147C11.894 11.629 12.746 11.689 13.476 11.291L14.7 10.658C15.374 10.261 15.464 9.276 14.97 8.604L13.95 7.256C13.78 7.024 13.48 6.912 13.18 6.96L12.65 7.04167" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M19.9 19.9C20.445 20.445 20.445 21.355 19.9 21.9C19.355 22.445 18.445 22.445 17.9 21.9L15.7 19.7C15.155 19.155 15.155 18.245 15.7 17.7C16.245 17.155 17.155 17.155 17.7 17.7L19.9 19.9Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2.9 2.9C2.355 2.355 1.445 2.355 0.9 2.9C0.355 3.445 0.355 4.355 0.9 4.9L8.1 12.1C8.645 12.645 9.555 12.645 10.1 12.1C10.645 11.555 10.645 10.645 10.1 10.1L2.9 2.9Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14 10C14 10 12 10 12 10" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10 10C10 10 8 10 8 10" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
<h3 class="technique-title">Metal Patination Basics</h3>
<p>
Achieve rich verdigris, deep blues, and antique finishes on copper and brass. Safe chemical ratios, layering techniques, and sealing methods for longevity.
</p>
<a href="#" class="read-more-link">Tame Metals →</a>
</div>
</div>
</div>
</section>
<!-- FAQ Accordion -->
<section class="faq" id="faq">
<div class="container faq-container">
<div class="section-header">
<h2>Frequently Asked Questions</h2>
<p>Everything you need to know about joining the Maker’s Atelier community.</p>
</div>
<div class="faq-item">
<button class="faq-question">
What’s included in free membership?
<span class="faq-icon">+</span>
</button>
<div class="faq-answer">
<p>Free members get access to over 5,000 project guides, basic skill tracking, and community forum participation. Premium unlocks ad-free learning, advanced project templates, and monthly tool kit discounts.</p>
</div>
</div>
<div class="faq-item">
<button class="faq-question">
Can I share my projects with my local makerspace?
<span class="faq-icon">+</span>
</button>
<div class="faq-answer">
<p>Absolutely. We encourage sharing project blueprints and tutorial recordings with community spaces—just ensure credit goes to the original creator. Our license supports non-commercial collaborative use.</p>
</div>
</div>
<div class="faq-item">
<button class="faq-question">
How often are new tutorials added?
<span class="faq-icon">+</span>
</button>
<div class="faq-answer">
<p>We publish 15+ new tutorials monthly, alongside monthly “Project of the Month” challenges with prize pools and live workshops. Subscribers receive priority feedback from our expert reviewers.</p>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="cta-section" id="cta">
<div class="container">
<h2>Ready to Deepen Your Craft?</h2>
<p>
Join 85,000+ makers who trust Maker’s Atelier for skill-building, inspiration, and community connection. Whether you’re just starting or mentoring others, you belong here.
</p>
<button class="btn" style="background: white; color: var(--color-primary); font-weight: 700;">Join the Community</button>
</div>
</section>
<!-- Footer -->
<footer id="contact">
<div class="container">
<div class="footer-grid">
<div class="footer-col">
<h3 class="logo-text" style="color: white; margin-bottom: 1.25rem;">Maker’s Atelier</h3>
<p>Empowering curious minds to create with confidence, sustainability, and joy since 2020.</p>
<div class="social-links mt-2">
<a href="#" class="social-icon">
<svg width="16" height="16" viewBox="0 0 24 24" fill="white">
<path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"/>
</svg>
</a>
<a href="#" class="social-icon">
<svg width="16" height="16" viewBox="0 0 24 24" fill="white">
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
</svg>
</a>
<a href="#" class="social-icon">
<svg width="16" height="16" viewBox="0 0 24 24" fill="white">
<path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"/>
</svg>
</a>
</div>
</div>
<div class="footer-col">
<h4>Explore</h4>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#about">About Us</a></li>
<li><a href="#creators">Creator Spotlights</a></li>
<li><a href="#projects">Project Gallery</a></li>
<li><a href="#techniques">Technique Library</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Community</h4>
<ul>
<li><a href="#">Join a Local Makerspace</a></li>
<li><a href="#">Host a Workshop</a></li>
<li><a href="#">Submit a Project</a></li>
<li><a href="#">Mentorship Program</a></li>
<li><a href="#">Events Calendar</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Support</h4>
<ul>
<li><a href="#">Help Center</a></li>
<li><a href="#">Contact Us</a></li>
<li><a href="#">Privacy Policy</a></li>
<li><a href="#">Terms of Service</a></li>
<li><a href="#">Accessibility</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>© <span id="year"></span> Maker’s Atelier. All rights reserved.</p>
</div>
</div>
</footer>
<!-- JavaScript for interactive elements -->
<script>
// Current year in footer
document.getElementById('year').textContent = new Date().getFullYear();
// FAQ Accordion
document.querySelectorAll('.faq-question').forEach(button => {
button.addEventListener('click', () => {
const faqItem = button.parentElement;
const isActive = faqItem.classList.contains('active');
// Close all FAQ items
document.querySelectorAll('.faq-item').forEach(item => {
item.classList.remove('active');
});
// Toggle clicked item
if (!isActive) {
faqItem.classList.add('active');
}
});
});
// Smooth scrolling 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) {
const headerOffset = 80;
const elementPosition = target.getBoundingClientRect().top;
const offsetPosition = elementPosition + window.pageYOffset - headerOffset;
window.scrollTo({
top: offsetPosition,
behavior: "smooth"
});
}
});
});
// Sticky header shadow
const header = document.getElementById('header');
window.addEventListener('scroll', () => {
if (window.scrollY > 10) {
header.style.boxShadow = '0 2px 4px 0 rgb(0 0 0 / 0.05)';
} else {
header.style.boxShadow = 'none';
}
});
</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:58.619Z",
"url": "https://benchmark.aimac.invalid/79ea6169354dda95a210b69b43c74f8ec046bfbec99f3a8a0e49d2d8a7fea48d.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": "duplicate-id-aria",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every id attribute value used in ARIA and in labels is unique",
"help": "IDs used in ARIA and labels must be unique",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
"nodes": []
},
{
"id": "form-field-multiple-labels",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag332",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.3.3.2"
],
"description": "Ensure form field does not have multiple label elements",
"help": "Form field must not have multiple label elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "select-name",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "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": "<button class=\"btn btn-primary\" style=\"background: white; color: #0f2926;\">Start Tracking My Skills</button>",
"target": [
".tracker-content > .btn-primary.btn"
]
}
]
},
{
"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=\"btn btn-sm btn-outline\">Sign In</button>",
"target": [
".btn-sm.btn-outline.btn"
]
}
]
},
{
"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>Cultivate Curiosity. Master Your Craft.</h1>",
"target": [
"h1"
]
},
{
"html": "<h2>Creator Spotlights</h2>",
"target": [
"#creators > .container > .section-header > h2"
]
},
{
"html": "<h3 class=\"creator-title\">Elara Vance\u2019s Wheel-Written Stories</h3>",
"target": [
".creator-card:nth-child(1) > .creator-content > .creator-title"
]
},
{
"html": "<h3 class=\"creator-title\">Jamal Reyes: From Scrap to Seating</h3>",
"target": [
".creator-card:nth-child(2) > .creator-content > .creator-title"
]
},
{
"html": "<h3 class=\"creator-title\">Priya Nair\u2019s Botanical Threads</h3>",
"target": [
".creator-card:nth-child(3) > .creator-content > .creator-title"
]
},
{
"html": "<h2>Track Your Maker Progress</h2>",
"target": [
".tracker-content > h2"
]
},
{
"html": "<h4>Personalized Dashboard</h4>",
"target": [
".tracker-item:nth-child(1) > h4"
]
},
{
"html": "<h4>Community Challenges</h4>",
"target": [
".tracker-item:nth-child(2) > h4"
]
},
{
"html": "<h4>Resource Recommendations</h4>",
"target": [
".tracker-item:nth-child(3) > h4"
]
},
{
"html": "<h2>Community Projects</h2>",
"target": [
"#projects > .container > .section-header > h2"
]
},
{
"html": "<h3 class=\"project-title\">Zero-Waste Produce Bags</h3>",
"target": [
".project-card:nth-child(1) > .project-content > .project-title"
]
},
{
"html": "<h3 class=\"project-title\">Floating Reclaimed Shelf</h3>",
"target": [
".project-card:nth-child(2) > .project-content > .project-title"
]
},
{
"html": "<h3 class=\"project-title\">Clothesline Embroidery</h3>",
"target": [
".project-card:nth-child(3) > .project-content > .project-title"
]
},
{
"html": "<h3 class=\"project-title\">Vintage Brass Desk Lamp Restoration</h3>",
"target": [
".project-card:nth-child(4) > .project-content > .project-title"
]
},
{
"html": "<h2>Master Techniques</h2>",
"target": [
"#techniques > .container > .section-header > h2"
]
},
{
"html": "<h3 class=\"technique-title\">Wood Joinery Fundamentals</h3>",
"target": [
".technique-card:nth-child(1) > .technique-title"
]
},
{
"html": "<h3 class=\"technique-title\">Circuit Design for Makers</h3>",
"target": [
".technique-card:nth-child(2) > .technique-title"
]
},
{
"html": "<h3 class=\"technique-title\">Sustainable Dyeing Methods</h3>",
"target": [
".technique-card:nth-child(3) > .technique-title"
]
},
{
"html": "<h3 class=\"technique-title\">Metal Patination Basics</h3>",
"target": [
".technique-card:nth-child(4) > .technique-title"
]
},
{
"html": "<h2>Frequently Asked Questions</h2>",
"target": [
".faq-container > .section-header > h2"
]
},
{
"html": "<h2>Ready to Deepen Your Craft?</h2>",
"target": [
".container > h2"
]
},
{
"html": "<h3 class=\"logo-text\" style=\"color: white; margin-bottom: 1.25rem;\">Maker\u2019s Atelier</h3>",
"target": [
".footer-col:nth-child(1) > .logo-text"
]
},
{
"html": "<h4>Explore</h4>",
"target": [
".footer-col:nth-child(2) > h4"
]
},
{
"html": "<h4>Community</h4>",
"target": [
".footer-col:nth-child(3) > h4"
]
},
{
"html": "<h4>Support</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": "#0f2926",
"bgColor": "#ffffff",
"contrastRatio": 15.37,
"fontSize": "18.0pt (24px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 15.37"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<div class=\"logo-text\">Maker\u2019s Atelier</div>",
"target": [
".logo > div > .logo-text"
]
}
]
},
{
"id": "document-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"TTv5",
"TT12.a",
"EN-301-549",
"EN-9.2.4.2",
"ACT"
],
"description": "Ensure each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document has a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://placehold.co/48x48/d6a67e/ffffff?text=MA&font=roboto\" alt=\"Maker's Atelier Logo\">",
"target": [
"img[alt=\"Maker's Atelier Logo\"]"
]
}
]
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "link-in-text-block-style",
"data": null,
"relatedNodes": [
{
"html": "<div class=\"creator-content\">",
"target": [
".creator-card:nth-child(1) > .creator-content"
]
}
],
"impact": "serious",
"message": "Links can be distinguished from surrounding text by visual styling"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" class=\"creator-link\">Read Her Journey <span>\u2192</span></a>",
"target": [
".creator-card:nth-child(1) > .creator-content > .creator-link[href=\"#\"]"
]
}
]
},
{
"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=\"#home\">Home</a>",
"target": [
".nav-links > li:nth-child(1) > a[href$=\"#home\"]"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul class=\"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=\"#home\">Home</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://placehold.co/48x48/d6a67e/ffffff?text=MA&font=roboto\" alt=\"Maker's Atelier Logo\">",
"target": [
"img[alt=\"Maker's Atelier Logo\"]"
]
}
]
},
{
"id": "target-size",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag22aa",
"wcag258"
],
"description": "Ensure touch targets have sufficient size and space",
"help": "All touch targets must be 24px large, or leave sufficient space",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#home\">Home</a>",
"target": [
".nav-links > li:nth-child(1) > a[href$=\"#home\"]"
]
}
]
}
],
"incomplete": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fontSize": "42.0pt (56px)",
"fontWeight": "bold",
"messageKey": "pseudoContent",
"expectedContrastRatio": "3:1"
},
"relatedNodes": [
{
"html": "<section class=\"hero\" id=\"home\">",
"target": [
"#home"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a pseudo element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<h1>Cultivate Curiosity. Master Your Craft.</h1>",
"target": [
"h1"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a pseudo element"
}
]
}
],
"violations": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#ffffff",
"bgColor": "#d6a67e",
"contrastRatio": 2.18,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<button class=\"btn btn-sm btn-primary\">Start Creating</button>",
"target": [
".btn-sm.btn-primary.btn"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.18 (foreground color: #ffffff, background color: #d6a67e, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<button class=\"btn btn-sm btn-primary\">Start Creating</button>",
"target": [
".btn-sm.btn-primary.btn"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.18 (foreground color: #ffffff, background color: #d6a67e, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d6a67e",
"bgColor": "#ffffff",
"contrastRatio": 2.18,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"creator-card\">",
"target": [
".creator-card:nth-child(1)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.18 (foreground color: #d6a67e, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"creator-meta\">Ceramics & Sculpture</div>",
"target": [
".creator-card:nth-child(1) > .creator-content > .creator-meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.18 (foreground color: #d6a67e, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d6a67e",
"bgColor": "#ffffff",
"contrastRatio": 2.18,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"creator-card\">",
"target": [
".creator-card:nth-child(2)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.18 (foreground color: #d6a67e, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"creator-meta\">Woodworking & Furniture</div>",
"target": [
".creator-card:nth-child(2) > .creator-content > .creator-meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.18 (foreground color: #d6a67e, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#d6a67e",
"bgColor": "#ffffff",
"contrastRatio": 2.18,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"creator-card\">",
"target": [
".creator-card:nth-child(3)"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.18 (foreground color: #d6a67e, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"creator-meta\">Textiles & Embroidery</div>",
"target": [
".creator-card:nth-child(3) > .creator-content > .creator-meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.18 (foreground color: #d6a67e, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#374151",
"bgColor": "#0f2926",
"contrastRatio": 1.49,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"skill-tracker\" id=\"skill-tracker\">",
"target": [
"#skill-tracker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.49 (foreground color: #374151, background color: #0f2926, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>\n Our skill-tracking tool helps you measure growth across 15+ craft domains\u2014from paper marbling to Arduino prototyping. Set milestones, log practice hours, and earn digital badges as you advance.\n </p>",
"target": [
".tracker-content > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.49 (foreground color: #374151, background color: #0f2926, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#374151",
"bgColor": "#1b3431",
"contrastRatio": 1.28,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"tracker-item\">\n <h4>Personalized Dashboard</h4>\n <p>Visualize your learning path with custom progress bars, completion history, and skill gaps.</p>\n </div>",
"target": [
".tracker-item:nth-child(1)"
]
},
{
"html": "<section class=\"skill-tracker\" id=\"skill-tracker\">",
"target": [
"#skill-tracker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.28 (foreground color: #374151, background color: #1b3431, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>Visualize your learning path with custom progress bars, completion history, and skill gaps.</p>",
"target": [
".tracker-item:nth-child(1) > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.28 (foreground color: #374151, background color: #1b3431, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#374151",
"bgColor": "#1b3431",
"contrastRatio": 1.28,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"tracker-item\">\n <h4>Community Challenges</h4>\n <p>Participate in themed maker sprints (e.g., \u201c7 Days of Needle Felting\u201d) and compete with peers.</p>\n </div>",
"target": [
".tracker-item:nth-child(2)"
]
},
{
"html": "<section class=\"skill-tracker\" id=\"skill-tracker\">",
"target": [
"#skill-tracker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.28 (foreground color: #374151, background color: #1b3431, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>Participate in themed maker sprints (e.g., \u201c7 Days of Needle Felting\u201d) and compete with peers.</p>",
"target": [
".tracker-item:nth-child(2) > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.28 (foreground color: #374151, background color: #1b3431, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#374151",
"bgColor": "#1b3431",
"contrastRatio": 1.28,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"tracker-item\">\n <h4>Resource Recommendations</h4>\n <p>AI-curated tutorials and tool lists adapt as you advance to your next project level.</p>\n </div>",
"target": [
".tracker-item:nth-child(3)"
]
},
{
"html": "<section class=\"skill-tracker\" id=\"skill-tracker\">",
"target": [
"#skill-tracker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.28 (foreground color: #374151, background color: #1b3431, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>AI-curated tutorials and tool lists adapt as you advance to your next project level.</p>",
"target": [
".tracker-item:nth-child(3) > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.28 (foreground color: #374151, background color: #1b3431, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#374151",
"bgColor": "#0b1f1c",
"contrastRatio": 1.66,
"fontSize": "12.0pt (16px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.66 (foreground color: #374151, background color: #0b1f1c, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>Empowering curious minds to create with confidence, sustainability, and joy since 2020.</p>",
"target": [
".footer-col:nth-child(1) > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.66 (foreground color: #374151, background color: #0b1f1c, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#374151",
"bgColor": "#0b1f1c",
"contrastRatio": 1.66,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.66 (foreground color: #374151, background color: #0b1f1c, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p>\u00a9 <span id=\"year\">2026</span> Maker\u2019s Atelier. All rights reserved.</p>",
"target": [
".footer-bottom > p"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.66 (foreground color: #374151, background color: #0b1f1c, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#374151",
"bgColor": "#0b1f1c",
"contrastRatio": 1.66,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 1.66 (foreground color: #374151, background color: #0b1f1c, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span id=\"year\">2026</span>",
"target": [
"#year"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 1.66 (foreground color: #374151, background color: #0b1f1c, font size: 10.5pt (14px), 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=\"#\" class=\"social-icon\">",
"target": [
".social-icon[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=\"#\" class=\"social-icon\">",
"target": [
".social-icon[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=\"#\" class=\"social-icon\">",
"target": [
".social-icon[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": 6974
},
{
"y": 576,
"height": 6974
},
{
"y": 1152,
"height": 6974
},
{
"y": 1728,
"height": 6974
},
{
"y": 2304,
"height": 6974
},
{
"y": 2880,
"height": 6974
},
{
"y": 3456,
"height": 6974
},
{
"y": 4032,
"height": 6974
},
{
"y": 4608,
"height": 6974
},
{
"y": 5184,
"height": 6974
},
{
"y": 5760,
"height": 6974
},
{
"y": 6254,
"height": 6974
}
],
"scans": 13,
"max_states": 512,
"settle_ms": 5000,
"page_timeout_seconds": 150,
"layout_stability": "consecutive 100ms size samples within one CSS pixel",
"animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
"interactive_states": "not exercised",
"horizontal_scroll": "not exercised"
}
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Hobbies and Interests" 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: "Hobbies and Interests"
- Description: Hobbies, crafts, DIY projects, collecting, and special interest communities.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Hobbies and Interests" 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", "Gallery", "Projects".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Hobbies and Interests" category. Consider themes similar to: "Creator Spotlights", "Trend Reports", "Advanced Techniques".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "upcycling", "crafting technique", "restoration".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Start Creating", "Join Community", "Share Project".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Hobbies and Interests" sector. Ideas similar but not limited to: "skill tracker".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "popular projects", "craft trends", "new tutorials".
- **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.