aethersdr / aethersdr/AetherSDR
Four tests fail deterministically on clean main locally: the a11y announcement fixture never receives focus (offscreen)
@jensenpat is already working on this.
Since Sep 18, 2026.
- Dominant language
- C++
- Stars
- 221
- Forks
- 117
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 302
Description
Four tests fail on a clean origin/main build on Arch/Wayland with QT_QPA_PLATFORM=offscreen, while CI is green. Reproduced in a throwaway worktree at origin/main with no local changes, so this is not a branch artifact.
276 - s_meter_geometry_test (Failed)
279 - range_slider_a11y_test (Failed)
280 - relay_bar_a11y_test (Failed)
437 - connection_panel_size_test (Failed)
Three of the four are the same failure, and it is an accessibility one:
FAIL: accessibility announcement fixture receives focus
FAIL: RX burst emits exactly one settled value update
FAIL: unchanged RX display value is not announced repeatedly
FAIL: announcement fixture receives focus
FAIL: a settled nudge announces exactly once, got []
FAIL: a settled relay step announces exactly once, got []
got [] is the tell: no QAccessible update events are being delivered at all, so the announce-once assertions have nothing to count. The fixture never takes focus, which is consistent with no accessibility bridge being active under this platform plugin rather than with a defect in the announce logic itself.
The fourth is separate and probably unrelated to a11y:
[FAIL] horizontal overflow is reachable, not clipped scale=1.000000 frameless maximum=0 contentMinW=586
Why this matters beyond a noisy local run. These are the regression tests behind the announce-once behaviour — the thing that stops a screen reader chattering on every meter tick. If they cannot fail locally, and CI does not exercise this path either, the a11y announce guarantees are effectively untested on every developer machine in this configuration. Given the commitments tracked in #4896 that is worth closing rather than muting.
Wanted:
- decide whether these should run under
offscreenat all, or be gated on an available accessibility bridge and skipped (visibly) when there is none — a silent pass would be worse than the current noise; - confirm whether CI runs them and, if so, what makes the bridge available there;
- triage
connection_panel_size_teston its own terms.
Umbrella #4703 covers main-branch flakes generally; filing separately because these are deterministic rather than flaky — they fail every run, on unmodified main, and the a11y three share one cause.
Environment: Arch Linux, Qt6, RelWithDebInfo, ccache, ctest -j8. Found while verifying #5755, which does not touch any of them.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.