fix(ui): call the panel heading account, not participant (index.html, docs) - #80
Conversation
参加者パネルの見出しを「参加者」から「アカウント」へ変えた。この面が並べているものはアカウントであり、`+` が作るのも、行の ⚙️ が開くモーダルの見出しも同じ語である。見出しだけが別の語を持っていた。 パネルの `aria-label` も同じ語にした。見えている見出しと読み上げの名前が分かれれば、同じ面が二つの名前を持つことになる。 「参加者なし」は変えていない。この行が出るのは部屋の名簿とアカウント一覧の両方が空のときであり、リストにはアカウントを持たない接続(「ゲスト」)も並ぶ。行の不在をアカウントの不在とは言えない。部屋の参加者を指す語(`src/main.ts` / `sidecar/src/index.ts` / `README.md` / `docs/0-requirements.md` の大半)と、節の呼び名「参加者パネル」もそのままである。 `docs/0-requirements.md` の「参加者パネル」節に、見出しの語とこの線引きを記録した。 #78
smileygames
left a comment
There was a problem hiding this comment.
自己レビュー結果: PASS
#78 の受け入れ基準と制約に対して差分を確認し、境界の判断を独立に裏取りした。
受け入れ基準
- 見出しが「アカウント」になった —
index.htmlの<h2 class="panel-title">。 - 読み上げの名前も揃った —
#participantsのaria-label。見える語と読み上げる語が分かれれば一つの面が二つの名前を持つため、これは同じ判断の一部。 - セレクタは無改変 —
#participants/.panel-titleは変えていないので CSS と TS は影響を受けない。動いている dev server も文字列二つだけを拾う。
制約の裏取り(部屋の参加者を指す語は変えない)
「参加者なし」を残した判断を、実装者の説明を鵜呑みにせず members()(src/main.ts)を読んで確認した。ループの最後で、どのアカウントにも紐づかない participant が { account: null, participant } として行に積まれている。アカウントを持たない接続——「ゲスト」——がこのリストに並ぶということであり、リストが空になるのは名簿とアカウント一覧の両方が空のときだけである。
したがって「参加者なし」が言っているのは行の不在であって、アカウントの不在ではない。ここを直せば制約が禁じている側——部屋の参加者を指す語——を潰すことになる。残した判断は正しい。
docs の節の呼び名「参加者パネル」を残した判断も同じ筋で妥当。#78 の本文自身がその語でパネルを呼びながら見出しの語を決めており、決まったのは見出しの語である。
記録
docs に二段落。見出しの語を決めた理由と、部屋の参加者を指す語を変えない境界の両方が書かれている。境界のほうを書き残したのが効く——次に同じ語を見た者が「揃っていない」と読んで直しに来るのを止める。
見ておくべき一点(後追い、この PR の妨げにはならない)
リストにはアカウントを持たない「ゲスト」の行も並ぶ。見出しが「アカウント」になったことで、アカウントでない行がその見出しの下に出る状態になる。Master の指示は明確であり決着として扱うが、実機でゲストの行が出たときの見え方は見ておく価値がある。
次の一手
実行モード auto。この自己レビュー通過をもって squash merge する。リリース種別は patch 相当(観測可能だが、語の変更二箇所であり構造変更ではない)。
Closes #78
変えたもの
index.html— 参加者パネルの見出しを「参加者」から「アカウント」へ。index.html— 同じパネルのaria-labelも「アカウント」へ。見出しと読み上げの名前は同じものを指しており、分かれれば一つの面が二つの名前を持つ。docs/0-requirements.md— 「参加者パネル」節に、見出しの語と、下記の線引きを記録した。この面が並べているものはアカウントである。
+が作るのはアカウントであり(title="アカウントを追加")、行の ⚙️ が開くモーダルの見出しも既に「アカウント」(#account-dialog-title)である。見出しだけが別の語を持っていた。変えなかったもの(issue の制約)
「参加者なし」(
index.html/src/main.tsの空リスト表示)はそのまま。members()はアカウント一覧と部屋の名簿を突き合わせた行を返し、アカウントを持たない接続は「ゲスト」の行としてこのリストに並ぶ。この空表示が出るのは両方が空のときだけであり、言っているのは行の不在である。アカウントの不在と言い換えると、リストの半分(部屋の参加者)を落とすことになる。部屋の参加者を指す語は触っていない。
src/main.ts/sidecar/src/index.ts/README.md/docs/0-requirements.mdに残る用例の大半は部屋の参加者(発言する側)を指す。節の呼び名「参加者パネル」も残した。 issue 本文自身がこの語でパネルを呼んでおり、決まったのは見出しの語であってパネルの呼び名ではない。docs の相互参照(「上記『参加者パネル』」)も同じ理由で据え置き。
確認
npx tsc --noEmit通過。index.html2 行、docs 4 行)。UI の構造・CSS・TS の参照(#participants/.panel-title)には触れていない。