Skip to content

Commit cfcd6fe

Browse files
committed
Add visible active badges for dashboard navigation
1 parent 03ec888 commit cfcd6fe

File tree

9 files changed

+566
-51
lines changed

9 files changed

+566
-51
lines changed

docs/code-review-2024-10-05.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Revue de code et audit RGAA
2+
3+
## Synthèse
4+
- Le plugin structure proprement ses dépendances (activation, cron, assets, pages d’admin) et centralise les préférences UI/accessibilité, ce qui facilite la maintenance.
5+
- Les préférences d’accessibilité (contraste renforcé, réduction des animations, taille de police) sont présentes côté CSS/JS et désactivables dans l’interface, ce qui va dans le sens du RGAA.
6+
7+
## Tests exécutés
8+
- `npm test`
9+
10+
## Points positifs
11+
- Le sélecteur de mode « simple/avancé » est annoncé comme un `role="switch"`, met à jour l’état textuel et appelle une annonce vocale via l’utilitaire `speak`, ce qui répond aux attentes RGAA sur les contrôles dynamiques.【F:liens-morts-detector-jlg/includes/blc-admin-pages.php†L4041-L4093】【F:liens-morts-detector-jlg/assets/js/settings-mode-toggle.js†L17-L117】
12+
- Les groupes avancés sont rendus avec `role="tablist"`, boutons `role="tab"`, gestion du `tabindex` et masquage via `hidden`, permettant un parcours clavier conforme RGAA.【F:liens-morts-detector-jlg/includes/blc-admin-pages.php†L4400-L4483】【F:liens-morts-detector-jlg/assets/js/blc-admin-scripts.js†L4469-L4526】
13+
- Les thèmes d’accessibilité appliquent des jeux de couleurs à fort contraste et gèrent le mode réduit de mouvement, couvrant les critères RGAA 3.2 et 10.9.【F:liens-morts-detector-jlg/assets/css/blc-admin-styles.css†L3-L120】
14+
15+
## Points à améliorer / bugs
16+
1. **Boutons d’aide non contextualisés** – Les boutons d’aide affichent tous l’intitulé « Afficher l’aide » sans préciser le champ ciblé, et le contenu du tooltip n’est lié ni au bouton ni au champ via `aria-describedby`. Un lecteur d’écran ne saura pas à quel champ se rapporte l’aide, ce qui viole les critères RGAA 3.3/9.2. Ajouter un intitulé spécifique (ex. « Aide : délai de relance ») et relier le tooltip au champ concerné résoudrait le problème.【F:liens-morts-detector-jlg/includes/blc-settings-fields.php†L32-L46】
17+
2. **Fermeture des tooltips limitée à la souris** – Le script ferme les bulles d’aide sur clic extérieur ou Échap, mais pas lorsqu’on quitte le bouton au clavier. On reste avec `aria-expanded="true"` et le tooltip visuellement ouvert après un tab, ce qui contrevient au RGAA 7.1 (perte de focus). Intercepter les événements `focusout`/`blur` pour fermer automatiquement corrigerait cela.【F:liens-morts-detector-jlg/assets/js/blc-admin-scripts.js†L4370-L4427】
18+
3. **Annonce de l’aide** – Lorsqu’un tooltip s’ouvre, aucun `aria-live` ni message vocal n’est déclenché. Les utilisateurs de lecteurs d’écran n’entendent donc pas le contenu nouvellement disponible, ce qui freine la conformité RGAA 4.1. Une solution consiste à appeler `accessibility.speak` lorsque la bulle s’ouvre ou à appliquer `aria-live="polite"` sur le conteneur actif.【F:liens-morts-detector-jlg/assets/js/blc-admin-scripts.js†L4370-L4410】
19+
20+
## Recommandations
21+
- Prioriser la correction de la contextualisation et de la fermeture clavier des tooltips pour respecter les critères RGAA les plus critiques.
22+
- Ajouter un test d’accessibilité automatisé (axe-core, pa11y) sur les pages d’admin afin d’éviter les régressions futures.

docs/review-ergonomie.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
- Ajouter des marqueurs textuels (ex. « Actif ») ou icônes contrastées dans les onglets/cartes, et vérifier systématiquement le contraste (≥4.5:1) en clair et en sombre.
4141
- Lors de l’ouverture de la modale, appliquer `aria-hidden="true"` (ou `inert`) sur le conteneur principal et restaurer l’attribut à la fermeture pour empêcher la navigation au lecteur d’écran. Envisager un backdrop `<div role="presentation">` pour annoncer la prise de focus.
4242

43+
> ✅ Les onglets principaux et les cartes de filtres affichent désormais un badge « Actif » assorti d’une annonce dédiée (`screen-reader-text`), ce qui garantit une distinction perceptible sans dépendre uniquement des couleurs.
44+
4345
## Fiabilité
4446
**Constat :**
4547
- En cas d’échec de planification (`wp_schedule_single_event`), le statut est mis à jour mais l’utilisateur n’a pas de guidage pour résoudre (ex : vérifier DISABLE_WP_CRON, trigger manuel). Les solutions pro fournissent généralement un check-list contextualisé.【F:liens-morts-detector-jlg/includes/blc-admin-pages.php†L205-L274】

liens-morts-detector-jlg/assets/css/blc-admin-styles.css

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,25 @@
393393
box-shadow var(--blc-admin-transition);
394394
}
395395

396+
.blc-admin-tabs__state {
397+
display: inline-flex;
398+
align-items: center;
399+
justify-content: center;
400+
padding: 2px 8px;
401+
margin-left: 4px;
402+
font-size: 0.7rem;
403+
font-weight: 700;
404+
letter-spacing: 0.06em;
405+
text-transform: uppercase;
406+
line-height: 1;
407+
border-radius: 999px;
408+
border: 1px solid currentColor;
409+
background: var(--blc-admin-surface);
410+
color: currentColor;
411+
pointer-events: none;
412+
white-space: nowrap;
413+
}
414+
396415
.blc-admin-tabs__link:hover {
397416
color: var(--blc-admin-accent-strong);
398417
background: var(--blc-admin-accent-soft);
@@ -599,6 +618,7 @@
599618
flex-direction: column;
600619
align-items: flex-start;
601620
justify-content: center;
621+
position: relative;
602622
flex: 1 1 200px;
603623
text-align: left;
604624
gap: 10px;
@@ -618,6 +638,32 @@
618638
cursor: pointer;
619639
}
620640

641+
.blc-stat--has-status {
642+
padding-right: 70px;
643+
}
644+
645+
.blc-stat__status {
646+
position: absolute;
647+
top: 12px;
648+
right: 18px;
649+
display: inline-flex;
650+
align-items: center;
651+
justify-content: center;
652+
padding: 2px 10px;
653+
font-size: 0.7rem;
654+
font-weight: 700;
655+
letter-spacing: 0.06em;
656+
text-transform: uppercase;
657+
line-height: 1;
658+
border-radius: 999px;
659+
border: 1px solid var(--blc-admin-accent-strong);
660+
background: var(--blc-admin-surface);
661+
color: var(--blc-admin-accent-strong);
662+
pointer-events: none;
663+
box-shadow: 0 0 0 1px rgba(17, 24, 28, 0.04);
664+
white-space: nowrap;
665+
}
666+
621667
.blc-stat--static {
622668
cursor: default;
623669
}
@@ -1596,7 +1642,16 @@
15961642
.blc-stat {
15971643
width: 100%;
15981644
flex: 1 1 100%;
1599-
padding: 12px 0;
1645+
padding: 16px 18px;
1646+
}
1647+
1648+
.blc-stat--has-status {
1649+
padding-right: 76px;
1650+
}
1651+
1652+
.blc-stat__status {
1653+
top: 10px;
1654+
right: 16px;
16001655
}
16011656

16021657
.blc-manual-actions__grid {
@@ -2713,15 +2768,15 @@ body.blc-modal-open {
27132768
line-height: 1.4;
27142769
box-shadow: 0 22px 40px -26px rgba(15, 118, 110, 0.7);
27152770
opacity: 0;
2716-
visibility: hidden;
2771+
pointer-events: none;
27172772
transform: translateY(-6px);
27182773
transition: opacity 0.2s ease, transform 0.2s ease;
27192774
z-index: 30;
27202775
}
27212776

27222777
.blc-field-help-wrapper.is-active .blc-field-help__bubble {
27232778
opacity: 1;
2724-
visibility: visible;
2779+
pointer-events: auto;
27252780
transform: translateY(0);
27262781
}
27272782

0 commit comments

Comments
 (0)