mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 11:09:18 +02:00
Fix WCAG 4.1.2 truncated select text + split admin/public favicons
- admin/edit.php: remove mb_strimwidth(60) truncation from access_type <select> option labels; full 'name — description' text is now the accessible name so screen readers get unambiguous option text (WCAG 4.1.2) - public/assets/favicon.svg: new public favicon — brand-purple (#9557b5) rounded square with white 'P' lettermark; distinct from admin_favicon.svg (archive-restore Lucide icon in #c104fc) which is admin-only - templates/head.php: favicon <link> now conditionally serves favicon.svg (public pages) or admin_favicon.svg (admin pages) based on $isAdmin; closes the open favicon task in todo/01-css-semantic-refactor.md - todo/04-accessibility.md: mark WCAG 3.1.1 lang audit and WCAG 4.1.2 select truncation items as done - todo/01-css-semantic-refactor.md: mark favicon task as done
This commit is contained in:
7
TODO.md
7
TODO.md
@@ -11,6 +11,13 @@ Pending tasks have been split into topic files under [`todo/`](todo/README.md):
|
||||
|
||||
## Recently completed (this session)
|
||||
|
||||
- [x] `admin/edit.php` — WCAG 4.1.2: removed `mb_strimwidth` truncation from `$accessOptions` mapping; access type `<select>` options now include full description text (`name — description`) so the accessible name is unambiguous for screen readers
|
||||
- [x] `public/assets/favicon.svg` — created public favicon: brand-purple (`#9557b5`) rounded square with white "P" lettermark; distinct from `admin_favicon.svg` (archive-restore icon in `#c104fc`)
|
||||
- [x] `templates/head.php` — favicon `<link>` now selects `favicon.svg` (public) vs `admin_favicon.svg` (admin) based on `$isAdmin`; closes `todo/01-css-semantic-refactor.md` favicon task
|
||||
- [x] `todo/04-accessibility.md` — marked WCAG 3.1.1 lang audit and WCAG 4.1.2 select truncation items as done
|
||||
- [x] `todo/01-css-semantic-refactor.md` — marked favicon task as done
|
||||
|
||||
|
||||
- [x] `admin.css` - added `[aria-current="page"]` rule for admin nav links (`border-bottom: 2px solid currentColor; padding-bottom: 1px`) fixing WCAG 1.4.1 (active nav link had no non-colour indicator)
|
||||
- [x] `admin.css` - fixed undefined `--admin-purple` variable in pagination hover; replaced with `--accent-primary` (same `#9557b5` value)
|
||||
- [x] `todo/01-css-semantic-refactor.md` - audited all CSS/HTML refactor tasks; marked ~15 items as already-done (`.admin-main`, `.admin-page-title`, `.admin-form-row`, `.admin-label`, `.admin-input/select/textarea`, `.admin-table`, `.admin-fieldset`, `tfe.css` class replacements, `search.css` selector, `login.php`/`edit.php` inline styles, `admin-alert` replacement, form partial hints)
|
||||
|
||||
@@ -109,7 +109,7 @@ try {
|
||||
$accessOptions = array_map(function($at) {
|
||||
$label = $at['name'];
|
||||
if (!empty($at['description'])) {
|
||||
$label .= ' - ' . mb_strimwidth($at['description'], 0, 60, '...');
|
||||
$label .= ' — ' . $at['description'];
|
||||
}
|
||||
return ['id' => $at['id'], 'name' => $label];
|
||||
}, $accessTypes);
|
||||
|
||||
5
public/assets/favicon.svg
Normal file
5
public/assets/favicon.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
|
||||
<rect width="24" height="24" rx="4" fill="#9557b5"/>
|
||||
<text x="12" y="17.5" font-family="Georgia, serif" font-size="15" font-weight="bold"
|
||||
fill="#ffffff" text-anchor="middle">P</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 286 B |
0
storage/db.sqlite
Normal file
0
storage/db.sqlite
Normal file
0
storage/thesis.db
Normal file
0
storage/thesis.db
Normal file
@@ -57,7 +57,7 @@
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<link rel="icon" type="image/svg+xml" href="/assets/admin_favicon.svg">
|
||||
<link rel="icon" type="image/svg+xml" href="/assets/<?= empty($isAdmin) ? 'favicon.svg' : 'admin_favicon.svg' ?>">
|
||||
<link rel="stylesheet" href="/assets/css/modern-normalize.min.css">
|
||||
<link rel="stylesheet" href="/assets/css/common.css">
|
||||
<?php foreach ($extraCss ?? [] as $css): ?>
|
||||
|
||||
@@ -55,4 +55,4 @@
|
||||
|
||||
## Favicon
|
||||
|
||||
- [ ] **`admin_favicon.svg` used as public-facing favicon** — rename or create a distinct `favicon.svg` so admin and public can diverge without naming confusion
|
||||
- [x] **`admin_favicon.svg` used as public-facing favicon** — created `public/assets/favicon.svg` (brand purple `#9557b5` lettermark “P”); `templates/head.php` now serves `favicon.svg` on public pages and `admin_favicon.svg` on admin pages
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
## 3.1.1 Language of page
|
||||
|
||||
- [ ] **All public pages have `<html lang="fr">`** — verify this is true after any template changes ✓ (no action needed unless templates change)
|
||||
- [x] **All public pages have `<html lang="fr">`** — verified: `templates/head.php` line 2 has `<html lang="fr">`; all pages share this template. No action needed.
|
||||
|
||||
## 3.3.1 Error identification
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
- [ ] **`<video>` elements on `tfe.php` have no captions** — add `<track kind="captions">` slot in template; document caption requirement in admin upload form
|
||||
|
||||
- [ ] **Admin `<select>` for visibility/access in `edit.php` uses truncated option text** — use full description in option text (or `title` attribute); keep truncated text only for visual display
|
||||
- [x] **Admin `<select>` for visibility/access in `edit.php` uses truncated option text** — removed `mb_strimwidth` call; option text now uses full description (`name — description`) so screen-reader accessible name is complete and unambiguous
|
||||
|
||||
- [x] **Bulk publish/unpublish JS does not announce result to screen readers** — action result is a full-page redirect to a flash message rendered by `flash-messages.php` which already emits `role="alert"` (error) / `role="status"` (success); no additional JS announcement needed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user