---
author: Nicolas Arduin
download: true
exportFilename: intriduction-accessibilite-numerique
lineNumbers: true
remoteAssets: true
htmlAttrs:
dir: ltr
lang: fr
theme: ./
# some information about your slides (markdown enabled)
title: Introduction à l'accessibilité numérique
info: |
## Commencer avec l'accessibilité
Pourquoi, pour qui et comment ?
Learn more at [Sli.dev](https://sli.dev)
# https://sli.dev/features/drawing
drawings:
persist: false
# slide transition: https://sli.dev/guide/animations.html#slide-transitions
transition: fade-out
# enable MDC Syntax: https://sli.dev/features/mdc
mdc: true
# make slide text selectable
selectable: true
# take snapshot for each slide in the overview
overviewSnapshots: true
hideInToc: true
layout: intro
---
# L'accessibilité numérique en 10 étapes
---
hideInToc: true
layout: bullets
---
# Sommaire
---
layout: content
---
# Contexte
> “ La force du Web réside dans son universalité. L'accès de tous, quel que soit le handicap, en est un aspect essentiel. ”
Tim Berners-Lee, Directeur du W3C et inventeur du World Wide Web
> “ L’accessibilité numérique est un droit fondamental. C’est la possibilité pour toutes et tous d’utiliser les outils informatiques, quelle que soit leur façon d’y accéder. ”
Access 42
> The W3C vision is that the Web and related technologies are accessible so that all people with disabilities around the globe can participate equally in the digital world.
W3C WAI
---
layout: content
---
# Législation
**Obligation actuelle :**
- les personnes morales de droit public
- les personnes morales délégataires d’une mission de service public
- les entreprises privées dont le chiffre d’affaires est supérieur à 250 millions d’euros
**À partir de Juin 2025 :**
> Les entreprises employant moins de dix personnes qui fournissent des services et dont le chiffre d'affaires annuel n'excède pas deux millions d'euros.
[article L412-13 du Code de la consommation](https://www.legifrance.gouv.fr/codes/id/LEGISCTA000047284903) (applicable au 28 juin 2025)
> Tous les sites et plateformes de commerce électronique doivent être accessibles pour les nouveaux services à partir de 2025 et pour l’existant à partir de 2030.
Plus de détails dans [cet article d'Access 42](https://access42.net/transposition-directive-europeenne-ue-2019-882-accessibilite-produits-services/)
---
layout: fact
hideInToc: true
---
# 30 % de la population française rencontre des difficultés au quotidienrencontre des difficultés (limitations fonctionnelles ou restrictions importantes) au quotidien.
[Rapport 2024 de la DREES.](https://drees.solidarites-sante.gouv.fr/sites/default/files/2024-12/HANDICAP24MAJ061224-2.pdf)
**La majorité des handicaps sont invisibles.**
---
layout: bullets
hideInToc: true
hide: true
---
## L'accessibilité du Web englobe tous les handicaps qui affectent l'accès au Web, notamment :
- auditifs
- cognitifs
- neurologiques
- physiques
- psychologiques
- oraux
- visuels
---
layout: auto-grid
columns: 2
rows: 250px
---
# Exemples de technologies d'assistance
::content::
---
layout: content
---
# 1. Éléments HTML sémantiques
````md magic-move {lines: false}
```html
```
````
---
layout: auto-grid
columns: 2
---
# 2. Structure des titres
::content::
```md {all|2|3|4|none}{lines: false}
Erroné
└── h1 Titre principal
├── h2 Titre secondaire
├── h4 Titre niveau 4 // [!code error]
│ └── h5 Titre niveau 5
├── h2 Titre secondaire
│ ├── h2 Titre secondaire
│ ├── h3 Titre tertiaire
│ │ ├── h4 Titre niveau 4
│ │ │ └── h6 Titre niveau 6
│ └── h3 Titre tertiaire
└── h1 Titre principal
```
```md {none|all}{lines: false}
Correct
└── h1 Titre principal
├── h2 Titre secondaire
├── h2 Titre secondaire
│ └── h3 Titre tertiaire
├── h2 Titre secondaire
│ ├── h3 Titre tertiaire
│ ├── h3 Titre tertiaire
│ │ ├── h4 Titre niveau 4
│ │ │ └── h5 Titre niveau 5
│ └── h3 Titre tertiaire
└── h2 Titre secondaire
```
::after::
Add-on HeadingsMap : [firefox](https://addons.mozilla.org/fr/firefox/addon/headingsmap/), [chrome](https://chromewebstore.google.com/detail/headingsmap/gdaioanblnkeegccagdlnolobgjhfhhm)
---
layout: title-image
image: ours.jpg
---
# 3. Formulaires
**Toujours** associer un `label` aux champs `input`, `select`, `textarea`, `meter`, `progress`.
```html{2,3}
// [!code word:name]
```
Si le `label` doit être masqué, utilisez une classe CSS `visually-hidden` (ou `sr-only`).
```css
.visually-hidden {
position: absolute;
overflow: hidden;
block-size: 1px;
inline-size: 1px;
clip: rect(0 0 0 0);
clip-path: inset(100%);
white-space: nowrap;
}
```
[Qu'est-il arrivé au champ texte ? Vidéo en anglais.](https://briefs.video/videos/what-happened-to-text-inputs/)
---
layout: content
---
Proposez du remplissage automatique et des claviers adaptés si besoin.
```html{2-3,5-6}
```
---
layout: content
---
# 4. Polices et typographie
- unités
- utilisez des [unités relatives](https://whatunit.com/) (ex. `em`, `rem`, `lh`, `ex`) pour permettre aux utilisateurs de modifier la taille des polices
- ou des fonctions de calcul CSS (ex. `clamp()`, `calc()`)
- taille des polices
- minimum `16px` (équivalent) pour le corps de texte
- créez une [échelle typographique fluide](https://utopia.fyi/type/calculator?c=320,18,1.2,1240,20,1.25,5,2,&s=0.75%7C0.5%7C0.25,1.5%7C2%7C3%7C4%7C6,s-l&g=s,l,xl,12)
- alignement du texte
- ne **JAMAIS** justifier le texte
- limitez les textes centrés
- évitez les sauts de ligne forcés ` `
- `text-wrap: balance;` sur les titres
- familles
- préférez des polices travaillées pour leur lisibilité (ex. [Atkinson Hyperlegible](https://brailleinstitute.org/freefont), [Luciole](https://luciole-vision.com/))
- ou conservez le choix utilisateur `font-family: system-ui, FALLBACK;`
---
layout: title-image
image: fleur.jpg
---
# 5. Vérifiez les contrastes
Sujet complexe car l'algorithme du WCAG repose uniquement sur des calculs et pas sur des tests visuels de perception.
- [Calculateur WCAG](https://coolors.co/contrast-checker) officiellement intégré dans le standard d'accessibilité
- [Calculateur APC](https://www.myndex.com/BPCA/) plus précis mais expérimental et non intégré à un quelconque standard.
---
layout: title-image
image: pierre.jpeg
---
# 6. Simplifiez l'interface, privilégiez le contenu
- ne cachez pas le contenu
- n'animez pas (trop) le contenu
`@media (prefers-reduced-motion: no-preference) { go crazy 🤪 }`
- ne gênez pas le contenu
- soulignez les liens, ne soulignez rien d'autre
- ne supprimez pas le focus
- n'utilisez pas uniquement la couleur pour indiquer un état
---
layout: title-image
image: marmotte.jpg
---
# 7. Chouchoutez les images
- ajoutez systématiquement l'attribut `alt`
- `alt=""` si l'image est décorative
- `alt="[...]"` si l'image est porteuse d'information
- renseignez si possible les attributs `width` et `height` pour éviter le "layout shift"
- optimisez et convertissez dans des formats récents (ex. `webp`, `avif`)