You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
apps/storefront/src/components/actionable/pagination.tsx renders the current page and the disabled prev/next as plain <div> elements. They are not keyboard-reachable, lack aria-current="page", and lack aria-disabled="true". Screen-reader users cannot tell which page they're on, and disabled controls aren't announced as disabled.
Fix:
Current-page indicator becomes an <a aria-current="page"> (or <span aria-current="page"> if non-interactive — pick one based on whether clicking is a no-op).
Disabled prev/next become <a aria-disabled="true" tabindex="-1"> with an actual href attribute removed, or a <button disabled> — consistent with how the active prev/next are rendered.
What to build
apps/storefront/src/components/actionable/pagination.tsxrenders the current page and the disabled prev/next as plain<div>elements. They are not keyboard-reachable, lackaria-current="page", and lackaria-disabled="true". Screen-reader users cannot tell which page they're on, and disabled controls aren't announced as disabled.Fix:
<a aria-current="page">(or<span aria-current="page">if non-interactive — pick one based on whether clicking is a no-op).<a aria-disabled="true" tabindex="-1">with an actualhrefattribute removed, or a<button disabled>— consistent with how the active prev/next are rendered.Acceptance criteria
<div>elements in pagination markup that should be interactivearia-current="page"on the active pagearia-disabled="true"on the disabled prev/nextBlocked by
None — can start immediately.
References
apps/storefront/src/components/actionable/pagination.tsx:62-65,110-113,132-135