fix(a11y): satisfy the type checker without dropping Graphics Module roles

What

Makes astro check pass on the east-west zone-seam map without dropping its WAI-ARIA Graphics Module roles.

The errors

src/pages/east-west/index.astro:82:9  - error ts(2322)
  Type '"graphics-document"' is not assignable to type 'AriaRole | null | undefined'.
src/pages/east-west/index.astro:102:30 - error ts(2322)
  Type '"graphics-object"' is not assignable to type 'AriaRole | null | undefined'.

graphics-document and graphics-object are valid ARIA — they are from the WAI-ARIA Graphics Module. Astro's AriaRole union in astro/astro-jsx.d.ts omits the Graphics Module entirely (zero graphics-* entries), and because it is a closed type alias rather than an interface, it cannot be widened by declaration merging.

So the markup is correct and the type is incomplete.

The fix

Two named constants localise the gap to two lines with the reasoning attached, rather than scattering casts through the SVG — or, much worse, swapping in a role from the permitted union and quietly degrading how a screen reader announces the diagram.

Proven semantics-preserving by diffing the built output:

role="graphics-object" role="graphics-document"
before 5 1
after 5 1

aria-roledescription="zone-seam map" intact.

A spread-attribute form ({...{ role: "graphics-object" }}) was tried first and rejected — TypeScript still infers and checks the literal, so it fixed nothing.

Not fallout from TypeScript 6

These errors are pre-existing and were identical under the previous 5.9.3 pin — verified by running the checker against both versions on the same tree. They were simply never seen, because no pipeline runs the check script that has been sitting in package.json all along.

pipeline!99 (merged) adds the site-check component that closes that gap. When wiring it here, note the check needs the same prelude as the build, because site/src/data/profiles.json is generated:

npm run compile:profiles && npm run prepare:site && npm --prefix site run check

Without it the checker reports 6 spurious ts(2307) Cannot find module errors. With it, and with this fix: 0 errors, 0 warnings.

Merge request reports

Loading