Blazor Web App (Auto, per-page render mode) with prerendering disabled causes JAWS to lose focus sync on repeated button presses
- Dominant language
- C#
- Stars
- 38.4k
- Forks
- 10.9k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 281
Description
### Is there an existing issue for this?
- [x] I have searched the existing issues
### Describe the bug
**Summary**
JAWS loses its internal buffer/index synchronisation with the DOM. Despite visibly showing and announcing which button the user is on, after one or two presses it sends the synthesised click to a different focusable element on the page (when using specific Blazor settings).
In the video I did not move, I only navigated to the "Click Me And Increment A Counter" button and pressed it twice.
**Notes**
I eventually narrowed the issue down to the following specific condition:
You use the Blazor Web App template with Auto (Server and WebAssembly) render modes set per page, and the page in question has prerendering disabled. It does not occur with prerendering enabled, and it does not occur in any of the other Blazor templates (Global Server, Global WebAssembly, etc.).
I routinely test with the following assistive technologies on Windows 11: JAWS, Narrator and NVDA, each paired with Edge, Chrome and Firefox. I also test with Windows Voice Access. On macOS, iOS and Android I use VoiceOver on macOS paired with Safari, VoiceOver on iOS paired with Safari, and TalkBack paired with Chrome.
I have only experienced this issue with JAWS (it fails on all the browsers I test with) - no other screen reader is affected.
I have logged this issue against both the Blazor and JAWS repositories, given the specific nature of the interaction between the two.
https://github.com/user-attachments/assets/64f5dba7-8114-46a8-a8c7-1cc596aee6a0
### Expected Behavior
For JAWS to only send the click event to the element the user is currently interacting with.
### Steps To Reproduce
Attached is a project using the default Blazor Web App template with Auto (Server and WebAssembly). GitHub would not let up upload the self-contained published app.
Visual Studio users please ensure the JAWSIssue project is set as the startup project.
[JAWSIssue.zip](https://github.com/user-attachments/files/30633701/JAWSIssue.zip)
### Exceptions (if any)
_No response_
### .NET Version
_No response_
### Anything else?
I am currently using JAWS version 2026.2606.132 and Visual Studio 2026 18.8.2. The Blazor template used was the most current available as of today, 2026-08-02.
The issue logged with JAWS (FreedomScientific) [JAWS repo Issue: ](https://github.com/FreedomScientific/standards-support/issues/959)
Contributor guide
Research direction
Start with the attached JAWSIssue.zip and run the default Blazor Web App using Auto (Server and WebAssembly) per-page render modes, with prerendering disabled. Reproduce the repeated "Click Me And Increment A Counter" button presses in JAWS, then compare the behavior with prerendering enabled and other Blazor templates. Done means JAWS sends each click to the element currently receiving focus.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- accessibility, frontend, web-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100