aethersdr / aethersdr/AetherSDR

Four tests fail deterministically on clean main locally: the a11y announcement fixture never receives focus (offscreen)

Open
#5,811 3 comments 0 reactions 1 assignee View on GitHub

@jensenpat is already working on this.

Since Sep 18, 2026.

bug full-suite GUI maintainer-review
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 offscreen at 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_test on 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.