Skip to content

Stop the Renders page from rebuilding and re-announcing itself every 12s #47

Open

Description

@blixvip

/renders.html calls refresh() on a setInterval every 12 seconds (public/renders.html:345). Each call:

  • rebuilds the whole grid with grid.replaceChildren() (lines 291 and 311), even when nothing changed. If keyboard focus is on a card's "Preview", "Prompt" or "Retry" button, that element is destroyed and focus drops to <body>.
  • re-announces the whole grid, because the grid is aria-live="polite" (line 99). With the UI starter's empty job list, screen reader users hear "No finished videos yet…" plus three links every 12 seconds.
  • toggles the Refresh button to disabled / "Refreshing…" and back.
  • keeps polling in background tabs.

Fix direction: compare the new job list (ids plus status) with latestJobs and skip paintJobs() when it is unchanged. Remove aria-live from the grid. Announce only changes, such as "1 render finished", through the existing #toast status region. Leave the button alone during background refreshes. Pause the interval on document.hidden and refresh once on return.

Done when idle polling causes no DOM changes or announcements, focus survives a refresh, the manual Refresh button still works, and real status changes are announced once.

Activity

  1. added
    accessibilityBarrier affecting people with disabilities
    help wantedExtra attention is needed
    on Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    accessibilityBarrier affecting people with disabilitieshelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions