`, or wrapping all page text divs in a single `role="document"` or `role="article"` region per document.
### Decision Matrix
| Concern | sr-only (current) | Visible text block | Text view toggle | Coordinate layer |
|---|---|---|---|---|
| WCAG compliance | Full | Full | Full | Full |
| Layout mismatch risk | None (hidden) | High | Medium (clearly labeled) | None (aligned) |
| Copy/paste for sighted | No | Yes | Yes | Yes |
| Find in Page highlighting | No (match not visible) | Yes | Yes | Yes |
| Low-vision reflow | No | Yes | Yes | Yes |
| Browser translation | Partial | Yes | Yes | Yes |
| Legal/trust risk | None | Real | Low | None |
| Engineering effort | Done | Low | Medium | High |
| UX confusion | None | High | Low | None |
**Recommendation summary**: Ship Option E now (the `sr-only` implementation is correct). Add a narrow "Copy page text" icon button for copy/paste utility. Plan Option A (coordinate text layer) as a future accessibility investment.
---
## Minor Issues to Fix in the Current Implementation
1. **Remove `role="region"` from page text divs** or replace all per-page regions with a single per-document region. 15 unnamed sub-landmarks per document creates AT navigation clutter. Per-page text divs should be plain `
` with `aria-label` only, or use `role="note"`.
2. **15-page cap consistency**: If a document exceeds 15 pages, pages 16+ have no text alternative at all. Consider whether the `sr-only` div should be omitted (as currently) or whether a fallback message ("Text content not available for this page") is more honest for AT users.
3. **Scanned PDF handling**: The current implementation gracefully omits `pages_text` for scanned PDFs. This is correct — do not emit a misleading sr-only div for pages with no extractable text. The current code handles this properly.