feat(viewer): add sr-only landmark headings for screen reader navigation (#123)
Every landmark on the pipeline viewer now carries an h2 inside it, hidden
with sr-only, and is labelled via aria-labelledby pointing at that heading.
Screen reader users can now navigate the page by the heading rotor as well
as the landmark rotor, and each landmark shows up in the rotor with a
meaningful name instead of a generic region type.
Changes:
- Header: <h1> gets an id; <header> gets aria-labelledby
- region-stages, region-pages, region-preview, region-changes: drop
aria-label in favour of aria-labelledby + sr-only h2 sibling
- region-status, region-error, region-upload: promote wrapper to
<section> with aria-labelledby + sr-only h2
- Stats bar: promote to <section> "Document stats and controls"
- PII review wrapper: promote to <section> "PII review"
- WarningsBanner: promote to <section> "Warnings"
- Classification-error wrapper: promote to <section> "Classification error"
No visual changes — all headings are sr-only. No existing heading levels
are demoted; sub-panel h3s (Changes, Structure Metadata) now sit correctly
beneath their landmark h2.
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>