Skip to content

a11y: real time test progress is not announced to screen readers #205

Description

@M-V-RAGHUPATHI-SAI

Description

The dynamic speed updates currently lack aria live region, preventing them from being announced to assistive technologies as required by WCAG.

Solution

I can fix this by adding aria-live="polite" to the progress-label class.

Activity

  1. robertodauria commented on Mar 2, 2026

    @robertodauria
    Contributor

    Thanks for reporting this. I agree, just noting that this change will require thorough testing with actual screen readers. In particular I'm wondering if polite is still going to cause too many announcements. Is 10s enough time for multiple announcements? Could a simple "Test running, please wait"/"Download test completed, now running upload test" work better in this case?

  2. M-V-RAGHUPATHI-SAI commented on Mar 2, 2026

    @M-V-RAGHUPATHI-SAI
    ContributorAuthor

    Thanks for the feedback, that's actually a great point, polite will likely queue up all the speed updates and may not finish it in 10s and users may feel like overload. i agree with your approach is a better UX, announcing only the changes gives them context about what's going on.

    We can use aria-live only for phase changes like you mentioned, I plan to match our existing caching pattern, i am thinking to add a hidden aria-live region in the HTML, and update its content using i18n whenever the test phase changes.

    We can keep it simple and at the start "test started" and at the end we can say "test completed", we can go complex and mention "download started" or "upload started", because we have to cover this in 10s, i am thinking to go simpler what do you think?

    I will test the final flow locally with NVDA to make sure it sounds natural and report back once we finalized the flow.

  3. M-V-RAGHUPATHI-SAI commented on Mar 3, 2026

    @M-V-RAGHUPATHI-SAI
    ContributorAuthor

    "Test started", "Download test completed, now running upload test", and finally "test completed" also sounds fine to me. what do you think??

    Also i have read that visibility: hidden completely hides the element from screen readers. so, in accordance with WCAG guidelines, i found this CSS for visually hiding content while keeping it accessible to screen readers, which makes the text to 1px box:

    .visually-hidden {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }
    

    "Test started", "Download test completed, now running upload test", and finally "test completed" also sounds fine to me. what do you think??

    Once we are confirmed with this, i will start working on the PR.

  4. M-V-RAGHUPATHI-SAI commented on Mar 3, 2026

    @M-V-RAGHUPATHI-SAI
    ContributorAuthor

    can i work on this issue after the GSoC deadline??

  5. robertodauria commented on Mar 3, 2026

    @robertodauria
    Contributor

    For transparency: we have dropped out of GSoC 2026. Contributions are still welcome, but please know that we won't be able to actively mentor contributors and our availability to review will be limited.

    "Test started", "Download test completed, now running upload test", and finally "test completed" also sounds fine to me.

    That sounds good to me, too.

  6. M-V-RAGHUPATHI-SAI commented on Mar 4, 2026

    @M-V-RAGHUPATHI-SAI
    ContributorAuthor

    First of all, thanks for the guidance till now @robertodauria.

    Though M-Lab has dropped from GSoC 2026, i would still love to work with M-lab, as they have mentioned in the mail to contribute after gsoc deadline, i will be coming back to work on this issue after the deadline.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions