fix(a11y): announce auth errors, th scope, <time>, calendar type #475
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/MAPPS-409-a11y-wiring"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements MAPPS-409 (2026-08-04 mokosh-apps UI audit, F23-F26): a11y wiring. 8 files.
F24 - announce app-side auth errors
The login and onboarding error banners (
text-red-600<p>) now carryrole="alert", so screen readers announce a failed sign-in / onboarding submit. The portal siblings already had it and are untouched.F26 - table header column scope
thcells gainedscope="col". Because MAPPS-407 migrated the portal-invoice and reports tables to the sharedTablekit, the single fix on the sharedTableHeader(components/table.rs) covers every shared-Table header app-wide; the sharedSelectAllHeadercheckbox-columnth(components/bulk_actions.rs) got it too. The bespoke weekly-timesheet grid intime.rs(still raw, tracked as MAPPS-415) had all 9 of its raw header cells fixed directly. No other rawthremains in the pages.F25 - machine-readable relative timestamps
Relative/absolute "updated"/"created" timestamps are now wrapped in
<time datetime="<rfc3339>">, the visible text unchanged. In the ticket list the source instant lives at the call site behind the row-component boundary, so it is threaded down as two optional props (updated_iso/updated_title, defaulting toNone); the demo/fallback rows pass nothing and stay bare text (not fabricated). The ticket-comment timestamp token was unified fromtext-subtletotext-mutedto match its sibling created-timestamp.F23 - calendar event type conveyed without color
Event type was signalled by fill color alone. A small
appointment_type_label()helper feeds the type into each of the four event-blocktitleattributes ("Meeting - 9:00: Standup"), so type is available to hover and assistive tech. Every block already shows visible text, so no color-only block needed a new text cue.Verification
Diff-reviewed (no local cargo on this box); the dioxus-html
timeelement +datetimeattribute were checked against the dioxus 0.7 docs. All changes are additive, no imports orphaned, no em-dashes. CI runs fmt/clippy(-D warnings)/wasm-build/tests.#MAPPS-409