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
WaveformWidgetcustom-paints (CPUpaintEvent/ GPUrender) 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 anaccessibleNamebut exposes no live values.Per
docs/a11y.md("Custom-painted widgets"), a data-bearing paint path should expose its state via aQAccessibleInterfacesubclass returning meaningfultext(QAccessible::Name)/text(QAccessible::Value), registered withQAccessible::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