Accessibility and content
Keyboard, focus and semantics
Turn the source’s accessible intent into verified interaction behavior.
On this page
Source evidence and follow-up
| Pattern | Present in source | Required follow-up |
|---|---|---|
| Editor tabs | Tab/panel IDs, aria-selected and hidden inactive panels. | Arrow navigation and roving tab index are absent in the inspected component. |
| Map/newsletter dialogs | Dialog context, Escape and scroll lock. | Verify initial focus, containment, close behavior and return to trigger. |
| Publication | Native checkbox, peer focus, aria-busy and polite label. | Check failure state, announcement and server-confirmed availability. |
| Admin fields | Wrapped label and native controls. | Associate descriptions/errors and review required/invalid states. |
| Admin lists | Visual CSS grid; header is aria-hidden. | Ensure each record reads coherently without visual columns. |
| Analytics | Canvas chart and numeric dashboard. | Provide and verify equivalent text/data access for the chart. |
Interaction acceptance
- Complete the primary tasks using only keyboard.
- Keep focus visible when scrolling and opening drawers.
- Escape should dismiss eligible overlays without discarding unrelated form edits.
- Screen-reader review needs actual task outcomes, not only DOM-role inspection.
Source references
| File | Responsibility |
|---|---|
| components/admin/admin-edit-tabs.tsx | Audited Townwell implementation; use this file when extending this interface. |
| components/map-detail-modal.tsx | Audited Townwell implementation; use this file when extending this interface. |
| components/admin/admin-publication-control.tsx | Audited Townwell implementation; use this file when extending this interface. |
| components/admin-ui.tsx | Audited Townwell implementation; use this file when extending this interface. |
Examples from the app
Actual Boise Today and Townwell UI with synthetic editorial, business, review, media metadata and analytics. Existing Boise imagery; no live data changes. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-07 · Revision ce8bc72b96da · Documentation v0.1