Skip to content

Fix homepage carousel keyboard accessibility - #32180

Merged
Sunghoon Choi (hanbitmyths) merged 2 commits into
gh-pagesfrom
wayne-ch-fix-carousel-accessibility
Aug 21, 2026
Merged

Fix homepage carousel keyboard accessibility#32180
Sunghoon Choi (hanbitmyths) merged 2 commits into
gh-pagesfrom
wayne-ch-fix-carousel-accessibility

Conversation

@Wayne-Ch

Copy link
Copy Markdown
Contributor

Summary

  • replace runtime cloneNode carousel duplication with one semantic customer-link set and an aria-hidden, tabindex="-1" visual copy
  • suspend/reset the moving transform while customer links have focus so every focused card remains on-screen with the existing focus ring
  • keep deterministic logical link order, continuous pointer motion, the scroll toggle, and reduced-motion behavior
  • add a built-homepage regression for customer names, semantic link count, and duplicate exclusion from sequential focus

Official production evidence

Accessibility Insights for Web v2.47.0 (axe-core 4.11.3), official Edge Add-ons package:

  • FastPass_20260819_ONNXRuntimeHome.html
  • ONNXRuntimeHome-AccessibilityInsights-FastPass-official.zip
  • Automated checks: 0 failed / 0 incomplete / 28 passed
  • Tab stops: 2 failed / 0 incomplete / 3 passed
  • Failures: off-viewport focus indicators at orders 14-18 and duplicate moving-carousel traversal interrupting logical tab order

This PR validates the fix on a local built preview only. Production must be rerun with the official Accessibility Insights extension after deployment, and ADO 97172 must remain open until both production Tab stops checks pass.

Validation

  • npm run test:carousel-accessibility (production build plus 2 focused regressions)
  • targeted Prettier and ESLint: pass (existing warnings only)
  • real Microsoft Edge keyboard traversal on the built preview: 36/36 unique semantic customer links focused in order, 36/36 fully visible with focus indicators, 0 duplicate links traversed
  • normal motion runs, pauses during focus traversal, resumes afterward; prefers-reduced-motion: reduce disables animation
  • npm run check remains blocked by 38 pre-existing diagnostics in unrelated svelte-icons imports and inference-table.svelte; the changed carousel files report no diagnostics
  • the official Accessibility Insights extension was not rerun on the local preview because its interactive Tab stops workflow is not automatable in this CLI session

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

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

Improves homepage carousel keyboard accessibility and adds regression validation.

Changes:

  • Uses deterministic semantic links with hidden visual duplicates.
  • Pauses and resets animation during keyboard focus.
  • Adds built-homepage accessibility tests.

Reviewed changes

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

File Description
tests/carousel-accessibility.test.mjs Validates semantic links and hidden copies.
src/routes/components/customers.svelte Makes customer order deterministic.
src/lib/components/ui/InfiniteMovingCards/InfiniteMovingCards.svelte Implements accessible focus and duplication behavior.
package.json Adds the carousel test command.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/lib/components/ui/InfiniteMovingCards/InfiniteMovingCards.svelte Outdated
eserscor
eserscor previously approved these changes Aug 20, 2026
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@hanbitmyths
Sunghoon Choi (hanbitmyths) merged commit 74a1bdf into gh-pages Aug 21, 2026
3 checks passed
@hanbitmyths
Sunghoon Choi (hanbitmyths) deleted the wayne-ch-fix-carousel-accessibility branch August 21, 2026 22:29
Wayne (Wayne-Ch) added a commit that referenced this pull request Aug 22, 2026
## Description

Replace the obsolete `doxygen.nl` download URL for the pinned Doxygen
1.9.8 Linux binary with the official asset from the Doxygen GitHub
release tag `Release_1_9_8`.

The C API docs workflow has persistently failed while downloading
Doxygen (runs
[31917039689](https://github.com/microsoft/onnxruntime/actions/runs/31917039689),
[31975339915](https://github.com/microsoft/onnxruntime/actions/runs/31975339915),
and
[32050624667](https://github.com/microsoft/onnxruntime/actions/runs/32050624667)).
Because no fresh `onnxruntime-c-apidocs` artifact was produced before
the previous artifact expired, the downstream ONNX Publish site run
[32533178465](https://github.com/microsoft/onnxruntime/actions/runs/32533178465)
failed at `Download C apidocs artifact`, blocking GitHub Pages
deployment.

This is intentionally separate from accessibility PR #32180.

## Validation

- Confirmed the official release URL follows one redirect and returns
HTTP 200.
- Confirmed GitHub release tag `Release_1_9_8` contains
`doxygen-1.9.8.linux.bin.tar.gz` (50,500,806 bytes).
- Downloaded the archive successfully and verified gzip/tar integrity.
- Confirmed extraction produces `doxygen-1.9.8/bin/doxygen` while
preserving the workflow's existing extraction and invocation paths.
- Parsed the workflow as valid YAML.
- Dispatched the [C/C++ API docs workflow from this
branch](https://github.com/microsoft/onnxruntime/actions/runs/32534100983);
the install, Doxygen generation, and site staging steps succeeded, and
the log reports `Doxygen version used: 1.9.8`. Artifact upload was
skipped as expected because the ref is not `main`.

## Recovery after merge

1. Dispatch the **Update C/C++ API Docs** workflow on `main`.
2. Verify it uploads a fresh `onnxruntime-c-apidocs` artifact.
3. Rerun the failed GitHub Pages jobs from ONNX Publish site run
32533178465.

No Doxygen version or unrelated workflow behavior is changed.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.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.

4 participants