The demo page for the Pricing Access Framer component. The billing toggle is a real role="switch" (Tab / Space / Enter, visible focus ring), price changes are announced politely to screen readers, the comparison matrix is keyboard reachable, and the mobile card stack is driven by the component's own width — set it below the breakpoint and watch it reflow without a single media query. Test it keyboard-only right now.
Component width: measuring…
Screen-reader announcements (aria-live polite) will appear here.
Keyboard checks you can run here
Tab to the switch — the focus ring is visible (never outline:none without a replacement).
Space or Enter flips monthly/yearly and the announcement log records the text supplied to the polite live region.
Choose 420px width — the table becomes stacked cards, highlighted plan first, no horizontal scroll.
Return to 960px, then Tab past the plan links to the comparison region; use arrow keys when the table overflows.
Choose Broken JSON — the component names the exact problem instead of rendering nothing.