The FedWiki sites card repeats its notices to a screen reader every three seconds #320

Open
opened 2026-11-02 06:23:26 +00:00 by cgalo5758 · 0 comments
Owner

What happens

While a site request is open, the sites card polls every three seconds (hx-trigger="every 3s", hx-swap="outerHTML" on #fedwiki-sites, internal/integrations/fedwiki/templates/fedwiki_sites.html). Each poll replaces the whole card, so every notice in it is removed and inserted again even when its words have not changed. Over 31 seconds with one open request, a failed request's Problem notice (role="alert") and a declined request's Warning (role="status") were each inserted again 10 times with the same text. A screen reader announces a live region when it is inserted, so a person using one hears the failure every three seconds for as long as any request stays open.

What should happen

A notice whose words have not changed stays in the page across a poll, and a screen reader announces it once. The fix belongs to the poll's swap, not to the notice: for example the poll swaps only the rows that change, or the notices keep their element across swaps (htmx's hx-preserve with a stable id per notice).

Where

internal/integrations/fedwiki/templates/fedwiki_sites.html: the hidden poller and the notices it re-renders.

Steps

With a screen reader on, a member whose workspace holds one open site request and one failed request's notice opens the dashboard. The failure is read aloud again every three seconds until the open request finishes.

Why it matters

The repetition makes the dashboard hard to use with a screen reader exactly while something is wrong, and it drowns out anything else the page says.

### What happens While a site request is open, the sites card polls every three seconds (`hx-trigger="every 3s"`, `hx-swap="outerHTML"` on `#fedwiki-sites`, `internal/integrations/fedwiki/templates/fedwiki_sites.html`). Each poll replaces the whole card, so every notice in it is removed and inserted again even when its words have not changed. Over 31 seconds with one open request, a failed request's Problem notice (`role="alert"`) and a declined request's Warning (`role="status"`) were each inserted again 10 times with the same text. A screen reader announces a live region when it is inserted, so a person using one hears the failure every three seconds for as long as any request stays open. ### What should happen A notice whose words have not changed stays in the page across a poll, and a screen reader announces it once. The fix belongs to the poll's swap, not to the notice: for example the poll swaps only the rows that change, or the notices keep their element across swaps (htmx's `hx-preserve` with a stable id per notice). ### Where `internal/integrations/fedwiki/templates/fedwiki_sites.html`: the hidden poller and the notices it re-renders. ### Steps With a screen reader on, a member whose workspace holds one open site request and one failed request's notice opens the dashboard. The failure is read aloud again every three seconds until the open request finishes. ### Why it matters The repetition makes the dashboard hard to use with a screen reader exactly while something is wrong, and it drowns out anything else the page says.
cgalo5758 added the
kind
bug
area/fedwikiaccessibility
labels 2026-11-02 06:23:26 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki-cafe/member-console#320