nav barrierefrei

This commit is contained in:
Sabrina Hennrich 2025-06-16 16:39:48 +02:00
parent 905e7d3e00
commit 750dccc863
12 changed files with 53 additions and 35 deletions

View File

@ -2,7 +2,7 @@
<div class="ctaBox"> <div class="ctaBox">
<h3>{{ headline }}</h3> <h3>{{ headline }}</h3>
<p>{{ text }}</p> <p>{{ text }}</p>
<button class="pinkBtn mt-1" role="button" @click.prevent="toggleContactBubble"> <button class="btn pinkBtn mt-1" role="button" @click.prevent="toggleContactBubble">
{{ buttonText }} {{ buttonText }}
</button> </button>
</div> </div>

View File

@ -7,17 +7,20 @@
aria-labelledby="controlIcon" aria-labelledby="controlIcon"
role="dialog" role="dialog"
> >
<svg <button
id="controlIcon" id="controlIcon"
tabindex="0" tabindex="0"
role="button" role="button"
aria-label="Toggle contact form" aria-label="Toggle contact form"
@click="toggleContactBubble" @click="toggleContactBubble"
@keydown.space.prevent="toggleContactBubble" @keydown.space.prevent="toggleContactBubble"
@keydown.enter.prevent="toggleContactBubble" @keydown.enter.prevent="toggleContactBubble"
> >
<use :xlink:href="`/assets/icons/collection.svg#${isContactBubbleOpen ? 'times' : 'talk'}`" /> <svg>
</svg> <use :xlink:href="`/assets/icons/collection.svg#${isContactBubbleOpen ? 'times' : 'talk'}`" />
</svg>
</button>
<div <div
v-show="isContactBubbleOpen" v-show="isContactBubbleOpen"
@ -168,7 +171,7 @@
<button <button
type="submit" type="submit"
class="pinkBtn" class="btn pinkBtn"
:aria-label="$t('contactForm.sendMessage')" :aria-label="$t('contactForm.sendMessage')"
> >
{{ $t('contactForm.sendMessage') }} {{ $t('contactForm.sendMessage') }}
@ -406,6 +409,11 @@ watch(isContactBubbleOpen, async (newVal) => {
a a
color: $primaryColor color: $primaryColor
#controlIcon #controlIcon
border: none
&:focus
outline: 2px solid $primaryColor
outline-offset: 8px
svg
position: absolute position: absolute
bottom: 50% bottom: 50%
left: 50% left: 50%
@ -419,15 +427,22 @@ watch(isContactBubbleOpen, async (newVal) => {
&.active &.active
height: 90vh height: 90vh
width: 90vw width: 90vw
background-color: rgba(lighten($beige, 8%), .98) background-color: white
color: $darkgrey
display: flex display: flex
flex-direction: column flex-direction: column
text-align: left text-align: left
border: 1px solid $lightgrey border: 1px solid $lightgrey
animation: none animation: none
box-shadow: 1px 1px 15px 2px $beige box-shadow: 1px 1px 15px 2px $beige
@media(max-width: $breakPointMD) #controlIcon
width: auto
height: auto
top: 2rem
position: absolute
svg
display: block
fill: #888
@media(max-width: $breakPointLG)
border-radius: 0 border-radius: 0
height: 100% height: 100%
width: 100% width: 100%
@ -437,10 +452,7 @@ watch(isContactBubbleOpen, async (newVal) => {
right: 5vw right: 5vw
left: auto left: auto
bottom: 4rem !important bottom: 4rem !important
#controlIcon
bottom: 3rem
fill: #888
width: 2rem
.mobileAspBox .mobileAspBox
width: 30vw width: 30vw
max-width: 90px max-width: 90px
@ -480,7 +492,7 @@ watch(isContactBubbleOpen, async (newVal) => {
textarea textarea
height: 20% height: 20%
font-size: 1.1rem font-size: 1.1rem
button .btn
font-size: 1.2rem font-size: 1.2rem
border: none border: none
background-image: linear-gradient(to bottom right, lighten($pink, 10%), $pink) background-image: linear-gradient(to bottom right, lighten($pink, 10%), $pink)

View File

@ -9,7 +9,7 @@
<h4> {{ $t('faqBox.questions') }} </h4> <h4> {{ $t('faqBox.questions') }} </h4>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<button role="button" class="pinkBtn" @click.prevent="toggleContactBubble"> <button role="button" class="btn pinkBtn" @click.prevent="toggleContactBubble">
{{ button }} {{ button }}
</button> </button>
</div> </div>

View File

@ -7,6 +7,7 @@
scrollPosition > 50 ? 'scrolled' : '' scrollPosition > 50 ? 'scrolled' : ''
]" ]"
aria-label="Hauptnavigation" aria-label="Hauptnavigation"
role="menu"
> >
<!-- Burger Icon als Button --> <!-- Burger Icon als Button -->
<button <button
@ -38,6 +39,9 @@
class="nav-item" class="nav-item"
@mouseenter="screenWidth >= 1350 && link.subNav && showSubNav(link.label)" @mouseenter="screenWidth >= 1350 && link.subNav && showSubNav(link.label)"
@mouseleave="screenWidth >= 1350 && link.subNav && hideSubNav(link.label)" @mouseleave="screenWidth >= 1350 && link.subNav && hideSubNav(link.label)"
@focusin="screenWidth >= 1350 && link.subNav && showSubNav(link.label)"
@focusout="screenWidth >= 1350 && link.subNav && hideSubNav(link.label)"
role="menuitem"
> >
<!-- Mit SubNav --> <!-- Mit SubNav -->
<template v-if="link.subNav"> <template v-if="link.subNav">
@ -55,10 +59,10 @@
{{ isActiveSubNav(link.label) ? 'Untermenü schließen' : 'Untermenü öffnen' }} {{ isActiveSubNav(link.label) ? 'Untermenü schließen' : 'Untermenü öffnen' }}
</span> </span>
</button> </button>
<div v-else> <button v-else>
{{ $t(link.label) }} {{ $t(link.label) }}
<span class="arrow" :class="{ open: isSubNavOpen === link.label }"></span> <span class="arrow" :class="{ open: isSubNavOpen === link.label }"></span>
</div> </button>
<ul <ul
:id="`submenu-${link.label}`" :id="`submenu-${link.label}`"
@ -240,6 +244,8 @@
color: $darkgrey color: $darkgrey
font-size: 1.1rem font-size: 1.1rem
cursor: pointer cursor: pointer
button
all: unset
a a
text-decoration: none text-decoration: none
color: $darkgrey color: $darkgrey

View File

@ -117,7 +117,7 @@ main
.loopShape .loopShape
border-radius: $loopShape border-radius: $loopShape
button, .btn .btn
background-color: white background-color: white
border: 1px solid $darkgrey border: 1px solid $darkgrey
border-radius: 5px border-radius: 5px

View File

@ -37,7 +37,7 @@
</ul> </ul>
<p><b>Du bleibst der kreative Kopf!</b><br> <p><b>Du bleibst der kreative Kopf!</b><br>
Ich sorge dafür, dass dein Design genauso im Web erscheint, wie du es geplant hast mit Top-Performance & perfekter technischer Umsetzung.</p> Ich sorge dafür, dass dein Design genauso im Web erscheint, wie du es geplant hast mit Top-Performance & perfekter technischer Umsetzung.</p>
<button class="pinkBtn" role="button" @click.prevent="toggleContactBubble">Lass uns kennenlernen</button> <button class="btn pinkBtn" role="button" @click.prevent="toggleContactBubble">Lass uns kennenlernen</button>
</div> </div>
</section> </section>
@ -126,7 +126,7 @@
<h2>Hat Dein Design den richtigen Kontrast?</h2> <h2>Hat Dein Design den richtigen Kontrast?</h2>
<p>Mit dem praktischen Kontrastchecker kannst Du herausfinden, ob die Schrift und der Hintergrund in Deinem Design den WCAG_Richtlinien entsprechen. So stellst Du sicher, dass Dein Design für alle gut lesbar ist.</p> <p>Mit dem praktischen Kontrastchecker kannst Du herausfinden, ob die Schrift und der Hintergrund in Deinem Design den WCAG_Richtlinien entsprechen. So stellst Du sicher, dass Dein Design für alle gut lesbar ist.</p>
<button <button
class="mintBtn" role="button" class="btn mintBtn" role="button"
aria-label="Zum Kontrastchecker" aria-label="Zum Kontrastchecker"
@click.prevent="navigateTo('/toolbox/kontrastchecker')">Jetzt kostenlos Konstrast prüfen</button> @click.prevent="navigateTo('/toolbox/kontrastchecker')">Jetzt kostenlos Konstrast prüfen</button>
</div> </div>

View File

@ -34,7 +34,7 @@
<h2>{{ article.header }}</h2> <h2>{{ article.header }}</h2>
</div> </div>
<button class="mintBtn">{{ $t('pages.magazin.readmore') }}</button> <button class="btn mintBtn">{{ $t('pages.magazin.readmore') }}</button>
</div> </div>
</NuxtLinkLocale> </NuxtLinkLocale>

View File

@ -12,7 +12,7 @@
<h1>Webseiten für die Film- & Fernsehbranche</h1> <h1>Webseiten für die Film- & Fernsehbranche</h1>
<h2>Für Schauspieler, Regisseure, Produktionsfirmen und Filmtechnik-Profis</h2> <h2>Für Schauspieler, Regisseure, Produktionsfirmen und Filmtechnik-Profis</h2>
<h3>Einfach zu bedienende Webseiten, die Ihre Arbeit ins richtige Licht rücken</h3> <h3>Einfach zu bedienende Webseiten, die Ihre Arbeit ins richtige Licht rücken</h3>
<button class="whiteBtn" role="button" @click.prevent="toggleContactBubble">Erstkontakt ganz ohne Drehbuch</button> <button class="btn whiteBtn" role="button" @click.prevent="toggleContactBubble">Erstkontakt ganz ohne Drehbuch</button>
</HeroBox> </HeroBox>
<section class="visibility"> <section class="visibility">

View File

@ -125,7 +125,7 @@
</p> </p>
<h3>Dürfen wir auch Sie unterstützen?</h3> <h3>Dürfen wir auch Sie unterstützen?</h3>
<button <button
class="my-4 pinkBtn" class="my-4 btn pinkBtn"
role="button" role="button"
aria-label="Kontaktformular öffnen" aria-label="Kontaktformular öffnen"
@click.prevent="toggleContactBubble" @click.prevent="toggleContactBubble"

View File

@ -30,7 +30,7 @@
</ul> </ul>
<h3>Möchten Sie wissen, wie barrierefrei Ihre aktuelle Webseite ist?</h3> <h3>Möchten Sie wissen, wie barrierefrei Ihre aktuelle Webseite ist?</h3>
<button <button
class="pinkBtn" role="button" class="btn pinkBtn" role="button"
aria-label="Barrierefreiheitscheck" aria-label="Barrierefreiheitscheck"
@click.prevent="toggleContactBubble">Kostenlosen Barrierefreiheits-Check anfordern!</button> @click.prevent="toggleContactBubble">Kostenlosen Barrierefreiheits-Check anfordern!</button>
</div> </div>

View File

@ -62,7 +62,7 @@
<h2 id="invitation-title">{{ $t('pages.home.invitation.title') }}</h2> <h2 id="invitation-title">{{ $t('pages.home.invitation.title') }}</h2>
<h3>{{ $t('pages.home.invitation.teaser') }}</h3> <h3>{{ $t('pages.home.invitation.teaser') }}</h3>
<button <button
class="pinkBtn" role="button" class="btn pinkBtn" role="button"
aria-describedby="invitation-title" aria-describedby="invitation-title"
aria-label="Kontaktformular öffnen" aria-label="Kontaktformular öffnen"
@click.prevent="toggleContactBubble">{{ $t('pages.home.invitation.button') }}</button> @click.prevent="toggleContactBubble">{{ $t('pages.home.invitation.button') }}</button>

View File

@ -9,7 +9,7 @@
<p v-html="$t('pages.webagency.hero.text2')" /> <p v-html="$t('pages.webagency.hero.text2')" />
<p v-html="$t('pages.webagency.hero.text3')" /> <p v-html="$t('pages.webagency.hero.text3')" />
<button <button
class="my-4 pinkBtn" class="my-4 btn pinkBtn"
role="button" role="button"
aria-label="Kontaktformular öffnen" aria-label="Kontaktformular öffnen"
@click.prevent="toggleContactBubble" @click.prevent="toggleContactBubble"
@ -74,7 +74,7 @@
</div> </div>
<button <button
class="pinkBtn mt-4" class="btn pinkBtn mt-4"
role="button" role="button"
aria-label="Kontaktformular öffnen" aria-label="Kontaktformular öffnen"
@click.prevent="toggleContactBubble" @click.prevent="toggleContactBubble"
@ -90,7 +90,7 @@
<p class="supheadlineMint">{{ $t('pages.webagency.grafiker.supheadline') }}</p> <p class="supheadlineMint">{{ $t('pages.webagency.grafiker.supheadline') }}</p>
<h2>{{ $t('pages.webagency.grafiker.title') }}</h2> <h2>{{ $t('pages.webagency.grafiker.title') }}</h2>
<button <button
class="mintBtn" class="btn mintBtn"
role="button" role="button"
aria-label="Zum Angebot für Kreative" aria-label="Zum Angebot für Kreative"
@click.prevent="navigateTo(designerLink)" @click.prevent="navigateTo(designerLink)"