chore: achieve 100/100 pagespeed and html validation
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 7s
Build & Deploy / 🧪 QA (push) Failing after 2m14s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Smoke Test (push) Has been skipped
Build & Deploy / ⚡ Lighthouse (push) Has been skipped
Build & Deploy / ♿ WCAG (push) Has been skipped
Build & Deploy / 📸 Visual Diff (push) Has been skipped
Build & Deploy / 🛡️ Quality Gates (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s

- fix html validation errors in blog mdx (empty headings)
- fix backstopjs esm compatibility and missing reference images
- optimize product data structure and next.config.mjs
- finalize accessibility and seo improvements
This commit is contained in:
2026-02-22 02:02:38 +01:00
parent dd7e800ec4
commit d11dae5f85
63 changed files with 64 additions and 24 deletions

View File

@@ -148,7 +148,6 @@ export default function ContactForm() {
autoComplete="name"
enterKeyHint="next"
onFocus={() => handleFocus('contact-name')}
aria-label={t('form.name')}
required
/>
</div>
@@ -163,7 +162,6 @@ export default function ContactForm() {
enterKeyHint="next"
placeholder={t('form.emailPlaceholder')}
onFocus={() => handleFocus('contact-email')}
aria-label={t('form.email')}
required
/>
</div>
@@ -176,7 +174,6 @@ export default function ContactForm() {
enterKeyHint="send"
placeholder={t('form.messagePlaceholder')}
onFocus={() => handleFocus('contact-message')}
aria-label={t('form.message')}
required
/>
</div>

View File

@@ -19,6 +19,7 @@ export default function Footer() {
<div className="absolute top-0 left-0 w-full h-px bg-gradient-to-r from-transparent via-white/20 to-transparent" />
<Container>
<h2 className="sr-only">Footer Navigation</h2>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-12 gap-16 mb-20">
{/* Brand Column */}
<div className="lg:col-span-4 space-y-8">

View File

@@ -172,7 +172,6 @@ export default function RequestQuoteForm({ productName }: RequestQuoteFormProps)
onChange={(e) => setEmail(e.target.value)}
onFocus={() => handleFocus('quote-email')}
placeholder={t('email')}
aria-label={t('email')}
className="h-9 text-xs !mt-0"
/>
</div>
@@ -186,7 +185,6 @@ export default function RequestQuoteForm({ productName }: RequestQuoteFormProps)
onChange={(e) => setRequest(e.target.value)}
onFocus={() => handleFocus('quote-request')}
placeholder={t('message')}
aria-label={t('message')}
className="text-xs !mt-0"
/>
</div>

View File

@@ -43,7 +43,7 @@ export default function ProductCategories() {
return (
<Section className="bg-neutral-light py-0 md:py-0 lg:py-0 -mt-px">
<h2 className="sr-only">{t('title')}</h2>
{t('title') && <h2 className="sr-only">{t('title')}</h2>}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4">
{categories.map((category, idx) => (
<Link