11# A11y × Messages Playground
22
33A focused hub playground for testing ** [ ` @devframes/plugin-a11y ` ] ( ../../plugins/a11y ) **
4- alongside ** [ ` @devframes/plugin-messages ` ] ( ../../plugins/messages ) ** — and, above
4+ alongside ** [ ` @devframes/plugin-messages ` ] ( ../../plugins/messages ) ** - and, above
55all, the ** message → dock navigation** they share.
66
77Where [ ` vite-devframe-hub ` ] ( ../vite-devframe-hub ) mounts every
2525
2626The window is split in two:
2727
28- - ** Left — App under test.** A tiny client-side-routed app whose every route is
28+ - ** Left - App under test.** A tiny client-side-routed app whose every route is
2929 broken on purpose:
30- - ` / ` — a missing ` alt ` , an icon-only button, an empty link, a skipped heading
30+ - ` / ` - a missing ` alt ` , an icon-only button, an empty link, a skipped heading
3131 level
32- - ` /images ` — a gallery of ` alt ` -less images
33- - ` /forms ` — inputs and a select with no labels
34- - ` /contrast ` — low-contrast text and a custom control with no accessible name
35- - ** Right — Devtools.** The ** A11y Inspector** and ** Messages** docks.
32+ - ` /images ` - a gallery of ` alt ` -less images
33+ - ` /forms ` - inputs and a select with no labels
34+ - ` /contrast ` - low-contrast text and a custom control with no accessible name
35+ - ** Right - Devtools.** The ** A11y Inspector** and ** Messages** docks.
3636
3737## What to try
3838
39- 1 . ** Live scanning** — open the ** A11y Inspector** . It scans the left pane on
39+ 1 . ** Live scanning** - open the ** A11y Inspector** . It scans the left pane on
4040 load; the Dashboard shows the totals and severity breakdown.
41- 2 . ** Route tracking** — click the route tabs in the app under test (` Home ` ,
41+ 2 . ** Route tracking** - click the route tabs in the app under test (` Home ` ,
4242 ` Images ` , ` Forms ` , ` Contrast ` ). Each navigation is a ` history.pushState ` ,
43- which the agent patches — the Violations tab accrues one group per route.
44- 3 . ** Select + highlight** — hover a violation to ring the element in the page;
43+ which the agent patches - the Violations tab accrues one group per route.
44+ 3 . ** Select + highlight** - hover a violation to ring the element in the page;
4545 tick a violation's checkbox to highlight all its elements with numbered
4646 badges, then hit ** Generate fix prompts** in the nav for a paste-ready AI
4747 prompt covering everything you selected.
48- 4 . ** Message → dock navigation** * (the headline)* — open the ** Messages** dock.
48+ 4 . ** Message → dock navigation** * (the headline)* - open the ** Messages** dock.
4949 Each scan mirrors a summary entry plus one entry per violated rule, and every
5050 entry carries a navigation action. Select an entry and click ** View in a11y
5151 inspector** (or ** Open a11y dashboard** ): the hub switches the focused dock to
@@ -54,7 +54,7 @@ The window is split in two:
5454
5555## How it's wired
5656
57- ` src/a11y-messages-playground.ts ` is the whole host — a ~ 120-line Vite plugin
57+ ` src/a11y-messages-playground.ts ` is the whole host - a ~ 120-line Vite plugin
5858that runs ` @devframes/hub ` in the dev server, mounts the two plugins as docks,
5959and attaches the a11y agent as the a11y dock's ` clientScript ` :
6060
@@ -72,13 +72,13 @@ a11yMessagesPlayground({
7272scans the app under test) and renders the dock rail from ` devframe:docks ` shared
7373state. The navigation itself rides existing hub primitives: the messages panel
7474calls ` hub:docks:activate ` , the hub broadcasts it, and the client host switches
75- the focused dock — the same path a manual dock click takes.
75+ the focused dock - the same path a manual dock click takes.
7676
7777## Files
7878
7979| File | Role |
8080| ---| ---|
81- | ` src/a11y-messages-playground.ts ` | The Vite host — hub context, static + connection-meta mounts, side-car WS, instance-registry registration |
81+ | ` src/a11y-messages-playground.ts ` | The Vite host - hub context, static + connection-meta mounts, side-car WS, instance-registry registration |
8282| ` vite.config.ts ` | Mounts a11y + messages; attaches the a11y agent as its dock's ` clientScript ` |
8383| ` src/client/main.ts ` | Boots the client host, renders the dock rail + iframe stage |
8484| ` src/client/app-under-test.ts ` | The intentionally-broken, multi-route app the agent scans |
0 commit comments