mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
fix(a11y): status badges no longer colour-only; fix aria on ✕ buttons (WCAG 1.4.1, 2.5.3)
admin/index.php — status badges (WCAG 1.4.1 Use of Colour):
- Published badge: prefix ● symbol (aria-hidden) + aria-label="Statut : Publié"
- Pending badge: prefix ◌ symbol (aria-hidden) + aria-label="Statut : En attente"
- Access badges (Libre/Interne/Interdit): prefix ○/◑/● symbol per type (aria-hidden)
+ aria-label="Accès : [type]"; symbol chosen from a PHP map keyed on the slug
Each badge now communicates its state through shape AND colour, not colour alone.
admin/index.php — ✕ Réinitialiser link (WCAG 2.5.3 / 1.1.1):
- ✕ wrapped in <span aria-hidden="true"> so the decorative symbol is skipped by
screen readers; accessible name remains "Réinitialiser"
admin/add.php + admin/edit.php — jury remove buttons (WCAG 2.5.3):
- All four ✕ remove buttons (2 static template rows + 2 JS-generated innerHTML strings)
given aria-label="Supprimer ce lecteur"; the bare ✕ Unicode character has no
speech equivalent so the aria-label replaces rather than supplements the label
This commit is contained in:
@@ -132,7 +132,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
</select>
|
||||
<button type="submit" class="admin-filters-btn">Filtrer</button>
|
||||
<?php if ($searchQuery || $yearFilter || $orientationFilter): ?>
|
||||
<a href="/admin/" class="admin-filters-reset">Réinitialiser</a>
|
||||
<a href="/admin/" class="admin-filters-reset"><span aria-hidden="true">✕ </span>Réinitialiser</a>
|
||||
<?php endif; ?>
|
||||
</form>
|
||||
|
||||
@@ -187,13 +187,18 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
<td><?= htmlspecialchars($thesis['ap_program'] ?? 'N/A') ?></td>
|
||||
<td>
|
||||
<?php if ($thesis['is_published']): ?>
|
||||
<span class="status-badge status-published">Publié</span>
|
||||
<span class="status-badge status-published" aria-label="Statut : Publié"><span aria-hidden="true">● </span>Publié</span>
|
||||
<?php else: ?>
|
||||
<span class="status-badge status-pending">En attente</span>
|
||||
<span class="status-badge status-pending" aria-label="Statut : En attente"><span aria-hidden="true">◌ </span>En attente</span>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($thesis['access_type'])): ?>
|
||||
<br><span class="status-badge status-access status-access--<?= strtolower(preg_replace('/[^a-z]/i', '', $thesis['access_type'])) ?>">
|
||||
<?= htmlspecialchars($thesis['access_type']) ?>
|
||||
<?php
|
||||
$accessSlug = strtolower(preg_replace('/[^a-z]/i', '', $thesis['access_type']));
|
||||
$accessSymbols = ['libre' => '○', 'interne' => '◑', 'interdit' => '●'];
|
||||
$accessSymbol = $accessSymbols[$accessSlug] ?? '●';
|
||||
?>
|
||||
<br><span class="status-badge status-access status-access--<?= $accessSlug ?>" aria-label="Accès : <?= htmlspecialchars($thesis['access_type']) ?>">
|
||||
<span aria-hidden="true"><?= $accessSymbol ?> </span><?= htmlspecialchars($thesis['access_type']) ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user