Announcement capture records text from a live region inside aria-hidden
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 59/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- playwright, typescript
調査の方向性
Start in src/deps/real.ts and trace how announcement capture resolves a change's live host and walks live values on the flat tree. Check the toast rule for a shared hidden-state rule, then add real-browser tests for a polite region inside aria-hidden="true", an aria-hidden wrapper, and aria-hidden="false". Done means hidden, inert, and hidden content is not recorded as announced while aria-hidden="false" is handled correctly.
索引モデルが issue の本文から書いたものです。
説明
What happens
The announcement capture in src/deps/real.ts records text from a live region inside an aria-hidden="true" subtree. A screen reader says nothing for that region, but usabl records the text as announced.
Why it matters
Flow requirements check expectedAnnouncement against this capture with an exact match. A requirement that expects "Item archived" passes on a page where the status sits inside aria-hidden="true", though no user hears it. That is a false green in shipped behavior, not only in the voice lane preview.
Evidence
Found in the voice lane Phase 0 measurement against Orca 49.7 with Chromium 151. Fixture f12: a polite status inside aria-hidden="true". Orca's speech log has nothing for it; usabl's capture recorded "Item archived". The measurement ran on main before the effective live value resolver landed; that resolver handles aria-live values and roles, and does not look at aria-hidden.
Fix direction
When the capture resolves a change's live host, a change inside an aria-hidden="true" subtree (and inside inert or hidden content) is not recorded. Resolve hidden state on the flat tree the same way the live value walk does, and share the rule with the toast rule if that rule needs it too. Add a real-browser test for a polite region inside aria-hidden="true", for an aria-hidden wrapper between the region and the change, and for aria-hidden="false".
- 主要言語
- TypeScript
- スター
- 0
- フォーク
- 0
- 平均マージ
- 6時間 25分
- マージ済み PR(30日)
- 46
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
usabl-dev/usabl のほかの issue
-
area: engine enhancement performance
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
Scan browser runs without Chromium's sandbox対応中かも @eparenti が 2 日前に担当しました。 オープンarea: engine security
難易度 4/5 3〜5日 初心者へのやさしさ 46/100
メンテナーはふだん 1 日以内に返信
-
area: engine enhancement performance
難易度 4/5 1〜2日 初心者へのやさしさ 45/100
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
area: engine enhancement performance
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
usabl-dev/usabl の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Northeastern-Electric-Racing/FinishLine#4660 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
excaliburjs/Excalibur#3895 ·
メンテナーはふだん 3 日以内に返信
-
infer_audio_type only recognises one MPEG Layer III frame header, so most MP3 files are rejected対応中かも @Steve-20-ai が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
Earn report crashes with "RangeError: Invalid time value" when a report row has an unparsable timestamp対応中かも @Gurkaran18 が今日担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
joinmarket-webui/jam#1588 ·
メンテナーはふだん 3 日以内に返信
-
BeOS .json missingオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
mihaip/infinite-mac#475 ·