Skip to content

fix(website): workflow carousel dots — visible on mobile, hidden on desktop#198

Merged
montfort merged 1 commit into
mainfrom
fix/workflow-carousel-dots-visible
May 22, 2026
Merged

fix(website): workflow carousel dots — visible on mobile, hidden on desktop#198
montfort merged 1 commit into
mainfrom
fix/workflow-carousel-dots-visible

Conversation

@montfort
Copy link
Copy Markdown
Contributor

Summary

Follow-up to #197. Two corrections:

  1. The dots disappeared visually after fix(website): Lighthouse accessibility + CLS fixes #197. Root cause: my previous fix used a ::before pseudo-element on <button> with position: absolute to draw the 8px visible circle inside a 24×24 hit area, but Chromium does not reliably render pseudo-elements on <button> without display: inline-flex + appearance: none. Fixed by switching to flex centering and adding appearance: none.

  2. The dots were redundant on desktop. The named tablist (Charter / AILOG / TDE / Compliance / Audit) already provides navigation with role=\"tablist\". The dots had the same role and controlled the same carousel — duplicate UI. On mobile (<768px) the named tablist is hidden by an existing media query, so the dots remain there as the only navigation.

Net: cleaner desktop (no redundant indicator strip below the named tabs), correct mobile (visible 8px dot with WCAG 2.2-compliant 24×24 touch target).

Test plan

  • Desktop (≥768px): named tablist visible above carousel, no dots strip below. Click each tab title → carousel advances.
  • Mobile (<768px, via DevTools device toolbar): named tablist hidden, dots strip visible below the carousel. Each dot is 24×24 to the touch but visually shows an 8×8 circle. Selected dot is filled with the accent color.
  • Lighthouse mobile run on /: target-size audit still passes (24×24 hit area is preserved on mobile where dots render).

🤖 Generated with Claude Code

Two issues from the previous a11y PR:

1. The `::before` pseudo-element on the dot buttons rendered invisibly in
   Chromium. The button needs `display: inline-flex` + `appearance: none`
   for pseudo-elements to render reliably on `<button>`. Added both, and
   simplified the centering (flex instead of absolute + translate).

2. The dots were duplicating navigation: on desktop, the named tablist
   (Charter / AILOG / TDE / Compliance / Audit) is already the primary
   selector and both controls share `role="tablist"`. Hide dots on
   desktop entirely (`display: none` until 767px). On mobile the named
   tablist is hidden by an existing media query, so the dots remain as
   the only carousel navigation and keep the 24×24 hit area.

Net effect: cleaner desktop (no redundant visual indicators below the
named tabs), correct mobile (visible 8px dot with WCAG-compliant 24×24
touch target).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@montfort montfort merged commit 1039760 into main May 22, 2026
1 check passed
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