Skip to content

[Studio UI] Add skip-to-content link for keyboard users - #4059

Open
idaiv wants to merge 5 commits into
2026.xfrom
fix/skip-to-content-link
Open

[Studio UI] Add skip-to-content link for keyboard users#4059
idaiv wants to merge 5 commits into
2026.xfrom
fix/skip-to-content-link

Conversation

@idaiv

@idaiv idaiv commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Visually hidden "Skip to content" link at the top of the base layout
  • Appears on Tab focus, positioned above all content with z-index 9999
  • Links to #main-content wrapping the WidgetManagerContainer
  • Fixes WCAG 2.4.1 (Bypass Blocks)

Test plan

  • Load the app, press Tab as the first action — "Skip to content" link appears
  • Press Enter — focus jumps to the main content area
  • Press Tab again — link disappears (not visible when unfocused)

🤖 Generated with Claude Code

Relates to https://github.com/pimcore/product-management/issues/372

Hidden link at the top of the layout that becomes visible on Tab
focus. Skips the sidebar navigation and jumps to the main content
area. Standard WCAG 2.4.1 (Bypass Blocks) pattern.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings September 1, 2026 14:12
@idaiv idaiv added the Skip Milestone Check Exempts this PR from the mandatory milestone requirement label Sep 1, 2026
@pimcore-deployments

Copy link
Copy Markdown
Collaborator

🌐 Translations synced automatically

The key changes below were generated for all target languages, passed the
mechanical validation gate (key parity, order, placeholders, types, plurals),
and are being committed to this branch by the workflow (check the run status
if the commit is not visible).
Please review the generated translations.

Added (1):

  • skip-to-content

ℹ️ Pre-existing translation errors (not from this PR)

12 validation error(s) predating this PR are still present. They are not blocking it; clearing them needs another run or a dedicated backfill.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a keyboard skip link to bypass the sidebars and reach the widget manager.

Changes:

  • Adds a translated “Skip to content” link.
  • Adds focus-visible styling.
  • Wraps the widget manager in the link target.

Review assessment:

  • The correct layout boundary and all relevant call sites are covered.
  • No public API compatibility impact.
  • The target is not reliably focusable across browsers; an accessibility comment was filed.
  • Only manual testing is provided; cross-browser focus behavior remains unverified.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

File Description
translations/studio.en.yaml Adds the English link label.
base-layout-view.tsx Adds the skip link and content target.
base-layout-view.styles.ts Shows the link when focused.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +51 to +53
<div id="main-content">
<WidgetManagerContainer />
</div>
pimcore-deployments and others added 3 commits September 1, 2026 14:21
The #main-content target needs tabIndex={-1} so browsers move
keyboard focus (not just scroll) when the skip link is activated.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@sonarqubecloud

sonarqubecloud Bot commented Sep 1, 2026

Copy link
Copy Markdown

@idaiv
idaiv requested a review from vin0401 September 2, 2026 09:11
@idaiv idaiv added this to the 2026.3.0 milestone Sep 2, 2026
@idaiv
idaiv requested a review from martineiber September 2, 2026 10:28
@idaiv idaiv removed the Skip Milestone Check Exempts this PR from the mandatory milestone requirement label Sep 2, 2026
@idaiv
idaiv removed the request for review from martineiber September 2, 2026 10:36
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.

3 participants