Acceptance Criteria
accordion, accordion-item, recipe and how-to declare their schema as tables, with no node.attributes.typeof = … mutation and no hand-written property="text" wrapper left in any transform- The rendered HTML is byte-identical for these four runes, wrapper included — asserted, not assumed
- The JSON-LD matches WORK-562's baseline exactly
- The two-point invariant from WORK-563 passes for all four, so the RDFa and the JSON-LD still agree
recipe's <li>s resolve through their existing data-names (ingredient, step) — no new names needed hererecipe's image source resolves through the name WORK-561 gave itschema="none" still strips the whole subtree on accordion, including the wrapper the applier now emits- A test pins the RDFa shape itself — that a node carrying both
property and typeof always has an inner carrier for its text — so the wrapper cannot be "optimised away" later
Approach
Write the byte-identical assertion first. These four runes are where a plausible-looking simplification silently changes what the page asserts, and the reasoning that leads there is short enough that someone will re-derive it. The test is the only durable form of the argument; the prose above is a comment that will not run.
accordion is also the rune that motivated the whole spec, by way of WORK-548 — rendering a list of universal attributes as accordion items publishes roughly 970 fabricated Question entries across 88 pages. WORK-552 already shipped schema="none" as the author-side out. What this item adds is that the suppression and the emission are now declared in the same place, so the relationship between them is visible.
Note accordion's comment at packages/runes/src/tags/accordion.ts:111 — "Done here rather than in a later pass because extractSeo reads the …" — is the same constraint WORK-565 is built around. Update it rather than deleting it; it is the only place in the source that records why this cannot live in the engine.
References
- SPEC-130 — "What Group C actually costs", the RDFa analysis
- SPEC-082 — Option B, the inline SEO carriers
- WORK-548 — the ~970 fabricated
Question entries - WORK-552 —
schema="none", shipped packages/runes/src/tags/accordion.ts:111 — the comment to carry forward