bug(ui): V2 AnimatedNumber exposes animation digits and reversed reading order to screen readers
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 74/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
packages/ui/src/components/animated-number.tsx とその CSS を読み、Chromium で固定値の場合と更新中のアクセシビリティツリーを再現してください。コンポーネントが安定した数値と視覚的なアニメーションセルを支援技術にどのように公開しているかを確認してください。アニメーション中を通して、アクセシビリティツリーに現在の数値が正しい順序で 1 つだけ公開されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Description
V2's AnimatedNumber still exposes animation cells to assistive technology and gives multi-digit numbers the wrong reading order.
With the unmodified production component and CSS rendered in Chromium / Solid 1.9.15:
- Value
12looks correct in LTR, but the accessibility snapshot contains text2, then1. - During a
5to6update, the accessibility snapshot exposes0123456789three times instead of the actual count. The existing motion-duration CSS variable was increased only to capture this transient state.
The component reverses digits in DOM order and renders 30 cells per animated strip, without aria-hidden on the visual digits. The parent span's aria-label does not replace those children in the observed accessibility tree: production component.
CSS hides the strip at rest, but exposes it while animating; visual row-reverse does not repair accessibility reading order: production CSS. A current consumer is ToolCountLabel.
OpenCode version
2.0.26 source build, latest v2 commit 4617210822bdbb31e5749751afbfb4584ccedac8 (audited 2026-10-12). Both component and CSS are unchanged at current dev commit 707de5832656e89cc0f04436aa1cd5f4f91c5763.
Steps to reproduce
Render <AnimatedNumber value={12} /> with its production CSS, inspect its accessibility tree, then increment a single-digit value during animation.
Expected: one correctly ordered, current numeric value. Expose stable text for that value and hide the visual animation from assistive technology regardless of motion state.
Related reports
V2 continuation of Problem 2 in #41408, closed during V1 migration triage. #43643 concerns visual RTL ordering in the same component. Streaming-content exposure is tracked separately in #54652 and addressed by PR #51084, which does not fix this component.
- 主要言語
- TypeScript
- スター
- 213k
- フォーク
- 28.4k
- 平均マージ
- 7時間 22分
- マージ済み PR(30日)
- 276
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
anomalyco/opencode のほかの issue
-
pending close triaging
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
anomalyco/opencode#55070 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
opencode on clean macos zsh .export path not working because it append and it fails because no ~/.zshrc file対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンreproduced
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
anomalyco/opencode#55068 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
anomalyco/opencode#54919 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
triaging
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
anomalyco/opencode#54887 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
reproduced
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
anomalyco/opencode#54871 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
anomalyco/opencode の issue をすべて見る
似ている issue
-
A hung CI job runs for 6 hours before it is cancelled対応中かも @Olanetsoft が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Olanetsoft/agent-lookout#110 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
thedotmack/claude-mem#4757 ·
メンテナーはふだん 1 日以内に返信
-
🐛 bug 🗺️ MCP OAuth
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
LibreChat-AI/LibreChat#17077 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 75/100