Root
[data-a11y-scroll-cue]
Wraps the scrollport and receives lifecycle state.
Real-world example · SaaS control room
An accessibility lead is reviewing a release queue on a narrow screen. A11y Scroll Cue makes the table’s horizontal overflow visible and gives keyboard users a temporary tab stop only when it is needed.
Scenario
The lead needs to compare ownership, severity, evidence, and release status without hiding table columns or replacing the semantic table with a custom grid.
Reach the audit queue with the keyboard, discover that more columns are available, review them with native scrolling, and restore the cue for another tester.
Try it
Live example
Four unresolved findings are ready for triage. The status line describes the demo state without making the plugin cue itself a live region.
The cue is ready. Horizontal scrolling will dismiss it.
| Finding | Journey | Severity | Owner | Evidence | Target | Release status |
|---|---|---|---|---|---|---|
| A11Y-142 | Payment method | High | Checkout UI | Keyboard focus skips the saved-card error summary. | 29 July | Fix in review |
| A11Y-158 | Address lookup | Medium | Forms | Suggestion count is not announced after filtering. | 30 July | Test pending |
| A11Y-161 | Order review | High | Design system | Focus indicator is clipped at 200% zoom. | 29 July | Fix in progress |
| A11Y-169 | Confirmation | Medium | Notifications | Success heading is not programmatically focused. | 31 July | Owner assigned |
Accessibility notes
tabindex="0", a region role, and the
supplied accessible name only while horizontal overflow exists.
describeScrollport: true links the visible cue text to
the focused region. The separate status line reports reset and
dismissal actions.
Developer notes
Demo toolbar and status classes are page chrome. Only the
data-a11y-scroll-cue* attributes belong to the plugin
setup.
Root
[data-a11y-scroll-cue]Wraps the scrollport and receives lifecycle state.
Child
[data-a11y-scroll-cue-scrollport]The explicit element that owns native horizontal scrolling.
Options
This demo sets regionLabel and opts into
describeScrollport.
import "a11y-scroll-cue/styles.css";
import { createA11yScrollCue } from "a11y-scroll-cue";
const root = document.querySelector("[data-a11y-scroll-cue]");
if (root instanceof HTMLElement) {
createA11yScrollCue(root, {
regionLabel: "Checkout release accessibility findings",
describeScrollport: true,
});
}