{# Temporary accessibility fix for carousel navigation #}
<script>
(function() {
function fixCarouselAccessibility() {
// Fix role for div elements with aria-label
const elements = document.querySelectorAll('.tns-controls[aria-label], .base-slider-controls[aria-label]');
elements.forEach(el => {
if (!el.hasAttribute('role')) {
el.setAttribute('role', 'group');
}
});
// Fix missing labels for navigation buttons
const prevButtons = document.querySelectorAll('.base-slider-controls-prev, .tns-prev');
prevButtons.forEach(button => {
if (!button.hasAttribute('aria-label') && !button.textContent.trim()) {
button.setAttribute('aria-label', 'Vorheriges Bild');
}
});
const nextButtons = document.querySelectorAll('.base-slider-controls-next, .tns-next');
nextButtons.forEach(button => {
if (!button.hasAttribute('aria-label') && !button.textContent.trim()) {
button.setAttribute('aria-label', 'Nächstes Bild');
}
});
// Fix Clerk wishlist buttons without labels
const clerkWishlistButtons = document.querySelectorAll('div.clerk-slider-content button.product-card__wishlist-btn');
clerkWishlistButtons.forEach(button => {
if (!button.hasAttribute('aria-label') && !button.textContent.trim() && !button.hasAttribute('title')) {
button.setAttribute('aria-label', 'Zur Wunschliste hinzufügen');
}
});
}
// Run on page load
document.addEventListener('DOMContentLoaded', fixCarouselAccessibility);
// Run on dynamic content changes
const observer = new MutationObserver(fixCarouselAccessibility);
observer.observe(document.body, { childList: true, subtree: true });
})();
</script>