Skip to content

a11y: demote tab-widget body from <main> to <div>#747

Open
m5x5 wants to merge 1 commit into
SolidOS:milestone3mfrom
m5x5:a11y/page-level-main-landmark
Open

a11y: demote tab-widget body from <main> to <div>#747
m5x5 wants to merge 1 commit into
SolidOS:milestone3mfrom
m5x5:a11y/page-level-main-landmark

Conversation

@m5x5
Copy link
Copy Markdown

@m5x5 m5x5 commented May 11, 2026

Summary

  • The tab widget previously created <main> elements for both its outer body container and per-tab body. Combined with the shell's own <main>, each tabbed pane view had two or more <main> landmarks per page.
  • The page-level <main> landmark now lives on the shell's .app-view (see a11y: promote .app-view to the page-level <main> landmark mashlib#394). Tab widget internals become plain <div>s so we have exactly one <main> per page.
  • No styling change: the widget uses style.tabsMainElement and bodyMainStyle inline, not a main selector.

Addresses SolidOS/profile-pane#310.

Coordinated PRs

The tab widget previously created <main> elements for both its outer
body container and per-tab content body. Combined with the shell's
own <main>, that meant every tabbed pane view had two or more <main>
landmarks per page.

The page-level <main> landmark now lives on the shell's `.app-view`
in mashlib (see SolidOS/mashlib PR). Tab widget internals become
plain <div>s so we have exactly one <main> per page.

No styling change: the widget uses `style.tabsMainElement` and
`bodyMainStyle` inline, not a `main` selector.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant