aethersdr / aethersdr/AetherSDR

a11y: WAVE waveform scope (WaveformWidget) needs a QAccessibleInterface

Open
#3,959 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement GUI maintainer-review priority: low
Dominant language
C++
Stars
221
Forks
117
Avg merge
2d 7h
Merged PRs (30d)
299

Description

WaveformWidget custom-paints (CPU paintEvent / GPU render) data-bearing content — waveform min/max envelope, RMS band, peak, clip indicators, and the header readout (peak/RMS dBFS, clip state, view mode) — added/reworked by PR #3955. It sets an accessibleName but exposes no live values.

Per docs/a11y.md ("Custom-painted widgets"), a data-bearing paint path should expose its state via a QAccessibleInterface subclass returning meaningful text(QAccessible::Name) / text(QAccessible::Value), registered with QAccessible::installFactory.

Screen-reader users currently hear only the static widget name, not the changing waveform readout. Sibling gap tracked for SpectrumWidget in #3957.

🤖 Generated with Claude Code

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.

Research direction

Start with the WaveformWidget implementation and docs/a11y.md, especially the "Custom-painted widgets" guidance. Trace the CPU paintEvent, GPU render path, and existing accessibleName, then inspect Qt's QAccessibleInterface and QAccessible::installFactory APIs. Done means screen readers can receive the live waveform readout, including peak/RMS values, clip state, and view mode.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
accessibility
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.