fix(accessibility): disable unavailable session-history clearing - #441
fix(accessibility): disable unavailable session-history clearing#441seonghobae wants to merge 5 commits into
Conversation
빈 상태일 때의 'Clear' 버튼 접근성과 사용성을 개선하기 위해 빈 상태 시 버튼 비활성화(disabled) 속성을 추가하고, 스크린 리더 사용자들을 위해 명확한 동작 의미를 전달할 수 있도록 aria-label 속성을 추가하였습니다. 변경에 맞춰 테스트 케이스도 업데이트되었습니다.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
Important Review available on request
Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@opencode-agent review Review exact head |
🧩 Analysis chain🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
expected='e03168ff32b606f48189b0ad9ee0ee9c690a151c'
echo '== HEAD =='
git rev-parse HEAD
echo '== Expected commit exists =='
git cat-file -t "$expected"
echo '== Commit metadata =='
git show -s --format='%H%n%P%n%s' "$expected"
echo '== Changed paths =='
git diff-tree --no-commit-id --name-status -r "$expected"
echo '== Diff =='
git show --format= --find-renames --find-copies "$expected"
echo '== Outlines for changed source files =='
git diff-tree --no-commit-id --name-only -r "$expected" |
while IFS= read -r path; do
case "$path" in
*.js|*.mjs|*.cjs|*.ts|*.tsx|*.html)
printf '\n--- %s ---\n' "$path"
ast-grep outline "$path" --items all 2>&1 || true
;;
esac
doneLength of output: 4459 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
echo '== Harness with line numbers =='
nl -ba scripts/test_demo_history_clear_button.py | sed -n '1,260p'
echo '== Locate target definitions and clear-button state updates =='
rg -n -C 8 --glob '*.{js,mjs,cjs,ts,tsx}' \
'^\s*function\s+(renderHistory|addDetailRow)\s*\(|\bclearHistoryBtn\.(disabled|setAttribute|removeAttribute)\b' \
.
echo '== Candidate source outlines =='
fd -e js -e mjs -e cjs -e ts -e tsx . . \
-x sh -c '
if rg -q "function renderHistory\\s*\\(" "$1"; then
printf "\n--- %s ---\n" "$1"
ast-grep outline "$1" --items all
fi
' sh {}Length of output: 1000 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
echo '== Harness =='
sed -n '1,260p' scripts/test_demo_history_clear_button.py
echo '== Target definitions and clear-button state updates =='
rg -n -C 10 --glob '*.{js,mjs,cjs,ts,tsx}' \
'^\s*function\s+(renderHistory|addDetailRow)\s*\(|\bclearHistoryBtn\.(disabled|setAttribute|removeAttribute)\b' \
.
echo '== Files that declare renderHistory =='
rg -n --glob '*.{js,mjs,cjs,ts,tsx}' '^\s*function\s+renderHistory\s*\(' .
echo '== Candidate source outlines =='
while IFS=: read -r file _; do
printf '\n--- %s ---\n' "$file"
ast-grep outline "$file" --items all || true
done < <(rg -n --glob '*.{js,mjs,cjs,ts,tsx}' '^\s*function\s+renderHistory\s*\(' .)Length of output: 8800 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
echo '== Complete renderHistory function =='
sed -n '113,153p' src/main/resources/static/assets/viewer/demo.js
echo '== Harness references in repository configuration and scripts =='
rg -n -C 3 \
'test_demo_history_clear_button\.py|DemoHistoryClearButtonTest|scripts/test_demo_history_clear_button' \
. \
-g '!scripts/test_demo_history_clear_button.py' \
-g '!**/.git/**' || true
echo '== Exact commit patch summary =='
git show --check --format=fuller --stat e03168ff32b606f48189b0ad9ee0ee9c690a151cLength of output: 2789
I found no issues in this commit. The Node harness now extracts the complete
|
빈 상태일 때의 'Clear' 버튼 접근성과 사용성을 개선하기 위해 빈 상태 시 버튼 비활성화(disabled) 속성을 추가하고, 스크린 리더 사용자들을 위해 명확한 동작 의미를 전달할 수 있도록 aria-label 속성을 추가하였습니다. 변경에 맞춰 테스트 케이스도 업데이트되었습니다.
…925978774739389377
|
Exact-current-head independent review request for CI, Security Scan, SAST Semgrep, and fuzz are terminal-success; unresolved inline findings are zero. The four-file slice synchronizes the unavailable Clear action with actual session-history state and adds a contextual accessible name. @opencode-agent review Review this exact head read-only. Do not mutate the branch, synthesize author approval, weaken protection, or merge. |
Rate Limit Exceeded
|
|
Exact-current-head independent review request for Freshly rechecked: CI, Security Scan, SAST Semgrep, and fuzz are terminal-success; mergeable is true; unresolved review threads are zero. The four-file delta is limited to the buyer-demo session-history control, its state synchronization, focused regression, and task metadata. Review this exact head only. @coderabbitai review |
Rate Limit Exceeded
|
Objective
Prevent an unavailable session-history action from appearing executable and give assistive technology a contextual control name.
Exact current-head evidence
eb0a32e87e7470469c8fa0f8c67d9583654bef57;ca87ad1fe2133ced7ee6218ecf3e292cf1573025;Interaction contract
The server-rendered empty state starts
clear-history-btndisabled and labels itClear session history. Every history render synchronizes the disabled state with whether a clearable history entry exists, so loading, adding, or clearing history cannot leave stale action availability.Scope boundary
This changes only the buyer-demo session-history control. It does not change browser storage format, conversion state, tenant authority, signed links, or production workspace/session bootstrap.
Merge gate
Keep this exact head unchanged. Auto-merge may act only after all live required checks remain successful, zero valid unresolved findings remain, and a qualifying independent non-author approval is attached to this exact head. Automated evidence is not approval.