SpectrumWidget::drawSliceMarkers() (added/extended by the adaptive RX filter, PR #3945) custom-paints data-bearing content that screen readers cannot introspect:
- adaptive filter edge triangles
- cut-frequency labels (audio low/high in Hz)
- the AUTO status ball (engaged vs idle)
Per docs/a11y.md ("Custom-painted widgets"), a paintEvent drawing data-bearing content should expose it via a QAccessibleInterface subclass returning meaningful text(QAccessible::Name) / text(QAccessible::Value), registered with QAccessible::installFactory.
The code currently carries a // TODO(a11y) marker pointing here. This is a pre-existing gap for SpectrumWidget's painted overlays generally; the adaptive-filter markers add new operator-facing state that should be exposed once a SpectrumWidgetAccessible interface exists.
🤖 Generated with Claude Code
SpectrumWidget::drawSliceMarkers()(added/extended by the adaptive RX filter, PR #3945) custom-paints data-bearing content that screen readers cannot introspect:Per
docs/a11y.md("Custom-painted widgets"), apaintEventdrawing data-bearing content should expose it via aQAccessibleInterfacesubclass returning meaningfultext(QAccessible::Name)/text(QAccessible::Value), registered withQAccessible::installFactory.The code currently carries a
// TODO(a11y)marker pointing here. This is a pre-existing gap for SpectrumWidget's painted overlays generally; the adaptive-filter markers add new operator-facing state that should be exposed once aSpectrumWidgetAccessibleinterface exists.🤖 Generated with Claude Code