Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Announcement capture records text from aria-live="off" regions

オープン
#289 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
1〜2日
初心者へのやさしさ
68/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
playwright, typescript

調査の方向性

Read the capture logic in src/deps/real.ts and compare the effective live value handling in pf-toast-live-region. Start by tracing how the rule resolves nested regions, then run the real-browser tests and add cases for an off region, an off wrapper inside a polite region, and uppercase or unknown tokens. Done when the shared resolver makes the rule and capture agree and those cases pass.

索引モデルが issue の本文から書いたものです。

説明

area: engine bug

What happens

The announcement capture script in src/deps/real.ts decides whether a DOM change was announced with a flat selector:

const LIVE = '[aria-live],[role="status"],[role="alert"],[role="log"]';
const host = target.closest(LIVE);

Any element with an aria-live attribute matches, including aria-live="off". The nearest ancestor that sets a live value is also not resolved, so an off wrapper inside a polite region does not stop the capture.

Why it matters

A flow requirement's expectedAnnouncement is checked against this capture. Text that changes inside an aria-live="off" region is recorded as announced, so the requirement can pass on text no screen reader speaks. That is a false green.

Fix direction

Resolve the effective live value the same way pf-toast-live-region now does: the nearest element that sets a value wins, an explicit aria-live beats the role, and only polite and assertive count. Share one resolver between the rule and the capture script so the two cannot drift. Add a real-browser test for an off region, an off wrapper inside a polite region, and an uppercase or unknown token.

主要言語
TypeScript
スター
0
フォーク
0
平均マージ
2時間 48分
マージ済み PR(30日)
8

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

usabl-dev/usabl のほかの issue

usabl-dev/usabl の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。