Refactor: sémantique nav Portfolio — ul > li > button

- nav > ul[role=list] > li > button
- aria-current sur l'item actif
- aria-label={project.title} sur le button (le texte visible est le numéro)
- alt="" sur la vignette (décorative, le titre est porté par aria-label)
- aria-hidden sur le numéro (redondant avec aria-label)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-03-06 17:32:22 +01:00
parent 0b19589288
commit 594d53f50e

View file

@ -122,16 +122,22 @@
<!-- Sidebar navigation (extrême droite) -->
<nav class="portfolio-nav" aria-label="Projets">
{#each projects as project, i}
<button
class="portfolio-nav-item"
class:active={i === currentIndex}
onclick={() => { currentIndex = i; setAnchor(i) }}
>
<img src={project.thumbnail} alt={project.title} />
<span class="portfolio-nav-number">{String(i + 1).padStart(2, '0')}</span>
</button>
{/each}
<ul role="list">
{#each projects as project, i}
<li>
<button
class="portfolio-nav-item"
class:active={i === currentIndex}
aria-current={i === currentIndex ? 'true' : undefined}
aria-label={project.title}
onclick={() => { currentIndex = i; setAnchor(i) }}
>
<img src={project.thumbnail} alt="" />
<span class="portfolio-nav-number" aria-hidden="true">{String(i + 1).padStart(2, '0')}</span>
</button>
</li>
{/each}
</ul>
</nav>
</section>
@ -182,6 +188,7 @@
.portfolio-text h2 {
font-size: var(--font-size-title-main);
font-weight: 700;
text-transform: uppercase;
line-height: 1.1;
}
@ -215,6 +222,11 @@
}
/* Sidebar navigation */
.portfolio-nav ul {
list-style: none;
display: contents;
}
.portfolio-nav {
grid-area: 4/17 / span 14 / span 4;
padding-right: 8rem;