Public accessibility assessment

Accessibility issues detected on vem.lu

Evolize inspected 5 public pages on vem.lu and detected 65 automatically identifiable accessibility findings.

65Findings detected
9WCAG criteria affected
5Pages inspected
26 Aug 2026Assessment date

Highest detected severity: Critical · 19 high-priority findings · 100% inspected-page coverage

Most widespread issueLinks lack accessible textDetected on 5 inspected pages
Most affected page/46 findings detected
Most represented WCAG criterionWCAG 1.4.3 — Contrast (Minimum)38 detected findings

Is vem.lu your website?

Keep this assessment current and get notified when new accessibility issues are detected.

https://

Not your website? Scan your own site →

01 · Accessibility summary

Evolize inspected 5 public pages on vem.lu and detected 65 accessibility findings. The most widespread issue was "Links lack accessible text", detected on 5 inspected pages. The most affected inspected page was "/", where 46 findings were detected. The assessment identified findings mapped to 9 WCAG success criterions. The sections below prioritize the broadest issues and provide technical evidence for each detected finding.

02 · Start here

These findings combine the highest severity and broadest reach detected during this assessment.

  1. Critical

    Links lack accessible text

    WCAG 2.4.4 (A) · 1 inspected page · 12 instances
    Why this matters

    Links expose no accessible name, so their destination is unknown to screen reader users.

    Recommended action

    Add text to the link that describes its purpose, such as 'Contact us on WhatsApp'. Alternatively, use the aria-label attribute to provide a text description of the link's purpose.

    View technical evidence →
  2. Critical

    Links lack accessible text

    WCAG 2.4.4 (A) · 1 inspected page · 12 instances
    Why this matters

    Links expose no accessible name, so their destination is unknown to screen reader users.

    Recommended action

    Add text to the link that describes its purpose, such as 'Contact us on WhatsApp'. Alternatively, use the aria-label attribute to provide a text description of the link's purpose.

    View technical evidence →
  3. Critical

    Links lack accessible text

    WCAG 2.4.4 (A) · 1 inspected page · 12 instances
    Why this matters

    Links expose no accessible name, so their destination is unknown to screen reader users.

    Recommended action

    Add text to the link that describes its purpose, such as 'Contact us on WhatsApp'. Alternatively, use the aria-label attribute to provide a text description of the link's purpose.

    View technical evidence →
  4. Critical

    Links lack accessible text

    WCAG 2.4.4 (A) · 1 inspected page · 12 instances
    Why this matters

    Links expose no accessible name, so their destination is unknown to screen reader users.

    Recommended action

    Add text to the link that describes its purpose, such as 'Contact us on WhatsApp'. Alternatively, use the aria-label attribute to provide a text description of the link's purpose.

    View technical evidence →
  5. Critical

    Links lack accessible text

    WCAG 2.4.4 (A) · 1 inspected page · 12 instances
    Why this matters

    Links expose no accessible name, so their destination is unknown to screen reader users.

    Recommended action

    Add text to the link that describes its purpose, such as 'Contact us on WhatsApp'. Alternatively, use the aria-label attribute to provide a text description of the link's purpose.

    View technical evidence →

03 · WCAG criteria affected

CriterionNameLevelFindingsPagesReach
1.4.3Contrast (Minimum)AA3855 / 5
2.4.4Link Purpose (In Context)A1155 / 5
2.5.8Target Size (Minimum)AA555 / 5
1.3.1Info and RelationshipsA444 / 5
2.4.3Focus OrderA355 / 5
2.1.1KeyboardA222 / 5
1.1.1Non-text ContentA155 / 5
3.3.2Labels or InstructionsA111 / 5
4.1.2Name, Role, ValueA111 / 5

Absence of a criterion here does not indicate conformance with it — only that no automatically detectable issue was found for it.

Continuous monitoring

A scan shows today's exposure. Monitoring shows what changes next.

Evolize continuously reassesses public website pages, detects newly introduced or recurring accessibility findings, and tracks remediation over time.

04 · All detected findings

High

Text has insufficient colour contrast

WCAG 1.4.3 (AA)189 instances5 inspected pages

Text and background colours do not meet the minimum contrast ratio, reducing legibility.

Why it matters

Text and background colours do not meet the minimum contrast ratio, reducing legibility.

Recommended correction

To fix this issue, increase the contrast between the text color and the background color. You can do this by changing the text color or the background color to have a higher contrast ratio. Aim for a contrast ratio of at least 4.5:1 for normal text.

View 189 affected elements
Component · Ref Y0MY80
Affected pagehttps://vem.lu/test-1/
Element.elementor-element-554df711 > p
Accessible name© 2026 VEM Agency. Tous droits réservés.
Markup
<p>© 2026 VEM Agency. Tous droits réservés.</p>
Affected pages/ /category/uncategorized /contact /service-ads /test-1
Component · Ref JX7HFN
Affected pagehttps://vem.lu/contact/
Element.elementor-element-43e67e4 > .lbl
Accessible nameE-mail
Markup
<p class="lbl">E-mail</p>
Affected pages/contact /service-ads
Component · Ref SBHNOJ
Affected pagehttps://vem.lu/
Elementdiv:nth-child(1) > div[data-tl-card=""] > p
Accessible nameComprendre votre activité, votre marché et vos objectifs.
Markup
<p style="margin-top:8px;font-size:15.5px;line-height:1.55;color:rgba(255,255,255,0.55);font-weight:300;max-width:42ch;">Comprendre votre activité, votre marché et vos objectifs.</p>
Component · Ref E4WHT1
Affected pagehttps://vem.lu/service-ads/
Element.elementor-element-712d769 > .n
Accessible name05
Markup
<p class="n">05</p>
Component · Ref 8VHFY7
Affected pagehttps://vem.lu/
Element.elementor-element-36f3a821 > h6
Accessible namePack
Markup
<h6 class="elementor-heading-title elementor-size-default">Pack</h6>
Component · Ref Q7349Q
Affected pagehttps://vem.lu/
Element.elementor-element-7bebde76 > h2
Accessible nameOn construit la présence qui fait grandir votre entreprise.
Markup
<h2 class="elementor-heading-title elementor-size-default">On construit la présence qui fait <em>grandir</em> votre entreprise.</h2>
Affected pages/ /contact /service-ads
Component · Ref LOS2NF
Affected pagehttps://vem.lu/contact/
Elementh1
Accessible nameParlons de votre projet.
Markup
<h1 class="elementor-heading-title elementor-size-default">Parlons de votre <em>projet</em>.</h1>
Affected pages/contact /service-ads
Component · Ref M4HGDM
Affected pagehttps://vem.lu/contact/
Elementem
Accessible nameprojet
Markup
<em>projet</em>
Affected pages/contact /service-ads
Component · Ref LRSR3C
Affected pagehttps://vem.lu/
Element.elementor-element-7cf693c1[data-id="7cf693c1"][data-gsx-clone="1"] > .elementor-element-7416792c.gsx-c89[data-id="7416792c"] > .elementor-element-1f99b048.e-child[data-id="1f99b048"] > .elementor-element-20d9a7ae.e-child[data-id="20d9a7ae"] > .elementor-element-1618ee3d.gsx-c87[data-id="1618ee3d"] > .tst-name
Accessible nameNadia B.
Markup
<span class="tst-name">Nadia B.</span>
Component · Ref GYSDH1
Affected pagehttps://vem.lu/
Element.elementor-element-222e0d4e[data-id="222e0d4e"][data-gsx-clone="1"] > .elementor-element-66928d09.gsx-c77[data-id="66928d09"] > .elementor-element-1469a401.e-child[data-id="1469a401"] > .elementor-element-7aee4089.e-child[data-id="7aee4089"] > .elementor-element-7c1e6d69.gsx-c75[data-id="7c1e6d69"] > .tst-name
Accessible nameSophie L.
Markup
<span class="tst-name">Sophie L.</span>
Component · Ref VCDUDK
Affected pagehttps://vem.lu/
Element.elementor-element-1ca6bb09[data-id="1ca6bb09"][data-gsx-clone="1"] > .elementor-element-65d24b82.gsx-c71[data-id="65d24b82"] > .elementor-element-2a46e34d.e-child[data-id="2a46e34d"] > .elementor-element-6f9ded3.e-child[data-id="6f9ded3"] > .elementor-element-7fa18da8.gsx-c70[data-id="7fa18da8"] > .tst-role
Accessible nameGérant · Atelier artisanal
Markup
<span class="tst-role">Gérant · Atelier artisanal</span>
Component · Ref 5Q59Z5
Affected pagehttps://vem.lu/
Element.elementor-element-7cf693c1[data-id="7cf693c1"][data-gsx-clone="1"] > .elementor-element-21fbfdb7.e-child[data-id="21fbfdb7"] > .elementor-element-680fcc89.gsx-c85[data-id="680fcc89"] > blockquote
Accessible name“Professionnels, réactifs et à l’écoute. Une vraie présence digitale, pas juste une carte de visite. 5/5 sans hésiter.”
Markup
<blockquote>“Professionnels, réactifs et à l’écoute. Une vraie présence digitale, pas juste une carte de visite. 5/5 sans hésiter.”</blockquote>
Component · Ref GRR2UF
Affected pagehttps://vem.lu/
Element.elementor-element-2adc378c > .pack-num
Accessible name01
Markup
<p class="pack-num">01</p>
Component · Ref HF9LO2
Affected pagehttps://vem.lu/
Element.elementor-element-1ca6bb09.tst-card[data-id="1ca6bb09"]:nth-child(1) > .elementor-element-5d60eb1e.e-child[data-id="5d60eb1e"] > .elementor-element-4b63f88a.gsx-c66[data-id="4b63f88a"] > .tst-stars
Accessible name★★★★★
Markup
<p class="tst-stars">★★★★★</p>
Component · Ref 45ZY75
Affected pagehttps://vem.lu/
Element.elementor-element-7cf693c1[data-id="7cf693c1"][data-gsx-clone="1"] > .elementor-element-7416792c.gsx-c89[data-id="7416792c"] > .elementor-element-1f99b048.e-child[data-id="1f99b048"] > .elementor-element-91fabca.e-child[data-id="91fabca"] > .elementor-element-421e1e25.gsx-c88[data-id="421e1e25"] > .tst-role
Accessible nameFondatrice · Commerce local
Markup
<span class="tst-role">Fondatrice · Commerce local</span>
Component · Ref 5Q5A5J
Affected pagehttps://vem.lu/
Element.elementor-element-1ca6bb09[data-id="1ca6bb09"][data-gsx-clone="1"] > .elementor-element-594d62bd.e-child[data-id="594d62bd"] > .elementor-element-2f6682fb.gsx-c67[data-id="2f6682fb"] > blockquote
Accessible name“VEM a remis notre présence en ligne à niveau : nouveau site, fiche Google optimisée et des publications régulières. On reçoit enfin des demandes qui viennent du web.”
Markup
<blockquote>“VEM a remis notre présence en ligne à niveau : nouveau site, fiche Google optimisée et des publications régulières. On reçoit enfin des demandes qui viennent du web.”</blockquote>
Component · Ref 5Q59C1
Affected pagehttps://vem.lu/
Element.elementor-element-6d7369c0[data-id="6d7369c0"][data-gsx-clone="1"] > .elementor-element-35bfed05.e-child[data-id="35bfed05"] > .elementor-element-13bce6ac.gsx-c79[data-id="13bce6ac"] > blockquote
Accessible name“Approche claire et orientée résultats. On a structuré le site puis activé les Ads sur le bon canal. Les rendez-vous qualifiés ont suivi.”
Markup
<blockquote>“Approche claire et orientée résultats. On a structuré le site puis activé les Ads sur le bon canal. Les rendez-vous qualifiés ont suivi.”</blockquote>
Component · Ref O9TNUW
Affected pagehttps://vem.lu/
Element.hl-invert
Accessible nameplus de business
Markup
<span class="hl-invert">plus de business</span>
Component · Ref MH7QGQ
Affected pagehttps://vem.lu/
Element.elementor-element-6d7369c0[data-id="6d7369c0"][data-gsx-clone="1"] > .elementor-element-63da2782.gsx-c83[data-id="63da2782"] > .elementor-element-2fdd015c.e-child[data-id="2fdd015c"] > .elementor-element-39e4f259.e-child[data-id="39e4f259"] > .elementor-element-37c0b68.gsx-c81[data-id="37c0b68"] > .tst-name
Accessible nameThomas R.
Markup
<span class="tst-name">Thomas R.</span>
Component · Ref X3OS9D
Affected pagehttps://vem.lu/service-ads/
Element.elementor-element-c398880 > .txt
Accessible name1 canal publicitaire activé.
Markup
<p class="txt" style="margin-top:20px;font-size:16px;line-height:1.55;color:rgba(255,255,255,0.85);font-weight:400;">1 canal publicitaire activé.</p>
Component · Ref 5Q59C7
Affected pagehttps://vem.lu/
Element.elementor-element-222e0d4e[data-id="222e0d4e"][data-gsx-clone="1"] > .elementor-element-595793a.e-child[data-id="595793a"] > .elementor-element-1d6e2d7b.gsx-c73[data-id="1d6e2d7b"] > blockquote
Accessible name“Les reels ont changé la donne pour ma notoriété locale. Tournage, montage, diffusion : tout est géré. Mes clients me disent qu’ils m’ont vue passer.”
Markup
<blockquote>“Les reels ont changé la donne pour ma notoriété locale. Tournage, montage, diffusion : tout est géré. Mes clients me disent qu’ils m’ont vue passer.”</blockquote>
Component · Ref 3JBDLY
Affected pagehttps://vem.lu/
Element.elementor-element-6d7369c0[data-id="6d7369c0"][data-gsx-clone="1"] > .elementor-element-63da2782.gsx-c83[data-id="63da2782"] > .elementor-element-2fdd015c.e-child[data-id="2fdd015c"] > .elementor-element-bde79ea.e-child[data-id="bde79ea"] > .elementor-element-7d8715b7.gsx-c82[data-id="7d8715b7"] > .tst-role
Accessible nameDirecteur · Entreprise de services
Markup
<span class="tst-role">Directeur · Entreprise de services</span>
Component · Ref M4HG97
Affected pagehttps://vem.lu/
Element.elementor-element-7bebde76 > h2 > em
Accessible namegrandir
Markup
<em>grandir</em>
Component · Ref 3I8UAA
Affected pagehttps://vem.lu/
Element.elementor-element-222e0d4e[data-id="222e0d4e"][data-gsx-clone="1"] > .elementor-element-66928d09.gsx-c77[data-id="66928d09"] > .elementor-element-1469a401.e-child[data-id="1469a401"] > .elementor-element-1ba8952e.e-child[data-id="1ba8952e"] > .elementor-element-721cd686.gsx-c76[data-id="721cd686"] > .tst-role
Accessible nameAvocate · Cabinet indépendant
Markup
<span class="tst-role">Avocate · Cabinet indépendant</span>
Component · Ref XCC8SP
Affected pagehttps://vem.lu/
Element.elementor-element-1ca6bb09[data-id="1ca6bb09"][data-gsx-clone="1"] > .elementor-element-5d60eb1e.e-child[data-id="5d60eb1e"] > .elementor-element-4b63f88a.gsx-c66[data-id="4b63f88a"] > .tst-stars
Accessible name★★★★★
Markup
<p class="tst-stars">★★★★★</p>

Showing 25 representative examples · 13 more affected elements not shown

High

Hidden elements can still receive keyboard focus

WCAG 2.4.3 (A)100 instances5 inspected pages

An element is not visible but remains in the tab order, so a sighted keyboard user loses track of focus when it lands there.

Why it matters

An element is not visible but remains in the tab order, so a sighted keyboard user loses track of focus when it lands there.

Recommended correction

To fix this issue, ensure that the hidden element is removed from the tab order by setting its 'tabindex' attribute to '-1' or by using a technique like 'display: none' or 'visibility: hidden' to make it completely invisible. Additionally, verify that all interactive elements are visible when they receive focus.

View 100 affected elements
Component · Ref ANLN7S
Affected pagehttps://vem.lu/
Elementdiv#vemPanel > div:nth-of-type(1) > a:nth-of-type(1)
Accessible namePack 01 Présence Des bases solides et crédibles. Découvrir →
Markup
<a class="elementor-element elementor-element-39cf3a0b e-con-full vem-pack-card e-flex e-con e-child" data-id="39cf3a0b" data-element_type="container" data-e-type="container" href="https://vem.lu/pack-presence/">
		<div class="elementor-element elementor-element-753308fb e-con-full e-flex e-con e-child" data-id="753308fb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-7356435b gsx-s1 gsx-imgbox elementor-widget elementor-widget-image" data-id="7356435b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
…
Affected pages/ /category/uncategorized /contact /service-ads /test-1
Component · Ref TIG0NC
Affected pagehttps://vem.lu/
Elementdiv#vemMenu > div:nth-of-type(2) > div:nth-of-type(3) > div > div > a
Accessible namePRENDRE RDV
Markup
<a class="elementor-button elementor-button-link elementor-size-sm" href="/contact">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">PRENDRE RDV</span>
					</span>
					</a>
Affected pages/ /category/uncategorized /contact /service-ads /test-1
Component · Ref GFMPP5
Affected pagehttps://vem.lu/
Elementdiv:nth-of-type(3) > div:nth-of-type(2) > div:nth-of-type(1) > div > p > a
Accessible namePrésence
Markup
<a href="/pack-presence">Présence</a>
Affected pages/ /category/uncategorized /contact /service-ads /test-1
High

Page has no main landmark

WCAG 1.3.1 (A)6 instances3 inspected pages

No <main> or role=main region is present, so screen reader users cannot jump to primary content.

Why it matters

No <main> or role=main region is present, so screen reader users cannot jump to primary content.

Recommended correction

Add a <main> element or an element with role="main" to the page to define the primary content region, allowing screen reader users to jump to it.

View 6 affected elements
Component · Ref 85VCGL
Affected pagehttps://vem.lu/
Elementhtml > body
Accessible nameAller au contenu #vem-chargement{ /* Fond du voile : le noir du site. Mettez « transparent » si vous preferez voir la page apparaitre derriere le trace. */ --vem-fond:#0a0a0a; /* Largeur du logo. */ --vem-taille:clamp(190px,36vw,340px); position:fixed; inset:0; z-index:2147483000; /* au-dessus de tout, barre d'admin comprise */ display:flex; align-items:center; justify-content:center; background:var(--vem-fond); opacity:1; transition:opacity .55s ease; /* FILET DE SECURITE SANS JAVASCRIPT : au bout de 6 secondes, le voile s'efface tout seul. Meme si le script ne s'executait pas (erreur d'un autre plugin, minification agressive), le site ne peut pas rester masque. En marche normale il est retire bien avant. */ animation:vemFiletDeSecurite 1ms linear 6s forwards; } @keyframes vemFiletDeSecurite{ to{opacity:0;visibility:hidden;pointer-events:none;} } /* Sortie pilotee par le script. */ #vem-chargement.vem-parti{opacity:0;pointer-events:none;} #vem-chargement .vem-chargement-logo{width:var(--vem-taille);max-width:86vw;} #vem-chargement svg{display:block;width:100%;height:auto;} /* Titre reserve aux lecteurs d'ecran. */ #vem-chargement .vem-sr-only{ position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0; clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap; } /* Pendant le chargement, la page ne defile pas sous le voile. */ body.vem-en-chargement{overflow:hidden;} /* Mouvement reduit : pas de trace anime, le logo apparait directement rempli (le script lit cette meme preference et n'anime pas). */ @media (prefers-reduced-motion:reduce){ #vem-chargement .vem-trace, #vem-chargement .vem-trace *{fill:#ffffff !important;} } <style>#vem-chargement{display:none !important;}</style> (function(){ var voile=document.getElementById('vem-chargement'); if(!voile)return; /* L'animation ne se joue qu'a l'ARRIVEE sur le site : une fois par visite, pas a chaque page consultee. Passez a false pour la rejouer sur toutes les pages. */ var UNE_FOIS_PAR_VISITE=true; /* Rythme du trace : depart decale de chaque lettre, duree du trait, puis fondu du remplissage — les valeurs de votre maquette. */ var PAS=120, TRAIT=1100, REMPLISSAGE=500; var DUREE_MAXI=4500; /* le site n'est jamais masque plus longtemps */ function retirer(){ if(voile&&voile.parentNode)voile.parentNode.removeChild(voile); if(document.body)document.body.classList.remove('vem-en-chargement'); } /* Dans l'editeur Elementor, aucun voile : il masquerait la zone de travail. */ var b=document.body; if(b&&(b.classList.contains('elementor-editor-active')|| b.classList.contains('elementor-editor-preview'))){retirer();return;} if(UNE_FOIS_PAR_VISITE){ try{ if(sessionStorage.getItem('vemChargementVu')){retirer();return;} sessionStorage.setItem('vemChargementVu','1'); }catch(e){/* navigation privee : on affiche simplement l'animation */} } /* Le voile est deplace a la racine du <body>. Indispensable : si un conteneur parent porte un « transform », un « filter » ou un « will-change » — courant sur un en-tete collant — il devient le repere des elements en position fixe et le voile ne couvrirait plus l'ecran. */ if(b&&voile.parentNode!==b)b.appendChild(voile); if(b)b.classList.add('vem-en-chargement'); /* ----- Le trace : chaque lettre se dessine, puis se remplit. ----- */ var lettres=voile.querySelectorAll('.vem-trace > *'); var mouvementReduit=window.matchMedia&& window.matchMedia('(prefers-reduced-motion: reduce)').matches; var dureeAnimation=900; if(mouvementReduit||!lettres.length){ /* Pas de trace : le CSS a deja rempli le logo, courte pause et on part. */ }else{ dureeAnimation=(lettres.length-1)*PAS+TRAIT+REMPLISSAGE+250; for(var i=0;i<lettres.length;i++){ (function(p,i){ var len=300; try{if(p.getTotalLength)len=p.getTotalLength();}catch(e){} p.style.transition='none'; p.style.fill='transparent'; p.style.strokeDasharray=len; p.style.strokeDashoffset=len; p.getBoundingClientRect(); /* pose l'etat de depart avant d'animer */ var d=i*PAS; p.style.transition='stroke-dashoffset '+(TRAIT/1000)+'s ease '+(d/1000)+'s, ' +'fill '+(REMPLISSAGE/1000)+'s ease '+((d+TRAIT-100)/1000)+'s'; p.style.strokeDashoffset='0'; p.style.fill='#ffffff'; })(lettres[i],i); } } var fini=false, depart=Date.now(); function partir(){ if(fini)return; fini=true; voile.classList.add('vem-parti'); if(b)b.classList.remove('vem-en-chargement'); setTimeout(retirer,700); /* apres la transition d'opacite */ } function quandPret(){ /* On attend la fin du trace, meme si la page etait deja en cache. */ setTimeout(partir,Math.max(0,dureeAnimation-(Date.now()-depart))); } if(document.readyState==='complete')quandPret(); else window.addEventListener('load',quandPret); /* Securite : meme si une ressource exterieure ne repond jamais, le voile s'efface. */ setTimeout(partir,DUREE_MAXI); })(); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap'); .gsx-root .elementor-widget-html,.gsx-root .elementor-widget-html>.elementor-widget-container,.gsx-root .elementor-widget-image,.gsx-root .elementor-widget-image>.elementor-widget-container,.gsx-root .e-con>.e-con-inner{display:contents}.gsx-root .elementor-widget-image.gsx-imgbox{display:block}.gsx-root :where(.elementor-widget-image.gsx-imgbox)>:where(.elementor-widget-container),.gsx-root :where(.elementor-widget-image.gsx-imgbox) img{width:inherit;height:inherit;min-width:inherit;min-height:inherit;max-height:inherit;aspect-ratio:inherit;object-fit:inherit;object-position:inherit;border-radius:inherit}.gsx-root :where(.elementor-widget-image.gsx-imgbox) img{display:block}.gsx-root :where(.e-con:has(>.elementor-widget-image.gsx-imgbox)){height:100%}.gsx-root .elementor-widget{margin-bottom:0}.gsx-root :where(.elementor-widget-heading) .elementor-heading-title{font-size:inherit;font-weight:inherit;font-family:inherit;line-height:inherit;letter-spacing:inherit}.gsx-root{overflow-x:clip}.gsx-root.e-con:has(>.elementor-background-overlay)>:not(.elementor-background-overlay),.gsx-root .e-con:has(>.elementor-background-overlay)>:not(.elementor-background-overlay){position:relative;z-index:1}.gsx-root .elementor-background-overlay{z-index:0}.gsx-root.gsx-root.gsx-root .elementor-widget-text-editor :where(p,ul,ol,li,div,blockquote){font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;line-height:inherit;letter-spacing:inherit}.gsx-root .elementor-widget-text-editor :where(p,ul,ol,li,div,blockquote){color:inherit}.gsx-root.gsx-root :where(.e-con){--width:auto;--gap:0;--padding-block-start:0;--padding-block-end:0;--padding-inline-start:0;--padding-inline-end:0;--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0}.gsx-root.gsx-root :where(.elementor-widget){width:auto;max-width:100%}.gsx-root.gsx-root :where(.elementor-widget-button){min-width:0}.gsx-root :where(.e-con){position:static}.gsx-root .elementor-widget{position:static}.gsx-root .elementor-widget-accordion .elementor-accordion{display:contents}.gsx-root :where(.elementor-accordion-item,.elementor-tab-title,.elementor-tab-content){border:none;background:transparent;padding:0;margin:0}.gsx-root .elementor-accordion-title{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit}.gsx-root .elementor-accordion-icon{display:none}.gsx-root .elementor-widget-accordion .elementor-tab-title{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.gsx-root .elementor-widget-accordion .elementor-tab…[truncated by Evolize: exceeded D1 value limit]
Markup
<body class="home wp-singular page-template page-template-elementor_header_footer page page-id-216 wp-embed-responsive wp-theme-hello-elementor hello-elementor-default elementor-default elementor-template-full-width elementor-kit-5 elementor-page elementor-page-216" data-elementor-device-mode="desktop">


<a class="skip-link screen-reader-text" href="#content">Aller au contenu</a>

		<header data-elementor-type="header" data-elementor-id="466" class="elementor elementor-466 elementor-location-header" data-elementor-post-type="elementor_library">
			<div class="elementor-element elementor-eleme…
Affected pages/ /contact /service-ads
High

Elements must only use supported ARIA attributes

WCAG 4.1.2 (A)2 instances1 inspected page

Elements must only use supported ARIA attributes

Why it matters

Elements must only use supported ARIA attributes

Recommended correction

Ensure that only supported ARIA attributes are used for the element with id 'elementor-tab-title-3711'. The 'aria-selected' attribute is not a valid attribute for a 'button' role. Consider removing or replacing it with a supported attribute.

View 2 affected elements
Component · Ref WEKU0L
Affected pagehttps://vem.lu/contact/
Element#elementor-tab-title-3711
Accessible nameCombien de temps avant de voir des premiers résultats ?
Rolebutton
Markup
<div id="elementor-tab-title-3711" class="elementor-tab-title elementor-active" data-tab="1" role="button" aria-controls="elementor-tab-content-3711" aria-expanded="true" tabindex="0" aria-selected="true">
High

Interactive controls are not keyboard-accessible

WCAG 2.1.1 (A)10 instances1 inspected page

A control that responds to clicks (a clickable element or an ARIA widget) cannot receive keyboard focus, so keyboard and switch users cannot operate it.

Why it matters

A control that responds to clicks (a clickable element or an ARIA widget) cannot receive keyboard focus, so keyboard and switch users cannot operate it.

Recommended correction

Add a tabindex attribute to the interactive element or ensure it can receive keyboard focus through other means, such as using a native HTML button element instead of a div with role="button". Ensure that all interactive elements can be accessed and operated using a keyboard.

View 10 affected elements
Component · Ref QBZUIJ
Affected pagehttps://vem.lu/contact/
Elementdiv#elementor-tab-title-3712
Accessible nameSuis-je engagé sur une longue durée ?
Rolebutton
Markup
<div id="elementor-tab-title-3712" class="elementor-tab-title" data-tab="2" role="button" aria-controls="elementor-tab-content-3712" aria-expanded="false">
												<a class="elementor-accordion-title" tabindex="0">Suis-je engagé sur une longue durée ?</a>
					</div>
High

Scrollable region must have keyboard access

WCAG 2.1.1 (A)2 instances1 inspected page

Scrollable region must have keyboard access

Why it matters

Scrollable region must have keyboard access

Recommended correction

Review the affected element and correct the reported accessibility issue.

View 2 affected elements
Component · Ref QCTLGY
Affected pagehttps://vem.lu/
Element.elementor-element-5000ab13
Accessible name★★★★★ “VEM a remis notre présence en ligne à niveau : nouveau site, fiche Google optimisée et des publications régulières. On reçoit enfin des demandes qui viennent du web.” M.K Marc K. Gérant · Atelier artisanal ★★★★★ “Les reels ont changé la donne pour ma notoriété locale. Tournage, montage, diffusion : tout est géré. Mes clients me disent qu’ils m’ont vue passer.” S.L Sophie L. Avocate · Cabinet indépendant ★★★★★ “Approche claire et orientée résultats. On a structuré le site puis activé les Ads sur le bon canal. Les rendez-vous qualifiés ont suivi.” T.R Thomas R. Directeur · Entreprise de services ★★★★★ “Professionnels, réactifs et à l’écoute. Une vraie présence digitale, pas juste une carte de visite. 5/5 sans hésiter.” N.B Nadia B. Fondatrice · Commerce local (function(){ if(document.body&&document.body.classList.contains('elementor-editor-active'))return; // édition : pas d'anim var rail=document.querySelector('.tst-rail');if(!rail)return; var originals=[].slice.call(rail.children).filter(function(n){return n.nodeType===1;}); if(originals.length<2)return; // Clones créés à l'exécution -> la structure Elementor ne garde QUE les // cartes d'origine (100% éditables) ; les clones assurent la boucle continue. originals.forEach(function(c){var k=c.cloneNode(true);k.setAttribute('aria-hidden','true');k.setAttribute('data-gsx-clone','1');rail.appendChild(k);}); rail.style.scrollSnapType='none'; var half=0; function measure(){half=0;var st=getComputedStyle(rail);var gap=parseFloat(st.columnGap||st.gap||0)||0;originals.forEach(function(c){half+=c.getBoundingClientRect().width+gap;});} measure();window.addEventListener('resize',function(){measure();}); var paused=false,speed=0.5,pos=0; // pos : accumulateur flottant (scrollLeft s'arrondit) var lastWritten=-1,resumeTimer=null; function suspend(delay){ // met en pause et REPART de la position reelle paused=true; if(resumeTimer)clearTimeout(resumeTimer); resumeTimer=setTimeout(function(){pos=rail.scrollLeft;if(half>0){while(pos>=half)pos-=half;while(pos<0)pos+=half;}paused=false;},delay); } rail.addEventListener('mouseenter',function(){paused=true;if(resumeTimer)clearTimeout(resumeTimer);}); rail.addEventListener('mouseleave',function(){suspend(0);}); /* TACTILE : le navigateur gere lui-meme le defilement. On ecoute donc le defilement REEL du rail : tout mouvement qui ne vient pas de l'animation devient la nouvelle position de reference — le geste de l'utilisateur n'est jamais annule, et la lecture automatique reprend la ou il s'est arrete (au lieu de revenir au premier avis). */ rail.addEventListener('scroll',function(){ if(lastWritten>=0&&Math.abs(rail.scrollLeft-lastWritten)<=2)return; // notre propre defilement pos=rail.scrollLeft; suspend(1200); },{passive:true}); rail.addEventListener('touchstart',function(){paused=true;if(resumeTimer)clearTimeout(resumeTimer);},{passive:true}); rail.addEventListener('touchend',function(){suspend(1200);},{passive:true}); rail.addEventListener('wheel',function(){suspend(1200);},{passive:true}); /* SOURIS : glisser-deposer (le tactile est laisse au navigateur). */ var down=false,moved=false,startX=0,startScroll=0; rail.addEventListener('pointerdown',function(e){ if(e.pointerType!=='mouse')return; down=true;paused=true;moved=false;startX=e.clientX;startScroll=rail.scrollLeft; if(resumeTimer)clearTimeout(resumeTimer); try{rail.setPointerCapture(e.pointerId);}catch(err){} }); rail.addEventListener('pointermove',function(e){ if(!down)return;var dx=e.clientX-startX; if(Math.abs(dx)>4&&!moved){moved=true;rail.classList.add('dragging');} if(moved){rail.scrollLeft=startScroll-dx;pos=rail.scrollLeft;lastWritten=rail.scrollLeft;} }); function end(e){ if(!down)return;down=false;rail.classList.remove('dragging'); pos=rail.scrollLeft;suspend(700); try{rail.releasePointerCapture(e.pointerId);}catch(err){} } rail.addEventListener('pointerup',end);rail.addEventListener('pointercancel',end); function tick(){ if(!paused&&half>0){ pos+=speed; if(pos>=half)pos-=half;else if(pos<0)pos+=half; rail.scrollLeft=pos;lastWritten=rail.scrollLeft; } requestAnimationFrame(tick); } requestAnimationFrame(tick); })(); ★★★★★ “VEM a remis notre présence en ligne à niveau : nouveau site, fiche Google optimisée et des publications régulières. On reçoit enfin des demandes qui viennent du web.” M.K Marc K. Gérant · Atelier artisanal ★★★★★ “Les reels ont changé la donne pour ma notoriété locale. Tournage, montage, diffusion : tout est géré. Mes clients me disent qu’ils m’ont vue passer.” S.L Sophie L. Avocate · Cabinet indépendant ★★★★★ “Approche claire et orientée résultats. On a structuré le site puis activé les Ads sur le bon canal. Les rendez-vous qualifiés ont suivi.” T.R Thomas R. Directeur · Entreprise de services ★★★★★ “Professionnels, réactifs et à l’écoute. Une vraie présence digitale, pas juste une carte de visite. 5/5 sans hésiter.” N.B Nadia B. Fondatrice · Commerce local (function(){ if(document.body&&document.body.classList.contains('elementor-editor-active'))return; // édition : pas d'anim var rail=document.querySelector('.tst-rail');if(!rail)return; var originals=[].slice.call(rail.children).filter(function(n){return n.nodeType===1;}); if(originals.length<2)return; // Clones créés à l'exécution -> la structure Elementor ne garde QUE les // cartes d'origine (100% éditables) ; les clones assurent la boucle continue. originals.forEach(function(c){var k=c.cloneNode(true);k.setAttribute('aria-hidden','true');k.setAttribute('data-gsx-clone','1');rail.appendChild(k);}); rail.style.scrollSnapType='none'; var half=0; function measure(){half=0;var st=getComputedStyle(rail);var gap=parseFloat(st.columnGap||st.gap||0)||0;originals.forEach(function(c){half+=c.getBoundingClientRect().width+gap;});} measure();window.addEventListener('resize',function(){measure();}); var pause…[truncated by Evolize: exceeded D1 value limit]
Markup
<div class="elementor-element elementor-element-5000ab13 e-con-full tst-rail e-flex e-con e-child" data-id="5000ab13" data-element_type="container" data-e-type="container" style="scroll-snap-type: none;">
Medium

Touch targets are too small on mobile

WCAG 2.5.8 (AA)30 instances5 inspected pages

Interactive controls are smaller than the 24×24px minimum target size, making them hard to activate reliably by touch.

Why it matters

Interactive controls are smaller than the 24×24px minimum target size, making them hard to activate reliably by touch.

Recommended correction

To improve the accessibility of the touch target, increase its size to at least 24x24 pixels to make it easier for users to activate by touch on mobile devices. Consider adding padding or increasing the font size of the interactive element to achieve the minimum size requirement.

View 30 affected elements
Component · Ref VMFH01
Affected pagehttps://vem.lu/
Elementhtml > body > a
Accessible nameAller au contenu
Markup
<a class="skip-link screen-reader-text" href="#content">Aller au contenu</a>
Affected pages/ /category/uncategorized /contact /service-ads /test-1
Component · Ref P5PXGR
Affected pagehttps://vem.lu/
Elementdiv#vemMenu > div:nth-of-type(2) > div:nth-of-type(1) > div > div > button
Accessible nameOuvrir le menu
Markup
<button class="vem-burger" type="button" data-open="" aria-label="Ouvrir le menu">
        <span class="bars"><span></span><span></span><span></span></span>
        <span class="vem-menu-label">MENU</span>
      </button>
Affected pages/ /category/uncategorized /contact /service-ads /test-1
Component · Ref YJKYPQ
Affected pagehttps://vem.lu/
Elementdiv > div:nth-of-type(3) > div:nth-of-type(2) > ul > li:nth-of-type(1) > a
Accessible nameMentions légales
Markup
<a href="#">

											<span class="elementor-icon-list-text">Mentions légales</span>
											</a>
Affected pages/ /category/uncategorized /contact /service-ads /test-1
Component · Ref 87N5A4
Affected pagehttps://vem.lu/category/uncategorized/
Elementmain#content > div > article:nth-of-type(2) > a
Accessible nameRéalisation VEM · réseaux sociaux et contenu
Markup
<a href="https://vem.lu/test-1/"><img width="800" height="1000" src="https://vem.lu/wp-content/uploads/2026/07/social-1-819x1024.webp" class="attachment-large size-large wp-post-image" alt="Réalisation VEM · réseaux sociaux et contenu" decoding="async" srcset="https://vem.lu/wp-content/uploads/2026/07/social-1-819x1024.webp 819w, https://vem.lu/wp-content/uploads/2026/07/social-1-240x300.webp 240w, https://vem.lu/wp-content/uploads/2026/07/social-1-768x960.webp 768w, https://vem.lu/wp-content/uploads/2026/07/social-1.webp 1080w" sizes="(max-width: 800px) 100vw, 800px"></a>
Component · Ref XU4R8M
Affected pagehttps://vem.lu/test-1/
Elementinput#wp-comment-cookies-consent
Markup
<input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes">
Medium

Content sits outside any landmark region

WCAG 1.3.1 (A)6 instances3 inspected pages

Meaningful content is not contained in a landmark (header/nav/main/footer/aside), so assistive-technology users cannot reach it via landmark navigation.

Why it matters

Meaningful content is not contained in a landmark (header/nav/main/footer/aside), so assistive-technology users cannot reach it via landmark navigation.

Recommended correction

Wrap the content in a landmark region such as a header, nav, main, footer, or aside to enable assistive technology users to reach it via landmark navigation. For example, wrap the h2 element in a main element: <main><h2 class="elementor-heading-title elementor-size-default">Agence marketing au Luxembourg</h2></main>

View 6 affected elements
Component · Ref FP6RXX
Affected pagehttps://vem.lu/
Elementbody > div > div:nth-of-type(1) > div > div:nth-of-type(2) > h2
Accessible nameAgence marketing au Luxembourg
Markup
<h2 class="elementor-heading-title elementor-size-default">Agence marketing au Luxembourg</h2>
Affected pages/ /contact /service-ads
Medium

Form fields use placeholder text as the only label

WCAG 1.3.1 (A)2 instances1 inspected page

Fields rely on placeholder text instead of a real label. The placeholder disappears once the user types, and it is not exposed as a programmatic label.

Why it matters

Fields rely on placeholder text instead of a real label. The placeholder disappears once the user types, and it is not exposed as a programmatic label.

Recommended correction

Add a visible and programmatically accessible label to the form field, using the 'label' HTML element and the 'for' attribute to associate it with the field.

View 2 affected elements
Component · Ref PNAS2Q
Affected pagehttps://vem.lu/contact/
Elementtextarea#kf-zone_de_texte_78-682
Markup
<textarea id="kf-zone_de_texte_78-682" name="fields[zone_de_texte_78]" class="kaptyform__input" rows="4" placeholder="Écrivez votre message..."></textarea>
Low

Low-quality alternative text

WCAG 1.1.1 (A)30 instances5 inspected pages

Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.

Why it matters

Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.

Recommended correction

Update the alt text to provide a clear description of the image content, rather than duplicating text across unrelated images. Consider describing the key elements of the image, such as people, objects, or scenes, to help users who cannot see the image understand its purpose.

View 30 affected elements
Component · Ref 75O983
Affected pagehttps://vem.lu/
Elementdiv:nth-of-type(2) > div:nth-of-type(2) > div > div > a > img
Markup
<img fetchpriority="high" width="1000" height="500" src="https://vem.lu/wp-content/uploads/2026/07/Design-sans-titre-35-1.avif" class="attachment-full size-full wp-image-764" alt="VEM Agency, agence marketing au Luxembourg" srcset="https://vem.lu/wp-content/uploads/2026/07/Design-sans-titre-35-1.avif 1000w, https://vem.lu/wp-content/uploads/2026/07/Design-sans-titre-35-1-300x150.avif 300w, https://vem.lu/wp-content/uploads/2026/07/Design-sans-titre-35-1-768x384.avif 768w" sizes="(max-width: 1000px) 100vw, 1000px">
Affected pages/ /category/uncategorized /contact /service-ads /test-1
Low

Page has no level-one heading

WCAG 1.3.1 (A)4 instances2 inspected pages

The page exposes no <h1>, so its topic is not conveyed in the heading structure.

Why it matters

The page exposes no <h1>, so its topic is not conveyed in the heading structure.

Recommended correction

Add a single descriptive <h1> that names the page's primary purpose.

View 4 affected elements
Component · Ref WUU6TU
Affected pagehttps://vem.lu/
Elementhtml > body
Accessible nameAller au contenu #vem-chargement{ /* Fond du voile : le noir du site. Mettez « transparent » si vous preferez voir la page apparaitre derriere le trace. */ --vem-fond:#0a0a0a; /* Largeur du logo. */ --vem-taille:clamp(190px,36vw,340px); position:fixed; inset:0; z-index:2147483000; /* au-dessus de tout, barre d'admin comprise */ display:flex; align-items:center; justify-content:center; background:var(--vem-fond); opacity:1; transition:opacity .55s ease; /* FILET DE SECURITE SANS JAVASCRIPT : au bout de 6 secondes, le voile s'efface tout seul. Meme si le script ne s'executait pas (erreur d'un autre plugin, minification agressive), le site ne peut pas rester masque. En marche normale il est retire bien avant. */ animation:vemFiletDeSecurite 1ms linear 6s forwards; } @keyframes vemFiletDeSecurite{ to{opacity:0;visibility:hidden;pointer-events:none;} } /* Sortie pilotee par le script. */ #vem-chargement.vem-parti{opacity:0;pointer-events:none;} #vem-chargement .vem-chargement-logo{width:var(--vem-taille);max-width:86vw;} #vem-chargement svg{display:block;width:100%;height:auto;} /* Titre reserve aux lecteurs d'ecran. */ #vem-chargement .vem-sr-only{ position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0; clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap; } /* Pendant le chargement, la page ne defile pas sous le voile. */ body.vem-en-chargement{overflow:hidden;} /* Mouvement reduit : pas de trace anime, le logo apparait directement rempli (le script lit cette meme preference et n'anime pas). */ @media (prefers-reduced-motion:reduce){ #vem-chargement .vem-trace, #vem-chargement .vem-trace *{fill:#ffffff !important;} } <style>#vem-chargement{display:none !important;}</style> (function(){ var voile=document.getElementById('vem-chargement'); if(!voile)return; /* L'animation ne se joue qu'a l'ARRIVEE sur le site : une fois par visite, pas a chaque page consultee. Passez a false pour la rejouer sur toutes les pages. */ var UNE_FOIS_PAR_VISITE=true; /* Rythme du trace : depart decale de chaque lettre, duree du trait, puis fondu du remplissage — les valeurs de votre maquette. */ var PAS=120, TRAIT=1100, REMPLISSAGE=500; var DUREE_MAXI=4500; /* le site n'est jamais masque plus longtemps */ function retirer(){ if(voile&&voile.parentNode)voile.parentNode.removeChild(voile); if(document.body)document.body.classList.remove('vem-en-chargement'); } /* Dans l'editeur Elementor, aucun voile : il masquerait la zone de travail. */ var b=document.body; if(b&&(b.classList.contains('elementor-editor-active')|| b.classList.contains('elementor-editor-preview'))){retirer();return;} if(UNE_FOIS_PAR_VISITE){ try{ if(sessionStorage.getItem('vemChargementVu')){retirer();return;} sessionStorage.setItem('vemChargementVu','1'); }catch(e){/* navigation privee : on affiche simplement l'animation */} } /* Le voile est deplace a la racine du <body>. Indispensable : si un conteneur parent porte un « transform », un « filter » ou un « will-change » — courant sur un en-tete collant — il devient le repere des elements en position fixe et le voile ne couvrirait plus l'ecran. */ if(b&&voile.parentNode!==b)b.appendChild(voile); if(b)b.classList.add('vem-en-chargement'); /* ----- Le trace : chaque lettre se dessine, puis se remplit. ----- */ var lettres=voile.querySelectorAll('.vem-trace > *'); var mouvementReduit=window.matchMedia&& window.matchMedia('(prefers-reduced-motion: reduce)').matches; var dureeAnimation=900; if(mouvementReduit||!lettres.length){ /* Pas de trace : le CSS a deja rempli le logo, courte pause et on part. */ }else{ dureeAnimation=(lettres.length-1)*PAS+TRAIT+REMPLISSAGE+250; for(var i=0;i<lettres.length;i++){ (function(p,i){ var len=300; try{if(p.getTotalLength)len=p.getTotalLength();}catch(e){} p.style.transition='none'; p.style.fill='transparent'; p.style.strokeDasharray=len; p.style.strokeDashoffset=len; p.getBoundingClientRect(); /* pose l'etat de depart avant d'animer */ var d=i*PAS; p.style.transition='stroke-dashoffset '+(TRAIT/1000)+'s ease '+(d/1000)+'s, ' +'fill '+(REMPLISSAGE/1000)+'s ease '+((d+TRAIT-100)/1000)+'s'; p.style.strokeDashoffset='0'; p.style.fill='#ffffff'; })(lettres[i],i); } } var fini=false, depart=Date.now(); function partir(){ if(fini)return; fini=true; voile.classList.add('vem-parti'); if(b)b.classList.remove('vem-en-chargement'); setTimeout(retirer,700); /* apres la transition d'opacite */ } function quandPret(){ /* On attend la fin du trace, meme si la page etait deja en cache. */ setTimeout(partir,Math.max(0,dureeAnimation-(Date.now()-depart))); } if(document.readyState==='complete')quandPret(); else window.addEventListener('load',quandPret); /* Securite : meme si une ressource exterieure ne repond jamais, le voile s'efface. */ setTimeout(partir,DUREE_MAXI); })(); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap'); .gsx-root .elementor-widget-html,.gsx-root .elementor-widget-html>.elementor-widget-container,.gsx-root .elementor-widget-image,.gsx-root .elementor-widget-image>.elementor-widget-container,.gsx-root .e-con>.e-con-inner{display:contents}.gsx-root .elementor-widget-image.gsx-imgbox{display:block}.gsx-root :where(.elementor-widget-image.gsx-imgbox)>:where(.elementor-widget-container),.gsx-root :where(.elementor-widget-image.gsx-imgbox) img{width:inherit;height:inherit;min-width:inherit;min-height:inherit;max-height:inherit;aspect-ratio:inherit;object-fit:inherit;object-position:inherit;border-radius:inherit}.gsx-root :where(.elementor-widget-image.gsx-imgbox) img{display:block}.gsx-root :where(.e-con:has(>.elementor-widget-image.gsx-imgbox)){height:100%}.gsx-root .elementor-widget{margin-bottom:0}.gsx-root :where(.elementor-widget-heading) .elementor-heading-title{font-size:inherit;font-weight:inherit;font-family:inherit;line-height:inherit;letter-spacing:inherit}.gsx-root{overflow-x:clip}.gsx-root.e-con:has(>.elementor-background-overlay)>:not(.elementor-background-overlay),.gsx-root .e-con:has(>.elementor-background-overlay)>:not(.elementor-background-overlay){position:relative;z-index:1}.gsx-root .elementor-background-overlay{z-index:0}.gsx-root.gsx-root.gsx-root .elementor-widget-text-editor :where(p,ul,ol,li,div,blockquote){font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;line-height:inherit;letter-spacing:inherit}.gsx-root .elementor-widget-text-editor :where(p,ul,ol,li,div,blockquote){color:inherit}.gsx-root.gsx-root :where(.e-con){--width:auto;--gap:0;--padding-block-start:0;--padding-block-end:0;--padding-inline-start:0;--padding-inline-end:0;--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0}.gsx-root.gsx-root :where(.elementor-widget){width:auto;max-width:100%}.gsx-root.gsx-root :where(.elementor-widget-button){min-width:0}.gsx-root :where(.e-con){position:static}.gsx-root .elementor-widget{position:static}.gsx-root .elementor-widget-accordion .elementor-accordion{display:contents}.gsx-root :where(.elementor-accordion-item,.elementor-tab-title,.elementor-tab-content){border:none;background:transparent;padding:0;margin:0}.gsx-root .elementor-accordion-title{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit}.gsx-root .elementor-accordion-icon{display:none}.gsx-root .elementor-widget-accordion .elementor-tab-title{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.gsx-root .elementor-widget-accordion .elementor-tab…[truncated by Evolize: exceeded D1 value limit]
Markup
<body class="home wp-singular page-template page-template-elementor_header_footer page page-id-216 wp-embed-responsive wp-theme-hello-elementor hello-elementor-default elementor-default elementor-template-full-width elementor-kit-5 elementor-page elementor-page-216" data-elementor-device-mode="desktop">


<a class="skip-link screen-reader-text" href="#content">Aller au contenu</a>

		<header data-elementor-type="header" data-elementor-id="466" class="elementor elementor-466 elementor-location-header" data-elementor-post-type="elementor_library">
			<div class="elementor-element elementor-eleme…
Affected pages/ /category/uncategorized

05 · Most affected inspected pages

06 · About this assessment

Evolize inspects publicly accessible website pages using automated browser-based testing and deterministic accessibility rules. Automated testing can identify many reproducible technical issues but cannot determine complete WCAG or legal compliance.

  • Publicly accessible surfaces only — no credentials, private systems, or source-code access.
  • Findings apply to the pages and states successfully inspected; automated analysis may not detect every issue.
  • Results reflect the site at the scan date and may have changed since.

Evolize provides digital risk intelligence and does not provide legal advice, certify compliance, or guarantee that litigation will not occur. Methodology · Security · Example assessment

07 · Continuous monitoring

This public report captures one assessment. Evolize monitoring rescans the website, detects new and recurring findings, tracks changes over time and verifies corrections.

Is information in this report inaccurate or outdated? Request a correction or removal.