Skip to content

🎨 Palette: Add skip to main content link - #113

Open
ELO2026X wants to merge 1 commit into
mainfrom
palette/add-skip-to-content-link-10151868205155574346
Open

ELO2026X wants to merge 1 commit into
mainfrom
palette/add-skip-to-content-link-10151868205155574346

Conversation

@ELO2026X

Copy link
Copy Markdown
Owner

💡 What

Added a "Skip to main content" anchor link as the very first element in the DOM tree within App.tsx.
Updated the main layout wrapper in ContentView.tsx to use a semantic <main> tag with id="main-content" and tabIndex={-1}.

🎯 Why

A standard UX/a11y requirement. When users navigate complex layouts (like one containing an elaborate sidebar) using a keyboard, they shouldn't have to tab through every single navigation item to reach the core visualizer and content. The skip link allows keyboard users and screen readers to bypass the sidebar navigation entirely.

📸 Before/After

Before:
Keyboard users would load the page and have to tab through ~9 distinct effect buttons in the sidebar before reaching the actual interactive 3D model controls.

After:
The very first 'Tab' key press reveals a "Skip to main content" button. Pressing 'Enter' immediately shifts focus to the 3D model viewer area, bypassing the sidebar entirely.

♿ Accessibility

  • Semantic HTML: Converted the primary viewing area wrapper from a generic <div> to a semantic <main> tag.
  • Keyboard Navigation: Implemented skip link functionality utilizing standard Tailwind classes (sr-only -> focus-visible:not-sr-only).
  • Focus Management: Ensured the target <main> wrapper can correctly receive programmatic focus without showing a visually jarring browser default focus outline via focus:outline-none and tabIndex={-1}.

PR created automatically by Jules for task 10151868205155574346 started by @ELO2026X

Added a visually hidden "Skip to main content" link to the root `App.tsx` that becomes visible on keyboard focus. Updated `ContentView.tsx` to use semantic `<main>` tags with an ID and `tabIndex={-1}` for programmatic focus without visible focus rings.

Co-authored-by: ELO2026X <153048533+ELO2026X@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

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