Skip to content

[P2] Audit: Dynamic output updates do not consistently announce status to assistive technology #162

Description

@baixiangcpp

Imported from the byteflow.tools deep audit on 2026-06-22.

Problem: many tools update output live after input changes or button actions, but status changes are not consistently announced to screen readers. Examples include generated output, validation errors, copy success, run log updates, external request status, and Pipeline Builder step results.

Affected components:

  • Tool output panels
  • Error banners
  • Toast/status messages
  • Pipeline Builder run log
  • External-request preview status

Reproduction steps:

  1. Use a screen reader or accessibility inspector.
  2. Run JSON Formatter with valid and invalid input.
  3. Generate UUIDs or hashes.
  4. Run a Pipeline Builder recipe.
  5. Trigger copy/download actions and external preview failure states.
  6. Check whether status changes are announced.

Expected behavior: important dynamic changes should be exposed through aria-live or equivalent status roles without excessive noise.

Actual behavior: visual feedback exists, but assistive technology announcements are not consistently verified.

Impact: screen reader users may not know when output changed, copy succeeded, or an error occurred.

Proposed fix:

  • Add shared status and error components with aria-live support.
  • Mark validation errors with role=alert where appropriate.
  • Announce copy/download/run success states.
  • Add accessibility tests for dynamic updates.
  • Avoid announcing large output text automatically.

Acceptance criteria:

  • Core status changes are announced once and clearly.
  • Errors are associated with relevant inputs.
  • Output updates do not spam screen readers.
  • Pipeline Builder run log changes are accessible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions