Skip to content

Add Connect 2026 homepage banner - #33562

Merged
MohamedH1998 merged 3 commits into
productionfrom
feat/connect-2026-banner
Sep 22, 2026
Merged

MohamedH1998 merged 3 commits into
productionfrom
feat/connect-2026-banner

Conversation

@MohamedH1998

Copy link
Copy Markdown
Contributor

Summary

Add a responsive, dismissible Connect 2026 banner below the homepage hero.

Validation

  • pnpm run check
  • pnpm run lint
  • pnpm run format:core:check
  • pnpm run test (145 passed; Worker suites could not resolve the worktree dist/__redirects asset)

@github-actions

github-actions Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 21, 2026

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://feat-connect-2026-banner.previews.developers.cloudflare.com (commit 1546bbd)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://016272fa.previews.developers.cloudflare.com 1546bbd 2026-09-22T01:26:04.961Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://9cdc77ea.previews.developers.cloudflare.com 320635e 2026-09-21T13:05:21.990Z Visit the dashboard ↗

@MohamedH1998
MohamedH1998 marked this pull request as ready for review September 22, 2026 09:36
@MohamedH1998
MohamedH1998 requested a review from a team as a code owner September 22, 2026 09:36
@cloudflare-docs-bot

cloudflare-docs-bot Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Review

💡 3 suggestions found in commit 1546bbd.

👉 Fix in your agent 👈
Fix the following review findings in PR #33562 (https://github.com/cloudflare/cloudflare-docs/pull/33562).

Before making changes, review each finding and present a brief summary table:
- For each finding, state whether you agree, disagree, or need clarification
- If you disagree (e.g. the fix requires disproportionate effort for minimal benefit,
  or the finding is factually incorrect), explain why
- If you need clarification before deciding, ask those questions
- Then share your plan for which issues to tackle and in what order

After triaging, follow this order:
1. Post a comment on this PR for any findings you are skipping, with the finding ID and your reasoning.
2. Then commit the fixes for the legitimate findings.

The comment must come before the commit — the bot reads PR comments when a new
push triggers a review, so skip comments posted after the push will be missed.

---

## Code Review

### Suggestions (3)

#### CR-81e842f5ce4b · aria-label on role-less element
- **File:** `src/components/landing/Connect2026Banner.astro` line 56
- **Issue:** `aria-label="Featured speakers"` is set on a plain `<div>` (no role), so assistive technology will not expose the label — it has no effect for screen-reader users.
- **Fix:** Add `role="group"` to the element so the label is announced, or remove the aria-label if it is not needed.

#### CR-f33a61637ec6 · Keyboard-inaccessible tooltip content
- **File:** `src/components/landing/Connect2026Banner.astro` line 280
- **Issue:** The tooltip is appended to `<body>` by tippy, and the `focusout` handler on `speakerGroup` schedules `hideSpeaker()` whenever focus moves to anything outside the group — including the tooltip's own "Browse all speakers" link. Keyboard users can never tab into the interactive tooltip content before it closes (200 ms), and focus can briefly land on the soon-hidden link.
- **Fix:** Exempt focus moves into the tooltip popper from the close logic (e.g., check `speakerTooltip.popper.contains(event.relatedTarget)` in the focusout handler, or move the interactive link into the banner markup itself so it is natively focusable).

#### CR-d7f6dfc8098c · Duplicate SVG gradient IDs
- **File:** `src/components/landing/ConnectSpeakerLogo.astro` line 22
- **Issue:** The `<defs>` blocks hard-code global IDs (`connect-vite-primary`, `connect-vite-bolt` at lines 22/33, `connect-astro-accent` at line 104). This component takes a `name` prop and is meant to be rendered per speaker, so any page rendering the same speaker twice (or reusing the component elsewhere) emits duplicate IDs, and every `fill="url(#...)"` resolves to the first matching element in the document — invalid HTML with a real rendering risk if the first instance ends up inside a hidden/`display:none` container, where some browsers fail to paint the referenced gradient.
- **Fix:** Generate per-instance gradient IDs, e.g. derive them from `crypto.randomUUID()` (or a module-scoped counter) in the frontmatter and interpolate into both the `id` and the `fill="url(#...)"` references, so each rendered SVG references its own `<defs>`.

Code Review

This code review is in beta and may not always be helpful — use your judgment.

Suggestions (3)
File Issue
src/components/landing/Connect2026Banner.astro line 56 aria-label on role-less elementaria-label="Featured speakers" is set on a plain <div> (no role), so assistive technology will not expose the label — it has no effect for screen-reader users. Fix: Add role="group" to the element so the label is announced, or remove the aria-label if it is not needed.
src/components/landing/Connect2026Banner.astro line 280 Keyboard-inaccessible tooltip content — The tooltip is appended to <body> by tippy, and the focusout handler on speakerGroup schedules hideSpeaker() whenever focus moves to anything outside the group — including the tooltip's own "Browse all speakers" link. Keyboard users can never tab into the interactive tooltip content before it closes (200 ms), and focus can briefly land on the soon-hidden link. Fix: Exempt focus moves into the tooltip popper from the close logic (e.g., check speakerTooltip.popper.contains(event.relatedTarget) in the focusout handler, or move the interactive link into the banner markup itself so it is natively focusable).
src/components/landing/ConnectSpeakerLogo.astro line 22 Duplicate SVG gradient IDs — The <defs> blocks hard-code global IDs (connect-vite-primary, connect-vite-bolt at lines 22/33, connect-astro-accent at line 104). This component takes a name prop and is meant to be rendered per speaker, so any page rendering the same speaker twice (or reusing the component elsewhere) emits duplicate IDs, and every fill="url(#...)" resolves to the first matching element in the document — invalid HTML with a real rendering risk if the first instance ends up inside a hidden/display:none container, where some browsers fail to paint the referenced gradient. Fix: Generate per-instance gradient IDs, e.g. derive them from crypto.randomUUID() (or a module-scoped counter) in the frontmatter and interpolate into both the id and the fill="url(#...)" references, so each rendered SVG references its own <defs>.

Conventions

No convention issues found.

Style Guide Review

No style-guide issues found.

Commands

Only codeowners can run commands. Post a comment with the command to trigger it.

Command Description
/review Runs a review now. Incremental if a prior review exists, full if not.
/full-review Re-reviews the entire PR diff from scratch, ignoring incremental history. Useful after a rebase, when you want a fresh review, or if the bot gets out of sync and reports issues that no longer exist.
/ignore-review-limit Permanently lifts the 2-review automatic limit for this PR. Future pushes will trigger reviews as normal.
/disable-auto-review Stops automatic reviews from triggering on future pushes to this PR. Codeowners can still run /review or /full-review manually.
/rebase Rebases the PR branch against production. On conflict, attempts to resolve automatically using AI. Stops with an explanation if confidence is not high enough.

@MohamedH1998
MohamedH1998 merged commit 6cb3b29 into production Sep 22, 2026
16 checks passed
@MohamedH1998
MohamedH1998 deleted the feat/connect-2026-banner branch September 22, 2026 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants