Sub-issue of #997 (accessibility umbrella).
Problem
The DX Cluster, POTA, SOTA, WWFF, and PSK Reporter spot lists are built from <div> grids today. Screen readers can read them, but row/column relationships aren't communicated — a user can't ask the reader to "next column" or "this row's frequency" the way they could with a real <table>.
Additionally, frequencies are rendered as plain numbers (e.g. "14.074") which most screen readers will pronounce as "fourteen point zero seven four" — usable, but not the natural ham announcement "fourteen point zero seven four megahertz" that gives context immediately.
What we want
- Convert the spot grids to semantic tables (
<table>, <thead>, <tbody>, <tr>, <th>, <td>) with scope attributes on headers. Keep the same CSS grid look — just under semantic markup.
- Add a hidden
<span class="visually-hidden"> after each frequency that says "megahertz" so screen readers get the unit, while sighted users see just the number.
- Same for age ("3 m ago" → screen reader hears "3 minutes ago" via aria-label or visually-hidden span).
Scope
Affects DXClusterPanel, ActivatePanel (covers POTA/SOTA/WWFF), and PSKReporterPanel. Be careful not to regress the visual density work done in #995.
Sub-issue of #997 (accessibility umbrella).
Problem
The DX Cluster, POTA, SOTA, WWFF, and PSK Reporter spot lists are built from
<div>grids today. Screen readers can read them, but row/column relationships aren't communicated — a user can't ask the reader to "next column" or "this row's frequency" the way they could with a real<table>.Additionally, frequencies are rendered as plain numbers (e.g. "14.074") which most screen readers will pronounce as "fourteen point zero seven four" — usable, but not the natural ham announcement "fourteen point zero seven four megahertz" that gives context immediately.
What we want
<table>,<thead>,<tbody>,<tr>,<th>,<td>) withscopeattributes on headers. Keep the same CSS grid look — just under semantic markup.<span class="visually-hidden">after each frequency that says "megahertz" so screen readers get the unit, while sighted users see just the number.Scope
Affects DXClusterPanel, ActivatePanel (covers POTA/SOTA/WWFF), and PSKReporterPanel. Be careful not to regress the visual density work done in #995.