Skip to content

Map source tab interfaces to WordPress 7.1 core Tabs blocks #699

Open

Description

@chubes4

Problem

The fixture corpus contains recurring accessible tab structures that currently route through generic/runtime preservation. WordPress 7.1 stabilizes core/tabs, core/tab-list, core/tab-panels, and core/tab-panel, so this is now a native transformer path rather than a companion-block candidate.

References:

Representative fixtures:

  • 7-event-conference/schedule.html: ARIA tablist and conference-day panels.
  • 33-sports-team-league/leaderboard.html: tabbed leaderboard table groups.
  • 83-startup-docs-hub/index.html: tabbed code examples.

Contract

  • Recognize tablist/tab/panel relationships structurally and through ARIA IDs.
  • Emit the WordPress 7.1 core Tabs family with synchronized labels, order, initial selection, and editable panel inner blocks.
  • Preserve author CSS through exact source provenance without carrying source tab JS.
  • Gate the mapping on runtime block availability/version; do not invent a parallel companion block.
  • Verify editor validity, keyboard/ARIA behavior, feature parity, and visual parity on WordPress 7.1.

Activity

  1. chubes4 commented on Oct 5, 2026

    @chubes4
    ContributorAuthor

    Fresh migration feedback on 2026-10-05 reports content missing in multiple tabs on https://mjcastelle.com/ and asks that hidden tab/accordion content be extracted and represented with native WordPress blocks. Use this public site as an end-to-end acceptance target, verifying each source panel rather than only the initially visible content.

    Existing capture contribution: Automattic/data-liberation-agent#546 (merged) repairs Radix-style tab activation and dynamically mounted panels; #547 (open) covers exclusive aria-pressed content switches. The remaining documented interaction-budget starvation gap is now tracked in Automattic/data-liberation-agent#557. Local image delivery in captured panel states is also being addressed in Automattic/data-liberation-agent#553.

    Keep capture completeness and native conversion as separate evidence: source-to-capture confirms all content/states/assets were retained; capture-to-WordPress confirms core Tabs panels remain editable and interactive, with valid editor markup and matching labels/order/initial selection. The missing content is reported, not independently reproduced in this review.

    AI disclosure: OpenAI gpt-6.1-sol via OpenCode reviewed the stakeholder thread, this tracker and active capture contributions and drafted this acceptance/dependency update at Chris Huber's request.

  2. chubes4 commented on Oct 5, 2026

    @chubes4
    ContributorAuthor

    Fresh end-to-end evidence after DLA v0.18.4: original https://zeder-chronicle-portal.base44.app/ now retains all 12 selectable states (4 Media Kit tabs, 2 viewpoint panels, 6 armor panels). DLA #547/#553 are merged and released.

    Disposable WordPress 7.1.1-RC1/Gutenberg 24.1.0 with SSI v1.24.15 produced 3 core/tabs and 12 core/tab-panel blocks. Browser activation verified every panel at 1440 and 390px. Gutenberg validateBlock verified all blocks in the three tab subtrees with zero invalid blocks and zero core/html there. No additional native Tabs implementation was necessary for this capture.

    Important intake contract: source.metadata.reports must declare interaction-states.json and capture-receipt.json. An initial verification request omitted it, which correctly treated those files as website assets; that was a harness error, not a missing consumer primitive. Corrected handoff preserves report identities. Binary payloads use content_base64.

    Remaining acceptance boundary: the whole page still has two core/html blocks outside the tab subtrees, one unsafe-layout finding, and unmatched-region append diagnostics. Exact full-page visual parity is not established, so this issue is not closed from block counts alone. Final WordPress run dla557_9653_2408245 retained editor-validation.json, frontend-panels.json and the import report; canonical plan identity 7f4a81ec30ab2f274bd3ca8491b471d9fc6cae9633de061d877dfdf64775ca54. Owning source/capture evidence: Automattic/data-liberation-agent#557.

    AI disclosure: OpenAI gpt-6.1-sol via OpenCode reviewed the existing native projector/transport contracts, authored and ran live capture and disposable WordPress browser/editor verification, and drafted this note at Chris Huber's request. The operator authorized direct fallback after Cook staging failed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions